} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
-
使用jdbc对于增删改方法的封装
-
对于增删改方法,仍有大部分的冗余代码,但在这些冗余代码中又有一些是不同的
-
例如sql语句,以及传入的参数,所以可把相同的代码封装,不同的代码抽取
-
这只是代码的简化,并不是程序的优化
-
@param sql 对于sql语句的抽取
-
@param obj 可变长参数
-
可变长参数必须是最后一个形参,也只能有一个这样的形参
-
在该方法内部,将obj当成一个数组使用。
-
@throws SQLException
*/
public static void update(String sql,Object…obj) throws SQLException{
Connection conn = null;
PreparedStatement ps = null;
try{
//调用本类中的获取连接方法
conn = getConnection();
ps = conn.prepareStatement(sql);
//再判断传入的参数是否为空
if (obj != null) {
//如果不为空则挨个赋值
for (int i = 0; i < obj.length; i++) {
ps.setObject(i+1, obj[i]);
}
}
ps.executeUpdate();
//这里不用catch异常是因为要在dao中去处理
}finally{
//这里的conn连接不要关,在services层中去关闭!在services中处理事务!
toClose(null, ps, null);
}
}
/*
-
反射:
-
什么是类对象和类的对象?
-
Student s = new Student();
s是类的对象,是某一个类创建出来的对象,这个类是Student
//1.在运行期加载一个类到虚拟机中<