总结JDBC的问题:
1. 频繁创建数据库连接对象,释放。容易造成系统资源的浪费,从而影响系统性能。企业项目中可以使用连接池解决这个问题,但是使用jdbc需要自己实现连接池。mybatis内部已经提供了连接池。
2. sql语句定义,参数设置,结果集处理存在硬编码。在企业项目中,sql语句变化可能性较大,一旦发生变化,需要修改java代码,系统需要重新编译,重新发布。不好维护。
3. 结果集处理存在重复代码,处理麻烦。如果可以映射为java对象会比较方便。
代码实例:
public class JdbcTest { /** * */ public static void main(String[] args) { // TODO Auto-generated method stub Connection con = null; PreparedStatement psmt = null; ResultSet rs = null; try{ //1.加载驱动 Class.forName("com.mysql.jdbc.Driver"); //2.创建数据库连接对象 con = DriverManager .getConnection("jdbc:mysql://127.0.0.1:3306/70_mybatis", "root", "admin"); //3.定义sql语句 String sql="select * from `user` where id=?"; //4.创建statement语句对象 psmt = con.prepareStatement(sql); //5.设置参数 psmt.setInt(1, 24); //6.执行 rs = psmt.executeQuery(); //7.处理结果集 while(rs.next()){ System.out.println("用户id:"+rs.getInt("id")+",用户名称:"+rs.getString("username")); } }catch(Exception e){ e.printStackTrace(); }finally{ //8.释放资源 try{ if(rs != null) rs.close(); if(psmt != null ) psmt.close(); if(con != null) con.close(); }catch(Exception e){ e.printStackTrace(); } } } } |