Mybatis注解增删改查的实例代码
作者:KittyGuy 时间:2022-03-31 01:26:15
要点
有另一种方法来完成语句映射。 它们映射的语句可以不用 XML 来配置,而可以使用 Java 注解来配置。
使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪。
如果你需要做一些很复杂的操作,最好用 XML 来映射语句。
需要在config.xml中注册Java接口
<mappers>
<mapper class="com.mybatis.DAO.PeopleMapper"/>
</mappers>
要用class=
查
public interface PeopleMapper {
@Select("select * from people")
List<People> getPeopleList();
}
增
可以先开启事务自动提交
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession(true);
}
}
Mapper.java
public interface PeopleMapper {
@Select("select * from people")
List<People> getPeopleList();
@Insert("insert into people(id, name, age, address) VALUES (#{id},#{name},#{age},#{address})")
int addPeople(People people);
}
test
public class PeopleDAOtest {
@Test
public void print() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
PeopleMapper peopleMapper = sqlSession.getMapper(PeopleMapper.class);
List<People> people = peopleMapper.getPeopleList();
for (People p :people){
System.out.println(p);
}
sqlSession.close();
}
@Test
public void add(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
PeopleMapper peopleMapper = sqlSession.getMapper(PeopleMapper.class);
peopleMapper.addPeople(new People(6,"圣迭戈",456,"啥地方"));
print();
}
}
因为已经自动提交了,所以不需要sqlSession.commit();
删
注解@Param
只能用于基本数据类型
传入的参数只能和sql语句中参数一样
多个参数
样例
public interface PeopleMapper {
@Delete("delete people from people where id=#{uid}")
int delPeople(@Param("uid") int i);
}
test
public class PeopleDAOtest {
@Test
public void del(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
PeopleMapper peopleMapper = sqlSession.getMapper(PeopleMapper.class);
peopleMapper.delPeople(6);
print();
}
}
改
Mapper.java
public interface PeopleMapper {
@Update("update mybatis.people set name=#{name} ,age=#{age} ,address=#{address} where id=#{id}")
int updateP(People people);
}
test
public class PeopleDAOtest {
@Test
public void update(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
PeopleMapper peopleMapper = sqlSession.getMapper(PeopleMapper.class);
peopleMapper.updateP(new People(5,"圣迭戈",456,"啥地方"));
print();
}
}
总结
来源:https://juejin.cn/post/6933495094414835726
标签:mybatis,注解,增删改查
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java Swing实现让窗体居中显示的方法示例
2023-11-06 02:59:07
![](https://img.aspxhome.com/file/2023/1/63331_0s.png)
Java中stream处理中map与flatMap的比较和使用案例
2023-11-21 02:27:53
Mybatis Plus select 实现只查询部分字段
2022-07-23 18:51:32
![](https://img.aspxhome.com/file/2023/9/61279_0s.jpg)
Java中HashMap里面key为null存放到哪
2023-11-10 02:46:47
浅谈mybatis中SQL语句给boolean类型赋值问题
2023-01-19 15:15:42
Java中过滤器 (Filter) 和 拦截器 (Interceptor)的使用
2023-07-07 00:20:28
![](https://img.aspxhome.com/file/2023/3/63453_0s.png)
详解Java设计模式之备忘录模式的使用
2023-09-10 09:38:32
![](https://img.aspxhome.com/file/2023/7/58437_0s.jpg)
logback关闭某个包的日志操作
2023-04-12 20:16:57
JDK源码之PriorityQueue解析
2022-05-15 17:17:15
![](https://img.aspxhome.com/file/2023/1/63741_0s.png)
C++string中的insert()插入函数详解
2023-11-02 14:05:51
![](https://img.aspxhome.com/file/2023/6/105166_0s.png)
微信小程序微信登录的实现方法详解(JAVA后台)
2023-08-29 12:37:25
![](https://img.aspxhome.com/file/2023/0/58370_0s.jpg)
轻松理解Java面试和开发中的IoC(控制反转)
2023-08-10 03:00:35
![](https://img.aspxhome.com/file/2023/4/58184_0s.jpg)
Spring Boot + Thymeleaf + Activiti 快速开发平台项目 附源码
2023-11-23 08:23:43
![](https://img.aspxhome.com/file/2023/5/59865_0s.png)
Java 反射机制实例详解
2023-11-28 03:49:47
Java使用递归法解决汉诺塔问题的代码示例
2023-09-05 20:31:28
![](https://img.aspxhome.com/file/2023/1/64051_0s.jpg)
Java中BigDecimal的舍入模式解析(RoundingMode)
2021-10-16 15:28:16
RocketMQ生产者调用start发送消息原理示例
2022-07-05 20:13:04
![](https://img.aspxhome.com/file/2023/2/63692_0s.png)
Spring注解之@Lazy注解使用解析
2023-08-28 23:12:23
logback输出日志屏蔽quartz的debug等级日志方式
2023-08-04 23:40:04
Java 高并发三:Java内存模型和线程安全详解
2021-10-24 07:04:13
![](https://img.aspxhome.com/file/2023/6/59966_0s.png)