工程目录
一、准备工作
1、导入jar包 :
druid依赖包:druid-1.0.9.jar
mysql驱动包:mysql-connector-java-5.1.37-bin.jar
2、配置文件:
druid.properties
二、代码编写
1、导jar包
2、druid.properties配置文件
# 驱动
driverClassName=com.mysql.jdbc.Driver
# 数据库地址
url=jdbc:mysql://127.0.0.1:3306/my_db
# 用户名
username=root
# 密码
password=root
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000
3、JDBCUtils工具类
package com.mollen.demo03;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
/**
* @ClassNmme: JDBCUtils
* @Author: Mollen
* @CreateDate: 2018-09-07 16:44:42
* @Description:
* Druid连接池工具类
*/
public class JDBCUtils {
/**
* 1.定义成员变量
*/
private static DataSource ds;
/**
* 2.加载数据源
*/
static {
try {
Properties pro = new Properties();
InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("Druid.properties");
pro.load(is);
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 3.获取连接池对象
* @return
*/
public static DataSource getDataSource() {
return ds;
}
/**
* 4.获取数据库连接对象
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
}
4、测试类
package com.mollen.demo03;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
* @ClassNmme: DruidTest
* @Author: Mollen
* @CreateDate: 2018-09-07 18:44:42
* @Description:
* durid连接池应用测试
*/
public class DruidTest {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
try{
//1.连接数据库
conn=JDBCUtils.getConnection();
//2.定义sql语句
String sql = "INSERT INTO student VALUES(?,?)";
//3.执行sql
pstmt = conn.prepareCall(sql);
//4.解释参数
pstmt.setString(1,"张飞");
pstmt.setInt(2,28);
//5.执行结果(影响行数)
int count = pstmt.executeUpdate();
//打印受影响行数
System.out.println(count+"行受影响...");
} catch (SQLException e) {
e.printStackTrace();
}finally {
//释放资源
JDBCUtils.close(pstmt,conn);
}
}
}
三、注意事项
1、参数解释,注意
参数类型
;
2、执行语句选择
增,删,改(DML)操作建议使用executeUpdate()
;
查询(DQL)操作建议使用executeQuery()
;
需要对执行语句类型做出判断用execute()
3、数据库连接使用完毕必须释放资源