查询:
1.编写接口方法注解
//根据id查询用户
@Select("select * from user where id = #{id}"
User selectUserById(@Param("id") int id);
2.测试
@Test
public void testSelectUserById() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.selectUserById(1);
System.out.println(user);
session.close();
}
新增:
1.编写接口方法注解
//添加一个用户
@Insert("insert into user (id,name,pwd) values (#{id},#{name},#{pwd})")
int addUser(User user);
2.测试
@Test
public void testAddUser() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = new User(6, "冷丁", "123456");
mapper.addUser(user);
session.close();
}
修改:
1.编写接口方法注解
//修改一个用户
@Update("update user set name=#{name},pwd=#{pwd} where id = #{id}")
int updateUser(User user);
2.测试
@Test
public void testUpdateUser() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User user = new User(6, "冷丁", "1276321");
mapper.updateUser(user);
session.close();
}
删除
1.编写接口方法注解
//根据id删除用
@Delete("delete from user where id = #{id}")
int deleteUser(@Param("id")int id);
2.测试
@Test
public void testDeleteUser() {
SqlSession session = MybatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
mapper.deleteUser(6);
session.close();
}
注意点:【增删改一定记得对事务的处理】,但是这里设置了自动提交事物,尽量不要自动提交
关于@Param()注解
- 基本类型的参数或者String类型的参数,需要加上
- 引用类型不需要加
- 如果只有一个基本类型的话,可以忽略,但是建议加上
- 我们在SQL中引用的就是我们这里的@Param()中设定的属性名
- 如果参数是 JavaBean , 则不能使用@Param。
- 不使用@Param注解时,参数只能有一个,并且是Javabean。
#{} ${} 区别
${}可能存在注入攻击,尽量用#{}
当有多个接口的时候 在mybatis-config.xml文件中配置,可以这样写通配
<mappers>
<mapper resource="com/lding/dao/*Mapper.xml">
</mappers>
也可以写多个接口 绑定死的配置 一个mapper对应一个接口
<mappers>
<mapper class="com.lding.dao.UserMapper">
<mapper class="com.lding.dao.BillMapper">
</mappers>