mybatis最初配置信息是基于 XML ,映射语句(SQL)也是定义在 XML 中的。而到MyBatis 3提供了新的基于注解的配置。不幸的是,Java 注解的的表达力和灵活性十分有限。最强大的 MyBatis 映射并不能用注解来构建。
sql 类型主要分成 :
@select ()
@update ()
@Insert ()
@delete ()
1、 使用注解开发mybatis不需要映射mapper.xml,只需要映射对应的mapper接口就行了
<mappers>
<mapper class="com.rk.dao.Usermapper"/>
</mappers>
2、在mapper接口中使用注解
public interface Usermapper {
//查询所有用户
@Select("select * from user")
List<User> SelectUser();
//根据id查询
@Select("select * from user where id=#{id}")
User selectUserByid(@Param("id")int id);
//增加一个用户
@Insert("insert into user(id,name,age,address) values (#{id},#{name},#{age},#{address})")
void addUser(User user);
//修改一个用户
@Update("update user set id=#{id},name=#{name},age=#{age},address=#{address} where id=#{id}")
void updateUser(User user);
//根据id删除一个用户
@Delete("delete from user where id=#{id}")
void deleteUser(@Param("id")int id);
}
3、测试类
@Test
public void test() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
Usermapper mapper = sqlSession.getMapper(Usermapper.class);
System.out.println("添加一个用户");
User newuser = new User(27, "王大锤", 21, "宝鸡");
mapper.addUser(newuser);
System.out.println("修改一个用户");
User updateuser = new User(23, "罗", 23, "汉中");
mapper.updateUser(updateuser);
System.out.println("删除一个用户");
mapper.deleteUser(24);
System.out.println("查询所有用户");
List<User> users = mapper.SelectUser();
for (User user : users) {
System.out.println(user);
}
System.out.println("根据id查询用户");
User user1 = mapper.selectUserByid(23);
System.out.println(user1);
}
关于@Param
@Param注解用于给方法参数起一个名字。以下是总结的使用原则:
在方法只接受一个参数的情况下,可以不使用@Param。
在方法接受多个参数的情况下,建议一定要使用@Param注解给参数命名。
如果参数是 JavaBean , 则不能使用@Param。
不使用@Param注解时,参数只能有一个,并且是Javabean。