jdbc操作数据库的代码案例
来源:互联网 发布:数据库基础知识 编辑:程序博客网 时间:2024/06/08 06:49
下面直接贴代码吧,实体类我就不贴了
获取数据库连接的工具类
package util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DBUtil { // 驱动名称 这里是sqlserver驱动 private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 数据库地址 127.0.0.1表示本地, //1433是sqlserver默认的端口,food_db是要链接的数据库 private static final String URL = "jdbc:sqlserver://127.0.0.1:1433;databasename=food_db"; // 用户名 private static final String USER = "admin"; // 密码 private static final String PASS = "123456"; //在静态块中加载数据库连接驱动 static { try { Class.forName(DRIVER); } catch (ClassNotFoundException e) { e.printStackTrace(); } } //得到数据库连接的方法 public static Connection getConnection() { Connection conn = null; try { conn = DriverManager.getConnection(URL, USER, PASS); } catch (SQLException e) { e.printStackTrace(); } return conn; } //关闭连接的方法 public static void closeAll(Connection conn, Statement stmt, ResultSet rs) { try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } //测试 打印下数据库连接是否正常得到 public static void main(String[] args) { System.out.println(getConnection()); }}
//通过JdbcTemplate操作的方式
package dao.impl;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Date;import java.util.List;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.core.RowMapper;import util.DBUtil;import bean.Account;import bean.Trade;public class BankDaoImpl { //得到JdbcTemplate对象,调用DBUtil.getDataSource()得到数据库连接 private JdbcTemplate temp = new JdbcTemplate(DBUtil.getDataSource()); //查询指定条件的数据,Account实体类我就不写了 public Account login(Account a) { //需要执行的sql语句 下面的Account实体类我就不写了 String sql = "select * from account where AccountID=? and password=? "; List list = this.temp.query(sql, new Object[] { a.getAccountID(),a.getPassword() }, new RowMapper() { public Object mapRow(ResultSet rs, int arg1) throws SQLException { Account a = new Account(); a.setRemaining(rs.getDouble("remaining"));//获取字段名为remaining的数据 a.setAccountID(rs.getString("accountid"));//获取字段名为accountid的数据 a.setPassword(rs.getString("password"));//获取字段名为password的数据 return a; } }); if (list.size() > 0){ return (Account) list.get(0); } return null; } //查询多个对象方法,Trade跟Account实体类我就不写了 public List<Trade> selectByTime(String a, Date time1, Date time2) { String sql = "select * from trade where accountid=? and TradeTime between ? and ? "; return this.temp.query(sql, new Object[] { a, time1, time2 }, new RowMapper() { public Object mapRow(ResultSet rs, int arg1)throws SQLException { Trade t = new Trade(); t.setId(rs.getInt("id")); Account a = new Account(); a.setAccountID(rs.getString("accountid")); t.setAccount(a); t.setTradeDigest(rs.getString("tradeDigest")); t.setTradeMoney(rs.getDouble("tradeMoney")); t.setTradeTime(rs.getDate("tradeTime")); t.setTradeType(rs.getString("tradeType")); return t; } }); } //查询单个对象方法,Account实体类我就不写了 public Account selectRemaining(String aid) { String sql = "select * from Account where accountid=?"; List list= this.temp.query(sql,new Object[] { aid }, new RowMapper() { public Object mapRow(ResultSet rs, int arg1) throws SQLException { Account a = new Account(); a.setAccountID(rs.getString("accountid")); a.setRemaining(rs.getDouble("remaining")); return a; } }); if(list.size()==0){ return null; } return (Account) list.get(0); } //修改方法,返回受影响的行数 public int trade(String aid, double money) { String sql = "update account set remaining=remaining+? where accountid=? "; return this.temp.update(sql, new Object[] { money, aid }); } //新增方法,返回受影响的行数(seq_trede.nextval数据库序列,sysdate获取当前系统时间) public int insertTrade(Trade t) { String sql = "insert into trade values(seq_trede.nextval,?,?,?,sysdate,?)"; return this.temp.update(sql, new Object[] {t.getAccount().getAccountID(), t.getTradeType(),t.getTradeMoney(), t.getTradeDigest() }); }}
//不通过JdbcTemplate对象操作
package util;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;public class Template { // 针对任何表的查询 public void query(String sql, Object[] params) { Connection conn = null; PreparedStatement pst = null; ResultSet rs = null; conn = DBUtil.getConnection();//调用上面的DBUtil类中getConnection()方法获取链接 try { pst = conn.prepareStatement(sql); if (params != null) { for (int i = 0; i < params.length; i++) { pst.setObject(i + 1, params[i]); } } rs = pst.executeQuery(); //元数据类型 ResultSetMetaData rsmd = rs.getMetaData(); // 得到结果集共有几列 int count = rsmd.getColumnCount(); while (rs.next()) {// 遍历行 for (int i = 0; i < count; i++) { //我这里在控制台打印下,可以根据自己的需求封装 System.out.print(rs.getObject(i + 1) + ","); } System.out.println();//打印换行 } } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.closeAll(conn, pst, rs); } } // 针对任何表的增,改,删,返回受影响的行数 // sql是要执行的SQL语句 // Object[]保存的是SQL语句要用到的参数值 public int update(String sql, Object[] params) { int rows = 0;//记录受影响的行数 Connection conn = null; PreparedStatement pst = null; conn = DBUtil.getConnection();//调用上面的DBUtil类中getConnection()方法获取链接 try { pst = conn.prepareStatement(sql); if (params != null) { for (int i = 0; i < params.length; i++) { pst.setObject(i + 1, params[i]); } } rows = pst.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.closeAll(conn, pst, null); } return rows; }}
0 0
- jdbc操作数据库的代码案例
- JDBC 连接MySQL数据库操作案例
- jdbc连接数据库对数据库的操作精简代码
- JDBC数据库的操作
- JDBC连接数据库的经典案例
- 使用jdbc连接数据库的简单案例
- JDBC-用java代码操作数据库
- Spring 事务操作(银行转账案例),使用spring 对jdbc的支持完成对数据库的操作
- JDBC操作数据库的步骤
- JDBC操作数据库的步骤
- JDBC操作数据库的批处理
- JDBC操作数据库的步骤
- jdbc操作数据库的步骤
- JDBC操作数据库的步骤
- JDBC操作数据库的步骤
- 各种数据库的JDBC代码
- 使用spring jdbc template简化jdbc数据库操作实例代码
- jdbc数据库操作的"工厂类"及较高性能的分页代码
- 《深入理解Linux内核》笔记十
- org.hibernate.MappingException: Could not determine type for: java.util.Set
- 《java语言程序设计基础篇》笔记二
- 如何用unity画墙,以及如何使用鼠标控制墙在Y轴上的伸缩
- TCP/IP网络编程_echo回声服务器端与/客户端
- jdbc操作数据库的代码案例
- Eclipse启动项目时,删除workspaces无用的工作区间
- OS_CPU.H
- Java语法基础
- 学习Spring-Session+Redis实现session共享
- 9. Palindrome Number LeetCode题解
- 使用线程池和直接new 一个Thread运行对比
- Tomcat启动闪退的原因及解决
- 策略模式