数据库连接工具类(以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()
}
相关推荐
希忘auto17 分钟前
详解MySQL安装
java·mysql
运维佬25 分钟前
在 MySQL 8.0 中,SSL 解密失败,在使用 SSL 加密连接时出现了问题
mysql·adb·ssl
Leo.yuan30 分钟前
数据量大Excel卡顿严重?选对报表工具提高10倍效率
数据库·数据分析·数据可视化·powerbi
Runing_WoNiu38 分钟前
MySQL与Oracle对比及区别
数据库·mysql·oracle
天道有情战天下1 小时前
mysql锁机制详解
数据库·mysql
看山还是山,看水还是。1 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
谷新龙0011 小时前
Redis运行时的10大重要指标
数据库·redis·缓存
CodingBrother1 小时前
MySQL 中单列索引与联合索引分析
数据库·mysql
精进攻城狮@1 小时前
Redis缓存雪崩、缓存击穿、缓存穿透
数据库·redis·缓存
小酋仍在学习1 小时前
光驱验证 MD5 校验和
数据库·postgresql