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