前回の講義では、UserMapper.xmlでfindByIdとfindAllの2つのクエリステートメントを定義し、それに応じてUserMapperインターフェイスでfindById(int id)とfindAll()の2つの抽象メソッドを定義しました。
1.補足コンテンツ、SQLセッションオブジェクトの取得にMyBatis設定ファイルを使用しないでください
(1)公式ウェブサイトで情報を表示する
記事全体が英語であり、Youdao辞書で翻訳しました。
(2)UserDataSourceFactoryという名前の新しいオブジェクトを作成します。
(3)コードを書く
public class TestUserMapperNew {
private SqlSession sqlSession;//SQL会话
private UserMapper userMapper;//用户映射器
@Before
public void init() {
//获取数据源
DataSource dataSource = new PooledDataSource("com.mysql.jdbc.Driver",
"jdbc:mysql://localhost:3306/testdb?useSSL=false","root","123456");
//创建事务工厂
TransactionFactory transactionFactory = new JdbcTransactionFactory();
//创建数据库环境
Environment environment = new Environment("development",transactionFactory,dataSource);
//基于环境创建配置对象
Configuration configuration = new Configuration(environment);
//添加用户映射器配置接口
configuration.addMapper(UserMapper.class);
// 基于MyBatis配置对象构建SQL会话工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(configuration);
// 利用SQL会话工厂获取SQL会话
sqlSession = factory.openSession();
//利用SQL会话获取用户映射器对象
userMapper = sqlSession.getMapper(UserMapper.class);
// 提示用户SQL会话创建成功
System.out.println("sqlSession对象已创建。");
}
@Test
public void testFindById() {
int id = 1;
User user = userMapper.findById(id);
if (user != null) {
System.out.println(user);
} else {
System.out.println("编号为[" + id + "]的用户未找到。");
}
}
@Test
public void testFindAll() {
List<User> users = userMapper.findAll();
users.forEach(user -> System.out.println(user));
System.out.println();
for(int i = 0; i< users.size();i++){
System.out.println(users.get(i));
}
System.out.println();
for (User user:users){
System.out.println(users);
}
}
@After
public void destroy() {
// 关闭SQL会话
sqlSession.close();
// 提示用户SQL会话对象关闭
System.out.println("sqlSession对象已关闭。");
}
}
(4)テストを実行しますテストクラスTestUserMapperNewでTestFindByIdメソッドを実行します
ユーザーマッパーインターフェイスを変更します
(5)テストを実行しますテストクラスで
TestFindByIdメソッドを実行しますTestUserMapperNew (6)テストを実行しますTestFindAllメソッド
実行に戻ると、プログラムはエラーを報告します。
テストTestFindByIdメソッドを実行する
UserMapperインターフェイスの抽象メソッドに追加されたアノテーションを削除してから、エラーを報告せずにテストメソッドを実行します。
テストを実行しますTestFindByIdメソッド
クラス後の概要:
補足コンテンツで、MyBatis構成ファイルを使用してSQLセッションオブジェクトを取得せずに、データベース環境の作成時に問題が発生しました。ユーザーマッパー構成インターフェイスは使用されません。開始方法がわかりません。先生からの情報ではわかりませんでした。記事全体が英語です。有道辞書のおかげで少しは理解できたと思います。SQL会話ファクトリーベースの構築の知識ポイントについては完全に混乱しています。 MyBatis構成オブジェクトについて話しましたが、ほとんど理解できません。クラスでの学習状況から判断すると、次の学習プロセスではさらに多くの作業を行う必要があります。