JDBC(七)—— Dao层操作
dao层操作
package com.why.dao;
import com.why.entity.User;
import com.why.utils.JdbcUtils;
import java.lang.reflect.Field;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
* @Description TODO 封装针对于数据表的通用操作
* @Author why
* @Date 2020/10/14 9:08
* Version 1.0
**/
public abstract class BaseDao {
/**
* 通用的更新操作,增删改,不支持事务
* @param sql
* @param args
*/
public void update(String sql,Object ...args) {
Connection conn = null;
PreparedStatement ps = null;
try {
//1.获取连接
conn = JdbcUtils.getConnection();
//2.预编译sql语句,返回preparedStatement实例
ps = conn.prepareStatement(sql);
//3.填充占位符
//sql占位符的个数与可变形参的长度相同,可变形参相当于一个数组
for (int i = 0; i < args.length ; i++) {
ps.setObject(i+1,args[i]);
}
//4.执行
ps.execute();
} catch (Exception e) {
e.printStackTrace();
} finally {
//5.资源关闭
JdbcUtils.closeResource(conn,ps);
}
}
/**
* 支持事务的增删改操作
* @param conn
* @param sql
* @param args
*/
public int update(Connection conn,String sql,Object ...args){
PreparedStatement ps = null;
try {
//2.预编译sql语句,返回preparedStatement实例
ps = conn.prepareStatement(sql);
//3.填充占位符
//sql占位符的个数与可变形参的长度相同,可变形参相当于一个数组
for (int i = 0; i < args.length ; i++) {
ps.setObject(i+1,args[i]);
}
//4.执行
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
//5.资源关闭
JdbcUtils.closeResource(null,ps);
}
return