注釈に基づくMybatis CRUD操作

ディレクトリ

アノテーションを使用してCRUD操作を実装する

@Param()アノテーション

アノテーションを使用してCRUD操作を作成するデメリット

比較#{} $ {}違い


 

アノテーションを使用してCRUD操作を実装する

 

このメソッドは本質的にリフレクションメカニズムによってサポートされており、最下層は動的プロキシを実装しています

簡単に言えば、たった2つのステップです。最初のステップは、CRUDアノテーションとSQLをDaoインターフェースに追加することです。2番目のステップは、インターフェース登録をコア構成ファイルにバインドすることです。

public interface UserMapper {

    @Select("select * from user")
    List<User> getUsers();

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


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

    
    @Update("update user set name=#{name},pwd=#{password} where id = #{id}")
    int updateUser(User user);

    
    @Delete("delete from user where id = #{uid}")
    int deleteUser(@Param("uid") int id);
}
    <mappers>
        <mapper class="com.lt.dao.UserDao"/>
    </mappers>

呼び出すときは、通常どおり呼び出しメソッドを記述します。主な機能は、mapper.xmlファイルを省略します。

    @Test
    public void test(){
        //获得SqlSession对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        List<User> userList = userDao.getUserList();

        for (User user : userList) {
            System.out.println(user);
        }
        logger.info("查询成功啦~");
        //关闭SqlSession
        sqlSession.close();
    }

 

 

@Param()アノテーション

 

@Param()アノテーションは、エンティティの属性とテーブルのフィールドをマップするために使用されます。使用する場合は、次の注意事項があります

  • 基本型パラメーターまたは文字列型、追加する必要があります

  • 他の参照タイプを追加する必要はありません

  • 基本タイプが1つしかない場合は無視できますが、誰でも追加することをお勧めします。

  • SQLで引用するのは、ここで@Param()に設定された属性名です!

 

 

アノテーションを使用してCRUD操作を作成するデメリット

 

CRUDの注釈を使用した単純なSQLステートメントにより、コードがより簡潔になり、プロジェクト構造がより明確になります。ただし、複雑なSQLステートメントの場合、注釈を使用すると混乱する可能性があります。

 

 

比較#{} $ {}違い

 

#{} SQLインジェクションは防止できますが、$ {}は防止できません  

568の元の記事を公開 180の賞賛 180,000ビュー

おすすめ

転載: blog.csdn.net/Delicious_Life/article/details/105673401