IDEAはC3P0を使用してMysqlデータベースに接続します

コンテンツ

1.ドライバーをダウンロードして、プロジェクトに追加します

2.c3p0-config.xmlを構成します

3.ツールクラスの作成

4.テストクラスを作成して実行します

5.ありがとう


1.ドライバーをダウンロードして、プロジェクトに追加します

1>インポート:c3p0-0.9.2.1.jar、mchange-commons-java-0.2.3.4.jar(左側のパブリックアカウントをたどる:Landuoduoの小さな倉庫、「c3p0」と返信してリソースを取得します)

2>ファイル------>プロジェクト構造…------>ライブラリ------>+------> Java

 mchange-commons-java-0.2.3.4.jarのインポートについても同じことが言えます。

2.c3p0-config.xmlを構成します

IDEAでxmlファイルを作成する方法がわからない場合は、以下を参照してください。IDEAでxmlファイルを作成する-プログラマーが求める

知らせ:

完全な構成:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
  <!--
  C3P0的缺省(默认)配置,
  如果在代码中“ComboPooledDataSource ds = new ComboPooledDataSource();”这样写就表示使用的是C3P0的缺省(默认)配置信息来创建数据源
  -->
  <default-config>
    <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/book_test?useSSL=false&amp;serverTimezone=CTT&amp;characterEncoding=utf8</property>
    <property name="user">root</property>
    <property name="password">123456</property>

    <property name="acquireIncrement">5</property>
    <property name="initialPoolSize">10</property>
    <property name="minPoolSize">5</property>
    <property name="maxPoolSize">20</property>
  </default-config>
  <!--
  C3P0的命名配置,
  如果在代码中“ComboPooledDataSource ds = new ComboPooledDataSource("MySQL");”这样写就表示使用的是name是MySQL的配置信息来创建数据源
  -->
  <named-config name="MySQL">
    <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/book_test?useSSL=false&amp;serverTimezone=CTT&amp;characterEncoding=utf8</property>
    <property name="user">root</property>
    <property name="password">123456</property>

    <property name="acquireIncrement">5</property>
    <property name="initialPoolSize">10</property>
    <property name="minPoolSize">5</property>
    <property name="maxPoolSize">20</property>
  </named-config>

</c3p0-config>

3.ツールクラスの作成

/**
 * @author 蓝多多的小仓库
 * @title: C3P0_Utils
 * @projectName ldd_firstpro
 * @description: ldd_annotation
 * @date 2022/1/13 15:23
 */
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0_Utils {

  private static ComboPooledDataSource dataSource = null;
  //在静态代码块中创建数据库连接池
  static{
    try{
      dataSource = new ComboPooledDataSource("MySQL");//使用C3P0的命名配置来创建数据源
      System.out.println(dataSource);
    }catch (Exception e) {
      throw new ExceptionInInitializerError(e);
    }
  }

  public static Connection getConnection() throws SQLException{
    //从数据源中获取数据库连接
    return dataSource.getConnection();
  }

  // 释放资源
  public static void release(Connection conn,Statement st,ResultSet rs){
    if(rs!=null){
      try{
        //关闭存储查询结果的ResultSet对象
        rs.close();
      }catch (Exception e) {
        e.printStackTrace();
      }
      rs = null;
    }
    if(st!=null){
      try{
        //关闭负责执行SQL命令的Statement对象
        st.close();
      }catch (Exception e) {
        e.printStackTrace();
      }
    }

    if(conn!=null){
      try{
        //将Connection连接对象还给数据库连接池
        conn.close();
      }catch (Exception e) {
        e.printStackTrace();
      }
    }
  }
}

4.テストクラスを作成して実行します

私のデータベースを使用する場合は、以下を参照してください。JDBCを使用してMysqlデータベースに接続する手順-プログラマーが求める

/**
 * @author 蓝多多的小仓库
 * @title: DataSourceTest
 * @projectName ldd_firstpro
 * @description: ldd_annotation
 * @date 2022/1/13 15:24
 */
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.Statement;

public class DataSourceTest {

  public void c3p0DataSourceTest() {
    Connection conn = null;
    Statement st = null;
    ResultSet rs = null;
    try {
      //获取数据库连接
      conn = C3P0_Utils.getConnection();
      String sql = "select * from bookinfo";     // 查询数据的sql语句
      st = (Statement) conn.createStatement();    //创建用于执行静态sql语句的Statement对象,st属局部变量

      rs = st.executeQuery(sql);    //执行sql查询语句,返回查询数据的结果集
      System.out.println("最后的查询结果为:");
      while(rs.next()){ //遍历结果集,取出数据
        int book_id = rs.getInt("book_id");
        String book_name = rs.getString("book_name");
        BigDecimal price = rs.getBigDecimal("price");
        Date public_date = rs.getDate("public_date");
        String store = rs.getString("store");
        //输出数据
        System.out.print("图书编号:"+book_id);
        System.out.print(",图书名称:"+book_name);
        System.out.print(",价格"+price);
        System.out.print(",出版日期"+public_date);
        System.out.print(",库存"+store);
        System.out.println();
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      //释放资源
      C3P0_Utils.release(conn, st, rs);
    }
  }

  public static void main(String[] args) {
    new DataSourceTest().c3p0DataSourceTest();
  }
}

試験結果:

5.ありがとう

        Mingge@ programmingworldmingshiyin の技術指導に感謝します。Duoduoを学び、交換してくれた友達にも感謝します!

おすすめ

転載: blog.csdn.net/qq_43554335/article/details/122476684