SpringとDaoは、Springの2つのコアテクノロジーであるIoCとAOPの典型的なアプリケーションです。
- JDBCテンプレートの使用は、IoCのアプリケーションであり、JDBCテンプレートオブジェクトをDaoレイヤーの実装クラスに挿入します。
- Springのトランザクション管理はAOPの適用であり、トランザクションは一面としてサービス層のビジネス手法に織り込まれています。
コンテンツ
SpringおよびJDBCテンプレート
JDBCを直接使用することによってもたらされる複雑で長いコードを回避するために、Springは強力なテンプレートクラスであるJdbcTemplateを提供してJDBC操作を簡素化します。さらに、データソースのDataSourceオブジェクトとテンプレートのJdbcTemplateオブジェクトの両方をBeanの形式で構成ファイルに定義できるため、依存性注入の機能を十分に活用できます。
コンセプト:
JdbcTemplateとは何ですか?
Spring FrameworkはJDBCをカプセル化し、JdbcTemplateを使用してデータベース操作を容易にします
Spring JDBCモジュールは、主にコア(コアパッケージ)、dataSource(データソースパッケージ)、オブジェクト(オブジェクトパッケージ)、サポート(サポートパッケージ)の4つのパッケージで構成されています。
パッケージ名 | 説明する |
---|---|
芯 | JdbcTemplateクラス、sinpleJdbcInsertクラス、SimpleJdbcCal1クラス、NamedParameterJdbcTemplateクラスなど、JDBCのコア関数が含まれています。 |
情報源 | データソースにアクセスするためのユーティリティクラスであり、さまざまなデータソースが実装されており、JavaEEコンテナの外部でJDBCコードをテストできます。 |
物体 | オブジェクト指向の方法でデータベースにアクセスします。これにより、クエリを実行し、結果をビジネスオブジェクトとして返すことができます。これにより、データテーブルの列とビジネスオブジェクトのプロパティの間でクエリ結果をマッピングできます。 |
サポート | 例外変換機能を提供するSQLExceptionクラスなど、コアパッケージとオブジェクトパッケージのサポートクラスが含まれています。 |
上記の表からわかるように、データベースに対するSpringの操作はこれらのパッケージにカプセル化されており、Spring JDBCを使用する場合は、それを構成する必要があります。
配置数据源
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/spring"/>property name="username" value="root"/>
<property name="password" value="root"/>
<bean>
配置JDBC模板
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>注入数据源
</bean>
<bean id="xxx" class="Xxx">配置需要实例化的Bean
<properame="jdbcTemplate" ref="jdbcTemplate"/>注入JDBC模板
</bean>
上記のサンプルdataSource構成の4つのプロパティの説明を、次の表に示します。
プロパティ名 | 意味 |
---|---|
driverClassName | 使用されるドライバー名は、ドライバーJARパッケージのDriverクラスに対応しています。 |
url | データソースのアドレス。 |
ユーザー名 | データベースにアクセスするためのユーザー名。 |
パスワード | データベースにアクセスするためのパスワード |
メソッドの説明
JdbcTemplateのコアクラスには、データベースを更新およびクエリするための多数のメソッドが用意されており、これらのメソッドを使用してデータベースを操作します。
方法 | 説明する |
実行する() | execute(String sql)メソッドを使用して、SQLステートメントを実行できます |
アップデート() | update()は、挿入、更新、および削除操作を実行するために使用されます |
query() | update()は、データクエリ操作を実行するために使用されます |
✨✨✨私は境界線です✨✨✨
jdbc戦闘作戦
1.パッケージを作成します
2.srcの下にapplicationContext.xmlを作成します
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<!-- 1配置数据源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!--数据库驱动 -->
<property name="driverClassName"
value="com.mysql.cj.jdbc.Driver" />
<!--连接数据库的url -->
<property name="url"
value="jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT&useSSL=false" />
<!--连接数据库的用户名 -->
<property name="username" value="root" />
<!--连接数据库的密码 -->
<property name="password" value="123456" />
</bean>
<!-- 2配置JDBC模板 -->
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 默认必须使用数据源 -->
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
3.libディレクトリにjarパッケージを導入します
SSM-jarパッケージファミリバケット:https ://tuomasi.lanzouy.com/b02uszjch
パスワード:jars
4.クラスを作成します
package com.Example.jdbc;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
public class JdbcTemplateTest {
/**
* 使用execute()方法建表
*/
public static void main(String[] args) {
// 加载配置文件
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
// 获取JdbcTemplate实例
JdbcTemplate jdTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
// 使用execute()方法执行SQL语句,创建用户账户管理表account
jdTemplate.execute("create table account(" + "id int primary key auto_increment," + "username varchar(50),"
+ "balance double)");
System.out.println("账户表account创建成功!");
}
}
5.データベースを作成します
create database spring;
mysql> create database spring;
Query OK, 1 row affected (0.02 sec)
mysql> use spring;
Database changed
mysql> show tables;
Empty set (0.02 sec)
6.プログラムを実行します
7.データベースを表示します
mysql> use spring;
Database changed
mysql> show tables;
+------------------+
| Tables_in_spring |
+------------------+
| account |
+------------------+
1 row in set (0.00 sec)
mysql> desc account;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| username | varchar(50) | YES | | NULL | |
| balance | double | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
注:アカウントデータテーブルは正常に作成されました。