数据库连接工具类(以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()
}
相关推荐
imDwAaY3 小时前
Redis 也能做消息队列?从 Stream 的存储讲到消费确认
数据库·redis·缓存
@Mike@4 小时前
13-数据库学习笔记(查询执行处理模型)
数据库·笔记·学习
弈栈录4 小时前
MySQL 事务、索引与锁:后端开发必须掌握的数据库基础
数据库·后端
9624564 小时前
餐饮 SaaS 优惠券系统架构演进(三):优惠计算引擎——商品级计价、冲突策略与优惠分摊
java·数据库·spring boot
染指11104 小时前
135.Agent-多Agent框架-LangChain多智能体(SubAgents子代理)
数据库·人工智能·设计模式·langchain·agent·agents
vx_Biye_Design4 小时前
springboot宠物领养与救助平台64334-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·mysql·课程设计·宠物
Elastic 中国社区官方博客4 小时前
错误最多的服务运行正常:使用 ES|QL 从日志进行根因分析
大数据·运维·数据库·sql·elasticsearch·搜索引擎·全文检索
做运维的阿瑞5 小时前
mysql数据库视图笔记:创建、修改、删除与适用场景
数据库·笔记·mysql
Seraphina365 小时前
DVWA(SQL Injection-High,XSS Reflected-Medium,XSS Stored-Medium)
数据库·经验分享·sql·网络安全·xss
@Mike@5 小时前
12-数据库学习笔记(五种连接算法)
数据库·笔记·学习