JDBC 接続プール、JDBCTemplate

**

1. データベース接続プール

**
1.1 分析

毎回接続リソースを申請し、使用後にリソースを解放する必要があり、非常に手間がかかり、リソースの無駄が発生します。

1.2 コンセプト

データベース接続プールは、実際にはデータベース接続を格納するコンテナ (コレクション) です。

システムの初期化後、コンテナが作成され、いくつかの接続オブジェクトがコンテナに適用されます。ユーザーがデータベースにアクセスすると、データベース接続オブジェクトがコンテナから取得されます。ユーザーがアクセスを完了すると、接続オブジェクトが取得されます。コンテナに戻されます。

データベース接続プール テクノロジは、マルチスレッドのスレッド プールに似ています。

1.3 どのように実装するか?

1) 標準インターフェイス: DataSource (データ ソース、つまり接続プール)、java.sql パッケージの下に含まれるメソッドは次のとおりです。

获取连接:getConnection()
归还连接:connection.close()
	如果连接对象connection是从连接池中获取的,那么调用connection.close()方法,则不会关闭连接,而是归还连接。

2) 通常、DataSource インターフェイスを自分で実装する必要はありませんが、データベース ベンダーによって実装されます。

1.C3P0:数据库连接池技术(技术较老)
2.Druid:数据库连接池技术(推荐,技术较新)

1.4 C3P0 データベース接続プール テクノロジー

使用手順は次のとおりです。

1.导入jar包(两个)c3p0-0.9.5.2.jar和mchange-commons-java-0.2.12.jar
    注意不要忘记导入数据库的驱动jar包
2.定义配置文件:
    1.名称(必须是这两种名称,这样会自动找到文件,不是这个名称的话,会找不到文件):c3p0-config.xml or c3p0.properties
    2.路径:直接将文件放在src目录下即可。
3.创建核心对象,即数据库连接池对象:ComboPooledDataSource

1.5 Druid データベース接続プール技術

使用手順:

1.导入jar包:druid-1.0.9.jar,同样不要忘记导入数据库驱动jar包
2.定义配置文件,该文件有以下特点:
     1.是properties形式的
     2.可以是任意名称,可以放在任意目录下
         区别于C3P0,不会自动加载配置文件,C3P0的配置文件放在src目录下会自动加载
3.加载配置文件:Properties
4.获取数据库连接池对象:通过工厂类来获取,DruidDataSourceFactory
5.获取连接:getConnection

ツールクラスを定義します。

1.导入jar包:druid-1.0.9.jar,同样不要忘记导入数据库驱动jar包
2.定义配置文件,该文件有以下特点:
    1.是properties形式的
    2.可以是任意名称,可以放在任意目录下
        区别于C3P0,不会自动加载配置文件,C3P0的配置文件放在src目录下会自动加载
3.加载配置文件:Properties
4.获取数据库连接池对象:通过工厂类来获取,DruidDataSourceFactory
5.获取连接:getConnection

**

二、Spring JDBC:JDBC テンプレート

**

2.1 コンセプト

Spring フレームワークによる JDBC の単純なカプセル化。JDBC 開発を簡素化するための JDBCTemplate オブジェクトを提供します

2.2 使用手順

1.导入jar包
2.创建JDBCTemplate对象。创建的时候依赖于数据源DataSource(连接池)。
	jdbcTemplate template = new jdbcTemplate(ds);
3.调用JDBCTemplate对象的方法完成增删改查的操作
	update():执行DML语句
	queryForMap():查询结果,并将结果集封装为map集合
		将列名作为key,将值作为value,将这条记录封装为一个map集合
		注意事项:这个方法查询的结果集长度只能是1
	queryForList():查询结果,并将结果集封装为list集合
		注意:该方法是将每一条记录封装为一个map集合,再讲map集合装载到list集合中
	query():查询结果,并将结果集封装为JavaBean对象
		参数:RowMapper
			一般我们使用BeanPropertyRowMapper实现类,可以完成数据JavaBean的自动封装
			new BeanPropertyRowMapper<类型>(类型的字节码对象)
		注意:该方法是将每一条记录封装为一个JavaBean对象,此处设置JavaBean对象为Emp对象,然后再将JavaBean对象装载到list集合中
		在实际应用中,使用该方法,而不是将记录封装为map
	queryForObject():查询结果,并将结果集封装为对象
		一般用于聚合函数的查询

2.3 JavaBean

JavaBean は命名規則に準拠したクラスです。ゲッターとセッターを通じてプロパティを定義します。読み取り専用のプロパティはゲッターのみで、セッターはありません。

おすすめ

転載: blog.csdn.net/weixin_42214237/article/details/126312776