`

JDBC 连接数据库

阅读更多

preparedstatement  和statement的区别:

参考:http://www.hudong.com/wiki/PreparedStatement

1: PreparedStatement是预先编译的语句,而Statement则不是预先编译的。当由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。

2: PrepareStatement中执行的SQL语句中是可以带参数的,而Statement则不可以。
比如:
PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, 153833.00);
pstmt.setInt(2, 110592);
pstmt. executeUpdate();


数据库可以进行调节来做语句缓冲. 通常包含一些类型的语句缓冲. 缓冲使用语句 本身作为关键 字, 访问方案和相应的语句存储在缓冲区中. 这样就允许数据库引擎 对以前执行过的语句所使用 的访问方案进行重用. 举个例子来说, 如果我们向数据 库发送这样一条语句 "select a, b from t where c = 2", 计算好的访问方案就放入缓冲 区了. 如果我们以后再使用同样的语 句, 数据库就能重用以前的访问方案, 这样就 能节省 CPU.


 

 

 

写一段包括事务的jdbc处理 增删改查操作代码:

 

    Class.forName("com.mysql.jdbc.Driver");
  try{
   Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/spring", "root", "bjsxt");
   
   String sqlQuery = "select count(*) from user where username = ?";
   PreparedStatement psQuery = conn.prepareStatement(sqlQuery);
   psQuery.setString(1, u.getUsername());
   ResultSet rs = psQuery.executeQuery();
   rs.next();
   int count = rs.getInt(1);
   
   /* 
   String sql = "insert into user values (null, ?, ?)";
   PreparedStatement ps = conn.prepareStatement(sql);
   ps.setString(1, u.getUsername());
   ps.setString(2, u.getPassword());
   ps.executeUpdate();
   */
   
   psQuery.close();
   conn.close();
  }catch(Exception e){
   e.printStackTrace();
  }

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics