mybatisを使用して、追加、削除、変更、確認します

0、注意してください

  • すべての追加、削除、および変更をトランザクションに送信する必要があります。送信しないと、記述されたSQLステートメントが有効になりません。
  • 追加、削除、および変更には、xmlに対応するタグがあり、それらを選択タグとして使用しないでください(ただし、誤って間違ったタグを使用しているため、実行できるようです。対応するタグを使用することをお勧めします)
  • #{}を使用してSQLステートメントの値を取得します
  • 注意してください

1、挿入(挿入)

最初に、以前に定義されたuserDaoインターフェースでメソッドを定義し、パラメーターとしてユーザーオブジェクトを挿入します

    //插入一个用户
    void insertUser(User user);

次に、バインドされたuserMapper.xmlファイルにこのメソッドを「実装」し、SQLステートメントを記述し、ここでのパラメータータイプがUserであることに注意してください。

    <insert id="insertUser" parameterType="com.wt.pojo.User">
        <!--若传入的参数是个对象,获取对象中的属性值直接通过#{属性名}就能得到-->
        insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd});
    </insert>

最後にテストする

	@Test
    public void insertTest00(){
    
    
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserDao mapper = sqlSession.getMapper(UserDao.class);

        mapper.insertUser(new User(4,"Jeny","222222"));

        //注意,在进行增删改操作时必须要用到事务,如果这里不提交,那么代码运行没有问题但表并没有被增删改,需要提交事务后才能实现增删改
        sqlSession.commit();
        sqlSession.close();

    }

2.更新

インターフェイスでメソッドを定義する

	//修改一个用户
    void updateUser(User user);

バインドされたマッパー構成ファイルを介してこのメ​​ソッドを「実現」します

    <update id="updateUser" parameterType="com.wt.pojo.User">
        <!--一样,对象中的属性值用#{}取-->
        update mybatis.user set pwd=#{pwd} where id=#{id};
    </update>

再テスト

    @Test
    public void updateTest00(){
    
    
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserDao mapper = sqlSession.getMapper(UserDao.class);

        mapper.updateUser(new User(3,"Joe","123123"));

        sqlSession.commit();
        sqlSession.close();
    }

3.削除(削除)

インターフェイスでメソッドを定義する

    //删除一个用户
    void deleteUser(int id);

バインドされたマッパー構成ファイルを介してこのメ​​ソッドを「実現」します

    <delete id="deleteUser" parameterType="int">
        delete from mybatis.user where id = #{id};
    </delete>

再テスト

    @Test
    public void deleteTest00(){
    
    
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserDao mapper = sqlSession.getMapper(UserDao.class);

        mapper.deleteUser(3);

        sqlSession.commit();
        sqlSession.close();
    }

4.クエリ(選択)

IDに基づいてユーザーにクエリを実行
し、インターフェースでメソッドを定義します

    //根据id查询用户
    User getUserById(int id);

バインドされたマッパー構成ファイルを介してこのメ​​ソッドを「実現」します

    <!--传入参数,要设置parameterType-->
    <select id="getUserById" parameterType="int" resultType="com.wt.pojo.User">
        <!--获取传入的参数用取值符号#{形参名}-->
        select * from mybatis.user where id=#{id};
    </select>

再テスト

    @Test
    public void selectTest01(){
    
    
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserDao mapper = sqlSession.getMapper(UserDao.class);

        //传入参数
        User userById = mapper.getUserById(2);

        System.out.println(userById.getId());
        System.out.println(userById.getName());

        sqlSession.close();

    }

ファジークエリ:

    //模糊查询
    List<User> getUsers(String value);

次の文字列の接続に注意してください

    <select id="getUsers" parameterType="String" resultType="com.wt.pojo.User">
    	<!--注意这里的字符串拼接-->
        select * from mybatis.user where name like "%"#{value}"%";
    </select>
    @Test
    public void selectTest02(){
    
    
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserDao mapper = sqlSession.getMapper(UserDao.class);

        List<User> users = mapper.getUsers("T");

        for(User user:users){
    
    
            System.out.println(user.getName());
        }

        sqlSession.close();
    }

5.あとがき

着信パラメータに関しては、オブジェクト全体を渡さずにパラメータを自由に渡すことができる、使用可能なマップ(汎用マップ)があります。これは後で書かれます。追加、削除、変更、チェックはアノテーションを使用して実装することもできます。コードをより簡潔にすることはできますが、複雑なSQLステートメントには適していません。個人的には、構成ファイルを使用することを好みます。

おすすめ

転載: blog.csdn.net/kitahiragawa/article/details/113035741
おすすめ