当前位置:   article > 正文

开源数据库连接池的使用及其工具类_datasourceutils怎么导入

datasourceutils怎么导入
  • 目录

    C3P0数据库连接池的使用步骤

    C3P0数据库连接池实例演示(包含配置信息)

    Druid数据库连接池的使用步骤

    Druid数据库连接池实例演示(包含配置信息)

    连接池的工具类


  • C3P0数据库连接池的使用步骤

  • 1.导入jar包
  • 2.导入配置文件到src目录下
  • 3.创建C3P0连接池对象
  • 4.获取数据库连接进行使用
  • 注意:
  • C3P0的配置文件会自动加载,但是必须叫c3p0-config.xml或c3p0-config.properties
  • C3P0数据库连接池实例演示(包含配置信息)

  • 具体url和数据库帐号密码需自行在配置文件中修改
    1. <c3p0-config>
    2. <!-- 使用默认的配置读取连接池对象 -->
    3. <default-config>
    4. <!-- 连接参数 -->
    5. <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
    6. <property name="jdbcUrl">jdbc:mysql://localhost:3306/dp1</property>
    7. <property name="user">root</property>
    8. <property name="password">123456</property>
    9. <!-- 连接池参数 -->
    10. <!-- 初始连接数 -->
    11. <property name="initialPoolSize">5</property>
    12. <!-- 最大连接数 -->
    13. <property name="maxPoolSize">10</property>
    14. <!-- 最大等待时间 -->
    15. <property name="checkoutTimeout">3000</property>
    16. </default-config>
    17. <!-- 创建对象传参为otherc3p0时读取下面的配置信息 -->
    18. <named-config name="otherc3p0">
    19. <!-- 连接参数 -->
    20. <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
    21. <property name="jdbcUrl">jdbc:mysql://localhost:3306/dp1</property>
    22. <property name="user">root</property>
    23. <property name="password">123456</property>
    24. <!-- 连接池参数 -->
    25. <property name="initialPoolSize">5</property>
    26. <property name="maxPoolSize">8</property>
    27. <property name="checkoutTimeout">1000</property>
    28. </named-config>
    29. </c3p0-config>
    1. package demo02.c3p0demo;
    2. import com.mchange.v2.c3p0.ComboPooledDataSource;
    3. import javax.sql.DataSource;
    4. import java.sql.Connection;
    5. import java.sql.PreparedStatement;
    6. import java.sql.ResultSet;
    7. public class c3p0Test1 {
    8. public static void main(String[] args) throws Exception{
    9. //1.创建c3p0的数据库连接池对象
    10. DataSource dataSource = new ComboPooledDataSource();
    11. //2.通过连接池对象获取数据库连接
    12. Connection con = dataSource.getConnection();
    13. //3.查询学生表的全部信息
    14. String sql = "SELECT * FROM student";
    15. PreparedStatement pst = con.prepareStatement(sql);
    16. //4.执行sql语句,接收结果集
    17. ResultSet rs = pst.executeQuery();
    18. //5.处理结果集
    19. while(rs.next()){
    20. System.out.println(rs.getInt("sid")+"\t"+rs.getString("name")+"\t"+rs.getInt("age")+"\t"+rs.getDate("birthday"));
    21. }
    22. //6.释放资源
    23. rs.close();
    24. pst.close();
    25. con.close();//用完以后,进行归还
    26. }
    27. }
  • Druid数据库连接池的使用步骤

  • 1.导入jar包
  • 2.编写配置文件,放到src目录下
  • 3.通过Properties集合加载配置文件
  • 4.通过Druid连接池工厂类获取数据库连接池对象
  • 5.获取数据库连接进行使用
  • 注意:
  • Druid不会自动加载配置文件,需要我们手动加载,但是文件的名称可以自定义
  • Druid数据库连接池实例演示(包含配置信息)

    1. driverClassName=com.mysql.cj.jdbc.Driver
    2. url=jdbc:mysql://localhost:3306/dp1
    3. username=root
    4. password=123456
    5. initialSize=5
    6. maxActive=10
    7. maxWait=3000
    1. package demo02.druiddemo;
    2. import com.alibaba.druid.pool.DruidDataSourceFactory;
    3. import javax.sql.DataSource;
    4. import java.io.InputStream;
    5. import java.sql.Connection;
    6. import java.sql.PreparedStatement;
    7. import java.sql.ResultSet;
    8. import java.util.Properties;
    9. public class druidTest {
    10. public static void main(String[] args) throws Exception{
    11. //获取配置文件的流对象
    12. InputStream is = druidTest.class.getClassLoader().getResourceAsStream("druid.properties");
    13. //1.通过Properties集合加载配置文件
    14. Properties prop = new Properties();
    15. prop.load(is);
    16. //2.通过Druid连接池工厂类获取数据库连接池对象
    17. DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
    18. //3.通过连接池对象获取数据库连接进行使用
    19. Connection con = dataSource.getConnection();
    20. //4.查询学生表的全部信息
    21. String sql = "SELECT * FROM student";
    22. PreparedStatement pst = con.prepareStatement(sql);
    23. //5.执行sql语句,接收结果集
    24. ResultSet rs = pst.executeQuery();
    25. //6.处理结果集
    26. while(rs.next()){
    27. System.out.println(rs.getInt("sid")+"\t"+rs.getString("name")+"\t"+rs.getInt("age")+"\t"+rs.getDate("birthday"));
    28. }
    29. //6.释放资源
    30. rs.close();
    31. pst.close();
    32. con.close();//用完以后,进行归还
    33. }
    34. }
  • 连接池的工具类

    1. package demo02.utils;
    2. import com.alibaba.druid.pool.DruidDataSourceFactory;
    3. import javax.sql.DataSource;
    4. import java.io.InputStream;
    5. import java.sql.Connection;
    6. import java.sql.ResultSet;
    7. import java.sql.SQLException;
    8. import java.sql.Statement;
    9. import java.util.Properties;
    10. public class DataSourceUtils {
    11. //1.私有构造方法
    12. private DataSourceUtils(){}
    13. //2.声明数据源变量
    14. private static DataSource dataSource;
    15. //3.提供静态代码块,完成配置文件的加载
    16. static{
    17. try {
    18. //完成配置文件的加载
    19. InputStream is = DataSourceUtils.class.getClassLoader().getResourceAsStream("druid.properties");
    20. Properties prop = new Properties();
    21. prop.load(is);
    22. //获取数据库连接池对象
    23. dataSource = DruidDataSourceFactory.createDataSource(prop);
    24. } catch (Exception e) {
    25. e.printStackTrace();
    26. }
    27. }
    28. //4.提供一个获取数据库连接的方法
    29. public static Connection getConnection(){
    30. Connection con = null;
    31. try {
    32. con = dataSource.getConnection();
    33. } catch (SQLException e) {
    34. e.printStackTrace();
    35. }
    36. return con;
    37. }
    38. //5.提供一个获取数据库连接池对象的方法
    39. public static DataSource getDataSource(){
    40. return dataSource;
    41. }
    42. //6.释放资源
    43. public static void close(Connection con, Statement stat, ResultSet rs) {
    44. if(con != null) {
    45. try {
    46. con.close();
    47. } catch (SQLException e) {
    48. e.printStackTrace();
    49. }
    50. }
    51. if(stat != null) {
    52. try {
    53. stat.close();
    54. } catch (SQLException e) {
    55. e.printStackTrace();
    56. }
    57. }
    58. if(rs != null) {
    59. try {
    60. rs.close();
    61. } catch (SQLException e) {
    62. e.printStackTrace();
    63. }
    64. }
    65. }
    66. public static void close(Connection con, Statement stat) {
    67. if(con != null) {
    68. try {
    69. con.close();
    70. } catch (SQLException e) {
    71. e.printStackTrace();
    72. }
    73. }
    74. if(stat != null) {
    75. try {
    76. stat.close();
    77. } catch (SQLException e) {
    78. e.printStackTrace();
    79. }
    80. }
    81. }
    82. }
    1. package demo02.druiddemo;
    2. import demo02.utils.DataSourceUtils;
    3. import java.sql.Connection;
    4. import java.sql.PreparedStatement;
    5. import java.sql.ResultSet;
    6. public class druidTest2 {
    7. public static void main(String[] args) throws Exception{
    8. //1.通过连接池工具类获取一个数据库连接
    9. Connection con = DataSourceUtils.getConnection();
    10. //2.查询学生表的全部信息
    11. String sql = "SELECT * FROM student";
    12. PreparedStatement pst = con.prepareStatement(sql);
    13. //3.执行sql语句,接收结果集
    14. ResultSet rs = pst.executeQuery();
    15. //4.处理结果集
    16. while(rs.next()){
    17. System.out.println(rs.getInt("sid")+"\t"+rs.getString("name")+"\t"+rs.getInt("age")+"\t"+rs.getDate("birthday"));
    18. }
    19. //5.释放资源
    20. DataSourceUtils.close(con,pst,rs);
    21. }
    22. }
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/875203
推荐阅读
相关标签
  

闽ICP备14008679号