MyBatis--開発アノテーションを使用して

人生は、それは私がうまく他のすべての操作を行い、あなたの希望に加えて、生きるために吸う、非常に遅かったです。

使用注釈開発

図1に示すように、指向プログラミング・インターフェース

根本的な原因指向プログラミング・インターフェース:デカップリング、スケーラビリティ、増加の再利用、層状の開発、上側の具体的な実装が管理していない、我々は共通の基準を遵守しなければならない、より簡単に開発を行うこと、規範良いです

アノテーションを使用して開発された2、

  • インターフェイス上で実装ノート

    @Select(value = "select * from user")
    List<User> getUsers();
  • コア構成ファイルへのインターフェースをバインド

    <!--绑定接口-->
    <mappers>
        <mapper class="rui.dao.UserMapper"/>
    </mappers>
  • テスト

    public class UserMapperTest {
        @Test
        public void test(){
            SqlSession sqlSession = MyBatisUtils.getSqlSession();
            //底层主要应用反射
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            List<User> users = mapper.getUsers();
            for (User user : users) {
                System.out.println(user);
            }
            sqlSession.close();
        }
    }

    エッセンス:達成するために、反射機構

    下:動的プロキシ

3、CRUD

私たちは、自動的に作成ツールの時にトランザクションをコミットすることができます

public static SqlSession getSqlSession(){
    return sqlSessionFactory.openSession(true);
}

書き込みインタフェースは、コメントを育てます

public interface UserMapper {
    @Select(value = "select * from user")
    List<User> getUsers();

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

    @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);
}

テストカテゴリ

[注:私たちは、インターフェイスが、当社のコアプロファイルに登録したい必要があります]

@Paramについて()のコメント

  • 私たちが追加する必要がString型または種類の基本的な引数、
  • 参照型は、追加する必要はありません
  • 基本的なタイプの一つだけを無視することができますが、それはすべて一緒に推奨されている場合
  • SQLで参照我々は@Paramここで属性名のセット()であります

$#{} {}差

  • {}は、プリコンパイラのプロセスであり、置換文字列は} {$です

  • {#}が処理時間をMyBatisの、セット割り当て方法のPreparedStatement ;?を呼び出すための番号で} {SQL#であろう処理MyBatisの${}時間を、それがすることにある${}変数の値を置き換えます
  • 使用#{}は効果的にシステムのセキュリティを向上させる、SQLインジェクションを防止することができます

おすすめ

転載: www.cnblogs.com/huangdajie/p/12443277.html