使用元数据简化jdbc代码
一 简化的原因
在daoImp层中,在写增删改查的时候,每次都要重写一次封装数据库对象,创建连接对象,定义sql语句,释放资源,在这些方法中,我们可以提取共同点,并把不同的定义sql语句并处理sql语句,当成参数传给一个方法,并用循环的方式输出也是个很好的操作
二 简化的实现
1.建框架---提取共同的部分并形成一个方法
// 建框架----更新的操作是增、删 、改
public static void udpate(String sql, Object[] params) {
Connection con = null;
PreparedStatement st = null;
ResultSet rs = null;
try {
con = DBManager_c3p0.getConnection();
st = con.prepareStatement(sql);
for(int i =1;i<params.length;i++){
st.setObject(i+1, params[i]);
}
st.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBManager.release(con, st, rs);
}
}
2.daoImpl层中使用框架特别简单,就几句话
(1)insert方法的实现
public void insert() {
String sql = "insert into users(name,password,email) values(?,?,?)";
Object[] params = { "xxx", "111", "lkfjl@.com" };
DBManager.udpate(sql, params);
}
(2)delete方法的实现
public void delete() {
String sql = "delete from users where id=?";
Object[] params = { 4 };
DBManager.udpate(sql, params);
}
(3)update方法的实现
public void update() {
String sql = "update users set name=?,password=? where id=?";
Object[] params = { "sdgdd", "111", 5 };
DBManager.udpate(sql, params);
}
3.建立一个类去测试
UserDaoImpl obj = new UserDaoImpl();
obj.insert();