[MyBatisNotes]アノテーション付きの開発

メソッドの前にアノテーションを使用する方法

インターフェイスをコア構成ファイルにバインドします。

本質:反射を使用する

最下層:動的プロキシ

注釈を使用して、以下を追加、削除、変更、およびチェックします。

トランザクションの自動コミット: 

ツール:

public interface UserMapper {

    @Select("select * from user")
    //获取全部用户
    List<User>getUser();


//    ---------------------------------------------
    //方法存在多个参数,所有的参数前面必须加上@Param("")
    @Select("select * from user where id=#{id}")
    //获取id获取用户
    User getUserById(@Param("id") int id);
//  ------------------------------------------------

    @Insert("insert into user(id,name,pwd) values(#{id},#{name},#{pwd})")
    int addUser(User user);

// ---------------------------------------------------

    @Update("update user set name=#{name},pwd=#{pwd} where id=#{id}")
    int updateUser(Map<String,Object>map);
//------------------------------------------------------

    @Delete("delete from user where id=#{id}")
    int deleteUser(@Param("id")int id);
}
public class User {
    private int id;
    private String name;
    private String pwd;
    getter setter tostring;
}

 テストクラス

    @Test
    public void getUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> user = mapper.getUser();
        for (User user1 : user) {
            System.out.println(user1);
        }
        sqlSession.close();
    }
    @Test
    public void getUserById(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User userById = mapper.getUserById(2);
        System.out.println(userById);
        sqlSession.close();
    }
    @Test
    public void addUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.addUser(new User(6,"哈哈哈是的","76543"));
        sqlSession.close();
    }
    @Test
    public void updateUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        HashMap<String, Object> map = new HashMap<>();
        map.put("id",2);
        map.put("name","2two");
        map.put("pwd","lasf");
        mapper.updateUser(map);
        sqlSession.close();
    }
    @Test
    public void delete(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.deleteUser(2);
        sqlSession.close();
    }

Mybatisの詳細な実行プロセス:

  1. リソースはグローバル構成ファイルを取得します

  2. SqlsessionFactoryBuilderをインスタンス化します

  3. 構成ファイルストリームXMLCondigBuilderを解析します

  4. 構成すべての構成情報

  5. SqlSessionFactoryのインスタンス化

  6. トランザクショントランザクション管理

  7. エグゼキュータエグゼキュータを作成する

  8. SqlSessionを作成します

  9. CRUDを実装する

  10. 実行が成功したかどうかを確認します

  11. トランザクションのコミット

  12. 閉鎖

おすすめ

転載: blog.csdn.net/m0_52043808/article/details/124366593