正因为jdbc的不足,后期才出现了很多持久层的框架,但是这些框架都是对jdbc进行了封装,然后规避或者解决了jdbc的不足,mybatis只不过是,很多持久层框架的一种,下面我们来看一下jdbc的不足吧
jdbc操作数据库代码
try {
Class.forName("com.mysql.jdbc.Driver");
//获取连接对象
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","mysql");
//创建sql命令
String sql="select * from t_user where userName=? and pwd=?";
//创建sql命令对象
PreparedStatement ps=conn.prepareStatement(sql);
//给占位符赋值
ps.setString(1, uname);
ps.setString(2, pwd);
//执行
ResultSet rs=ps.executeQuery();
//遍历结果
while (rs.next()) {
users=new Users();
users.setId(rs.getInt("id"));
users.setName(rs.getNString("userName"));
users.setPwd(rs.getNString("pwd"));
users.setTime(rs.getTimestamp("regTime"));
}
//关闭
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
rs.close();
ps.close();
conn.close();
}catch (SQLException e) {
e.printStackTrace();
}
}
}
不足与解决方案
1.数据库配置信息硬编码问题 解决方案:使用配置文件
2.频繁创建/释放数据库连接 解决方案:采用连接池
3.sql语句,设置参数,以及结果集参数都存在硬编码 解决方案:使用配置文件
4.遍历结果集,需要手动封装返回结果对象 解决方案:使用反射/内省技术