我们这里来写一个通用的增伤改操作的命令,
首先我们来分析进行增伤改操作需要做什么,
步骤:
1.获取数据库的连接
2.预编译sq1语句,返回PreparedStatement的实例
3.填充占位符
4.执行
5.资源的关闭
然后有区别的是什么操作?
只有
2.预编译sq1语句,返回PreparedStatement的实例
3.填充占位符
所以我们只需要写一个方法能传sql语句和占位符就可以了。
package cn.zsp.preparedstatement.crud;
import cn.zsp.preparedstatement.util.JDBCUtils;
import org.junit.Test;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;
//今天来学增删改查
public class PreparedStatementMethodTest {
//这里来写一个通用的增伤改操作方法
@Test
public void testCommonUpdate(){
String sql="delete from students where uid = ?";
update(sql,3);
}
public void update(String sql,Object...args) {
//这里用Object是因为我不知道到底是什么数据类型会传过来
Connection conn=null;
PreparedStatement ps=null;
try {
conn=JDBCUtils.getConnection();
ps = conn.prepareStatement(sql);
for (int i = 0; i <args.length ; i++) {
ps.setObject(i+1,args[i]);
}
ps.execute();
} catch (Exception e) {
e.printStackTrace();
}
JDBCUtils.closeResource(conn,ps);
}
}
这是我写的工具类:
package cn.zsp.preparedstatement.util;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
/**
* 操作数据库的工具类
*/
public class JDBCUtils {
/**
* 获取连接
* @return 返回连接
* @throws Exception
*/
public static Connection getConnection() throws Exception {
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc" +
".properties");
Properties pro =new Properties();
pro.load(is);
String user=pro.getProperty("user");
String password=pro.getProperty("password");
String url=pro.getProperty("url");
String driverClass=pro.getProperty("driverClass");
Class.forName(driverClass);
Connection connection = DriverManager.getConnection(url, user,
password);
return connection;
}
public static void closeResource(Connection connection, Statement pre)
{
try {
if(pre!=null)
pre.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
try {
if(connection!=null)
connection.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}