0
点赞
收藏
分享

微信扫一扫

Mybatis使用注解增删改查

全栈顾问 2022-01-20 阅读 127
Mybatisjava

查询:

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>

如果对您有帮助 免费的赞点一个~~~感谢🙏

在这里插入图片描述

举报

相关推荐

0 条评论