1.jdbc编程过程:
加载数据库驱动
获取connection
创建statement
设置SQL语句
占位符设置值
sql执行,并且返回结果
对SQL结果进行解析
释放资源
//查询所有
public List<Phone> getSelectAll(){
Connection conn=null;
PreparedStatement pst=null;
ResultSet rs=null;
List<Phone> list=new ArrayList<Phone>();
try {
conn = DBUtil.getConn();
String sql = "select * from phone";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()){
Phone po = new Phone();
po.setName(rs.getString("name"));
po.setSex(rs.getString("sex"));
po.setAge(rs.getInt("age"));
po.setPhone(rs.getString("phone"));
po.setQq(rs.getString("qq"));
po.setAddress(rs.getString("address"));
list.add(po);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
DBUtil.connClose(rs, pst, conn);
}
return list;
}
2.存在的一些问题:
1.加载驱动、获取连接、释放资源等过与频繁,影响性能而且是资源浪费
数据库连接池c3p0.
2.sql语句存在硬编码问题,造成不易维护。
3.对结果集的封装也存在硬编码问题
4.statement对象的SQL设置参数、也存在硬编码问题,造成代码不易维护