使用到的软件及工具包
-
IDEA 2019版本
-
Mysql 8.0版本
-
Mysql-connector-java-8.0.11(Mysql连接Java驱动)
-
Druid-1.1.0
-
工具下载合集
链接:https://pan.baidu.com/s/1g0D9m59nIT2Fq1aSJIxh8A
提取码:66cq
步骤
-
创建数据库
- 创建一个数据库db2
- 在db2下创建一个user表
- 在user表中增加id, username, password 三条属性
- 插入若干条数据
注:请自行用数据库操作软件如:navicat等完成上述建立数据库内容的操作
操作结果如下:
-
创建一个java项目JDBCDruid
1. 新建包
1. 新建一个包com.jdbc.druid
2. 新建一个包com.jdbc.utils
2. 新建类
1. 在druid下新建一个class: DruidDemo
2. 在utils下新建一个class: JDBCUtils -
在项目路径下新建libs目录
1. 导入mysql-connector-java-8.0.11.jar
2. 导入druid-1.1.0.jar
3. 选中两个文件,右键:add as library… -
创建Druid配置文件:在src目录下创建 druid.properties,并加入如下内容
driverClassName=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/youDatabaseName?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&user=youUserName&password=youPassword initialSize=5 maxActive=10 maxWait=3000
第二、三、四步的操作结果如下:
-
编写代码
-
JDBCUtils:
package com.jdbc.utils; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; /** * druid数据库连接池工具类 */ public class JDBCUtils { // 1. 定义成员变量 private static DataSource ds; static { try { //1. 加载配置文件druid.properties 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(); } } /** * 获取连接:直接从数据库连接池中获取连接 * * 当连接池为空时返回null (ds.getConnection() = null) * @return Connection * @throws SQLException */ public static Connection getConnection() throws SQLException { return ds.getConnection(); } /** * 释放资源方法, 此处重载调用三个参数的方法设置第一个参数为空即可 * @param stmt * @param conn */ public static void close(Statement stmt, Connection conn){ close(null,stmt,conn); } /** * 释放资源方法, 注意:最后打开的对象应当最先关闭 * Statement是prepereStatement对象这父类,这里使用父类对象引用指向子类对象 * @param rs * @param stmt * @param conn */ public static void close(ResultSet rs, Statement stmt, Connection conn){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(stmt!=null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static DataSource getDataSourse(){ return ds; } }
-
DruidDemo:
package com.jdbc.druid; import com.jdbc.utils.JDBCUtils; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /**、 * 使用Druid数据库连接池实现的工具类 */ public class DruidDemo { public static void main(String[] args) { /* *完成数据库,给表user添加一条记录操作 */ Connection conn = null; PreparedStatement pstmt = null; try { //1. 获取连接对象 conn = JDBCUtils.getConnection(); // 2. 定义sql,此处可自行尝试sql语句 String sql = "select * from user "; //3. 获取pstmt对象 pstmt = conn.prepareStatement(sql); //4. 执行sql /* *注意: select操作使用executeUpdate()执行, inset操作应该使用executeUpdate()执行 */ ResultSet rs = pstmt.executeQuery(); while (rs.next()){ int id = rs.getInt(1); String username = rs.getString(2); String pwd = rs.getString(3); System.out.println(id+"----"+username+"-----"+pwd); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtils.close(pstmt,conn); } } }
运行结果示例:
-