10.12JDBC之DAO及其实现类
BaseDAO类
概念:
- 
封装了针对于数据表的通用操作 
- 
因为我们后续不会去造BaseDAO的对象,所以声明为抽象类--->不能够造该对象 
该类包含的函数:
- 
通用的增、删、改操作 
- 
通用的查询一条数据操作 
- 
通用的查询多条数据操作 
- 
支持使用 MySQL内置函数操作
package JDBCDAO;
import JDBCStatementCRUD.JDBCUtils;
import java.lang.reflect.Field;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
 * 封装了针对于数据表的通用的操作
 * 因为我们后续不会去造BaseDAO的对象,所以声明为抽象类--->不能够造该对象
 * Data(base) Access Object:数据库访问对象
 * @since JDK 1.8
 * @date 2021/10/12
 * @author Lucifer
 */
public abstract class BaseDAO {
    //外部传入连接
    //通用的增删改查方法--->version 2.0(考虑了事务以后的操作)
    public int update(Connection conn, String sql, Object ...args) {
        PreparedStatement ps = null;
        try {
            //获取链接
            conn = JDBCUtils.getConnection();
            //预编译sql
            ps = conn.prepareStatement(sql);
            //填充占位符--->使用流的形式
            for (int i = 0; i < args.length; i++) {
                ps.setObject(i + 1, args[i]);
            }
            //执行语句
            return ps.executeUpdate();
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            //关闭资源
            /*
            1、由于是外部传入的连接,所以不需要关闭Connection连接
             */
            JDBCUtils.closeResource(null, ps);
        }
        return 0;
    }
    /*
    1、将其设置为事务的处理方式。--->将事务作为参数传入函数当中
    注意:
    1、不要再次创建链接Connection
    2、关闭的时候不要关闭连接
    通用查询操作,用于返回数据表中的一条数据(考虑事务操作)
     */
    //仅返回一个对象
    public <T> T getInstance(Connection conn, Class<T> clazz, String sql, Object ...args) {
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            //预编译sql
            ps = conn.prepareStatement(sql);
            //填充占位符
            for (int i=0; i<args.length; i++) {
                ps.setObject(i+1, args[i]);
            }
            //执行sql保存为结果集对象
            rs = ps.executeQuery();
            //获取结果集元数据
            ResultSetMetaData rsmd = rs.getMetaData();
            //获取列数 
                     
                    
                 
                    
                