-
フレームワークはソフトウェア開発における一連のソリューションであり、フレームワークによって解決される問題は異なります。
-
フレームワークを使用する利点:
フレームワークは多くの詳細をカプセル化しているため、開発者は最小限の方法で機能を実現できます。開発効率が大幅に向上します。 -
3層アーキテクチャ
プレゼンテーション層:データの表示に使用されます- ビジネス層:
ビジネスニーズを処理する - 持続性レイヤー:
データベースと対話します
mybatisの概要
- mybatisは、javaで記述された永続化レイヤーフレームワークです。
これはjdbc操作の多くの詳細をカプセル化しているため、開発者はsqlステートメント自体に注意を払うだけでよく、ドライバーの登録と接続の作成の複雑なプロセスに注意を払う必要はありません。 - MybatisはORMのアイデアを使用して、結果セットのカプセル化を実現します。
- ORM:
オブジェクトリレーショナルマッピングオブジェクトリレーショナルマッピング
簡単に言う
と、データベーステーブルをエンティティクラスとエンティティクラスの属性と照合することです。
エンティティクラスを操作して、データベーステーブルの操作を実装してみましょう。
- ORM:
データベース | エンティティークラス |
---|---|
id | ユーザーID |
user_name | userName |
———— | ———— |
id | id |
ユーザー名 | ユーザー名 |
mybatisを使い始める
- Mybatis環境の構築
-
ステップ1:Mavenプロジェクトを作成して座標をインポートする
-
2番目のステップ:エンティティークラスとdaoインターフェースを作成する
-
手順3:Mybatisのメイン構成ファイル(SqlMapConifg.xml)を作成する
-
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- mybatis的主配置文件 -->
<configuration>
<!-- 配置环境 -->
<environments default="mysql">
<!-- 配置mysql的环境-->
<environment id="mysql">
<!-- 配置事务的类型-->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源(连接池) -->
<dataSource type="POOLED">
<!-- 配置连接数据库的4个基本信息 -->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db1"/>
<property name="username" value="root"/>
<property name="password" value="1419"/>
</dataSource>
</environment>
</environments>
<!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
<mappers>
<mapper resource="cn/myp666/dao/UserDao.xml"/>
</mappers>
</configuration>
- ステップ4:マッピング構成ファイル(UserDao.xml)を作成する
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.myp666.dao.UserDao">
<!--配置查询所有-->
<select id="findAll" resultType="cn.myp666.domain.User">
select * from user
</select>
</mapper>
環境構築に関する注意:
-
1つ目:Mybatisでは、永続化レイヤーの操作インターフェース名とマッピングファイル:Mapperとも呼ばれていました。
- つまり、名前が付けられると、UserDaoはUserMapperにも名前を付けることができます
- つまり、名前が付けられると、UserDaoはUserMapperにも名前を付けることができます
-
第二:ディレクトリとパッケージは同じではありません、時間の観念にディレクトリを作成する
ことが三次構造であるcn.myp666.dao:作成時にパッケージ
するときに作成されたディレクトリ:cn.myp666.daoはディレクトリです -
3番目:mybatisのマッピング構成ファイルの場所は、daoインターフェースのパッケージ構造と同じである必要があります
-
4番目:マッピング構成ファイルのマッパータグの名前空間属性の値は、daoインターフェースの完全修飾クラス名である必要があります
-
5番目:マッピング構成ファイルの操作構成(選択)、id属性の値はdaoインターフェースのメソッド名でなければなりません
-
3番目、4番目、および5番目のポイントに準拠した後は、開発でdao実装クラスを記述する必要はありません。
Mybatisエントリーケース
//1.读取配置文件
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(is);
//3.使用工厂生产SqlSession对象
SqlSession session = factory.openSession();
//4.使用SqlSession创建Dao接口的代理对象
UserDao userDao = session.getMapper(UserDao.class);
//5.使用代理对象执行方法
List<User> users = userDao.findAll();
for(User user : users){
System.out.println(user);
}
//6.释放资源
session.close();
is.close();