Mybatisの基本(9)アノテーションの開発
public interface UserMapper{
// 在不使用注解之前的方法是:写一个mapper配置文件,写对应的sql语句。在使用注解后直接在注解里写sql语句即可
@Select("select * from user")
<List> getAllUser();
}
- アノテーションを使用しない前の方法は、マッパー構成ファイルを作成し、対応するSQLステートメントを作成することです。アノテーションを使用した後、SQLステートメントをアノテーションに直接書き込むことができます
- マッパーマッピングファイルがconfにバインドされてから、インターフェイスがマッパーマッピングファイルにバインドされていることがわかります。これで、インターフェイスをconfファイルに直接バインドできます。
Mybatisは、構成ファイル方式を使用するのが最適です。注釈フォームは、比較的単純なSQLステートメントにのみ適用でき、少し複雑なステートメントは機能しません(resultMapなど)。
アノテーションはCRUDを実装します
ツールクラスが作成されると、トランザクションを自動的にコミットできます。
// 使用openSession中参数为true,生成的session就会自动提交事务
SqlSession session = sqlSessionFactory.openSession(true);
// 这样使用这个session就可以实现自动提交,增删改不用commit了!
お問い合わせ
public interface UserMapper{
@select("select * from user")
List<User> getUsers();
@select("select * from user where uid=#{sid} and uname=#{name}")
List<User> getUsers2(@Param("sid") int id, @Param("name") String name);
}
- @Paramアノテーションはパラメーターのアノテーションであり、アノテーション内のパラメーターはパラメーターの名前です。言い換えると、SQLで使用されるパラメーターは、実際のパラメーター名ではなく、アノテーション内のパラメーターです。
- @Paramなしで複数のパラメーターを渡すことはできません。複数のパラメーターは、@ Paramアノテーションを使用してのみ渡すことができます。
増加する
public interface UserMapper{
@Insert("insert into user values (#{id}, #{name})")
boolean insertUser(@Param("id") int id, @Param("name") String name);
}
変更する
public interface UserMapper{
@Update("update user set set name=#{name} where id=#{id}")
boolean updateUser(@Param("id") int id, @Param("name") String name);
}
削除
public interface UserMapper{
@Delete("delete from user where id=#{id} and name=#{name}")
boolean deleteUser(@Param("id") int id. @Param("name") String name);
}