- MyBatis-スタディノート01 [01.Mybatisコースの紹介と環境構築] [day01]
- MyBatis-スタディノート02 [02.Mybatisエントリーケース]
- MyBatis-スタディノート03 [03.Mybatisフレームワークのカスタマイズ]
- MyBatis-スタディノート04 [04。アノテーション開発に基づくカスタムMybatisフレームワーク]
- MyBatis-スタディノート05 [05.Mybatisを使用してCRUDを完了する]
- MyBatis-スタディノート06 [06.Mybatisを使用してDAOレイヤーの開発を完了]
- MyBatis-スタディノート07 [07.Mybatis接続プールとトランザクション]
- MyBatis-スタディノート08 [08。動的SQL]
- MyBatis-スタディノート09【09.Mybatisのマルチテーブル操作】
- MyBatis-スタディノート10 [10.JNDI拡張知識]
- MyBatis-スタディノート11 [11.Mybatisキャッシュ]
- MyBatis-スタディノート12 [12.Mybatisアノテーションの開発]
目次
resourcesフォルダーの下にlog4j.propertiesをインポートします
3Mybatisアノテーションの開発とdao実装クラスの記述方法
1mybatisの使用を開始する
resourcesフォルダーの下にlog4j.propertiesをインポートします
# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE debug info warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
テストクラスを作成する
package com.itheima.test;
import com.itheima.dao.IUserDao;
import com.itheima.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
import java.util.List;
/**
* mybatis的入门案例
*/
public class MyBatisTest {
/**
* 入门案例
*
* @param args
*/
public static void main(String[] args) throws Exception {
//1.读取配置文件 加载文件中的信息
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
//3.使用工厂生产SqlSession对象
SqlSession session = factory.openSession();
//4.使用SqlSession创建Dao接口的代理对象
IUserDao userDao = session.getMapper(IUserDao.class);
//5.使用代理对象执行方法
List<User> users = userDao.findAll();
for (User user : users) {
System.out.println(user);
}
//6.释放资源
session.close();
in.close();
}
}
2mybatisエントリーケースのデザインパターン分析
一度にもう1つのクラスを作成する利点:柔軟なカプセル化。開発者は適用時に多くの選択肢を持てます。
注:このセクションでは、教師がこの一連のコードについて話しました。分析は非常に詳細であり、紙幣はあまり詳細ではありません!
3Mybatisアノテーションの開発とdao実装クラスの記述方法
Mybatisエントリの場合
ステップ1:構成ファイルを読み取る
ステップ2:SqlSessionFactoryファクトリを作成する
ステップ3:SqlSessionを
作成するステップ4:Daoインターフェイスのプロキシオブジェクトを作成する
ステップ5:Daoでメソッドを実行するステップ
6:リソースを解放する注:
マッピング構成にカプセル化するエンティティクラスをmybatisに指示する方法を忘れないでください:エンティティクラス
の完全修飾クラス名を指定してくださいresultType = "com.itheima.domain.User"
Mybatisアノテーションベースのエントリケース:
put IUserDao .xmlが削除され、daoインターフェイスのメソッドで@Selectアノテーションを使用し、SQLステートメント
を指定し、同時にSqlMapConfig.xmlでマッパーを構成する必要があります。class属性を使用して、の完全修飾クラス名を指定します。 daoインターフェース。
明確:
私たちの実際の開発では、単純であるほど良いので、私たちは皆、dao実装クラスを書かない方法を採用しています。
XMLまたは注釈構成の使用に関係なく。
しかし、Mybatisはdao実装クラスの作成をサポートしています。
注釈の使用
day01_eesy_02mybatis_ennotation
注釈構成
MyBatisはdaoを使用してクラスを実装します
dao実装クラスの成功したクエリ結果図:
構造図
UserDaoImpl.java
package com.itheima.dao.impl;
import com.itheima.dao.IUserDao;
import com.itheima.domain.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import java.util.List;
public class UserDaoImpl implements IUserDao {
private SqlSessionFactory factory;
public UserDaoImpl(SqlSessionFactory factory) { // 更改默认构造函数
this.factory = factory; // 使用factory得到session
}
public List<User> findAll() {
//1.使用工厂创建SqlSession对象
SqlSession session = factory.openSession(); // 使用factory得到session
//2.使用session执行查询所有用户的方法
List<User> users = session.selectList("com.itheima.dao.IUserDao.findAll");//通过配置拿到sql语句
session.close();
//3.返回查询结果
return users;
}
}
MybatisTest.java
package com.itheima.test;
import com.itheima.dao.IUserDao;
import com.itheima.dao.impl.UserDaoImpl;
import com.itheima.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
import java.util.List;
/**
* mybatis的入门案例
*/
public class MybatisTest {
/**
* 入门案例
*
* @param args
*/
public static void main(String[] args) throws Exception {
//1.读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
//3.使用工厂创建dao对象
IUserDao userDao = new UserDaoImpl(factory);
//4.使用代理对象执行方法
List<User> users = userDao.findAll();
for (User user : users) {
System.out.println(user);
}
//5.释放资源
in.close();
}
}
現在の仕事を上手くやることによってのみ、私たちは未来を夢見て、目の前のことに集中し、まだ起こっていないことについての終わりのない心配に陥ることができます。それは物事を助けませんが、私たち自身にとって厄介です。