# 註解增刪改查 ###### tags: `Mybatis-註解` 我們可以在工具類創建的時候,實現自動提交事物! ```java= public static SqlSession getSqlSession(){ //讓事務自動提交 return sqlSessionFactory.openSession(true); } ``` 1.使用註解在接口實現增刪改查 **【注意:必須要將接口註冊綁定到核心配置文件中】** ```xml= <!--綁定接口--> <mappers> <mapper class="com.kuang.dao.UserMapper"/> </mappers> ``` ```java= public interface UserMapper { @Select("select * from user") List<User> getUsers(); //方法存在多個參數,所有的參數前面必須加上@Param() //@Param註解的作用是給引數命名,引數命名後就能根據名字得到引數值,正確的將引數傳入sql語句中 //例如下方的@Param("id"),是指他會將後方int id獲得的參數,上傳到上方的sql語句使用 @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); } ``` 2.測試類 ```java= public class UserMapperTest { @Test public void test(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); //底層主要應用反射 UserMapper mapper = sqlSession.getMapper(UserMapper.class); mapper.deleteUser(5); //先前要變更資料庫,需要使用提交 //但MybatisUtils中,將openSession設置為true,因此會自動提交,不必再寫commit //sqlSession.commit(); sqlSession.close(); } // mapper.updateUser(new User(5,"to","5555")); // mapper.addUser(new User(10,"hello","123456")); // List<User> users = mapper.getUsers(); // for(User user:users){ // System.out.println(user); // } // User userByID = mapper.getUserByID(1); // System.out.println(userByID); } ``` ### 關於@Param()註解 * 基本類型的參數或者String類型需要加上 * 引用類型不需要加 * 如果只有一個基本類型的話,可以忽略,但是建議大家都加上 * 我們在SQL中引用的,就是我們這裡的@Param()中設定的屬性