数据库连接工具类(以mysql为例子)

依赖:

java 复制代码
 <!-- 连接MySQL数据库的依赖,其他数据库网上找pom依赖替换 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>
 <!-- 阿里巴巴连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.21</version>
        </dependency>

DBUntil(工具类)

java 复制代码
public class DBUntil {
   private static String  url;
   private static String name;
   private static String password;
   private   String drive;
   private   Connection connection;
   private  Statement statement;
   private static DruidDataSource dds;
   private static int minPool =10;//最小连接数
   private static int maxPool =20;//最大连接数
   private static DBUntil DB ;

    public static void initPool() {
    dds = new DruidDataSource();
    dds.setUrl(url);
    dds.setUsername(name);
    dds.setPassword(password);
    dds.setInitialSize(minPool);
    dds.setMaxActive(maxPool);
    }


    public Statement createStatements() {
        try {
            //Class.forName(drive);
            connection = dds.getConnection();
            statement = connection.createStatement();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        return statement;
    }
    public PreparedStatement preparedStatement(String sql){
        try {
            return connection.prepareStatement(sql);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    public void close()  {
        dds.close();
    }

    /*访问器*/

    public void setUrl(String url) {this.url = url;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setDrive(String drive) {
        this.drive = drive;
    }

    public void setMinPool(int minPool) {this.minPool = minPool;}

    public void setMaxPool(int maxPool) {this.maxPool = maxPool;}

    public static DBUntil getDB() {
        DB = new DBUntil();
        return DB;
    }
}

使用:

java 复制代码
private static DBUntil db = DBUntil.getDB();
private static Statement statement;
private  String sql;
private PreparedStatement ps;//预编译

static {
        db.setUrl("");//数据库url(jdbc:mysql://url:端口/数据库名称?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true)
        db.setName("");//用户名
        db.setPassword("");//密码
        db.initPool();//初始化连接池
    /*设置连接数数db.setMinPool();db.setMaxPool();*/
        //statement = db.createStatements();
    }//初始化

/*在方法中调用 查询为例*/
sql ="SELECT * FROM userinfo WHERE userinfo.username=? AND userinfo.password=?";
        try {
            ps= db.preparedStatement(sql);
            ps.setString(1,username);//将username替代sql第一个问号
            ps.setString(2,password);//将username替代sql第二个问号
            ResultSet rs= ps.executeQuery();//增删该ps.executeUpdate()
}
相关推荐
IvorySQL33 分钟前
双星闪耀温哥华:IvorySQL 社区两项议题入选 PGConf.dev 2026
数据库·postgresql·开源
ma_king3 小时前
入门 java 和 数据库
java·数据库·后端
jiayou647 小时前
KingbaseES 实战:审计追踪配置与运维实践
数据库
随风飘的云8 小时前
mysql的innodb引擎对可重复读做了那些优化,可以避免幻读
mysql
NineData18 小时前
NineData 迁移评估功能正式上线
数据库·dba
NineData1 天前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
赵渝强老师1 天前
【赵渝强老师】PostgreSQL中表的碎片
数据库·postgresql
全栈老石1 天前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
倔强的石头_2 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou643 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库