Mybatis注解增删改查的实例代码
要点
有另一种方法来完成语句映射。它们映射的语句可以不用XML来配置,而可以使用Java注解来配置。
使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java注解不仅力不从心,还会让你本就复杂的SQL语句更加混乱不堪。
如果你需要做一些很复杂的操作,最好用XML来映射语句。
需要在config.xml中注册Java接口
要用class=
查
publicinterfacePeopleMapper{
@Select("select*frompeople")
ListgetPeopleList();
}
 
增
可以先开启事务自动提交
publicstaticSqlSessiongetSqlSession(){
returnsqlSessionFactory.openSession(true);
}
}
Mapper.java
publicinterfacePeopleMapper{
@Select("select*frompeople")
ListgetPeopleList();
@Insert("insertintopeople(id,name,age,address)VALUES(#{id},#{name},#{age},#{address})")
intaddPeople(Peoplepeople);
}
 
test
publicclassPeopleDAOtest{
@Test
publicvoidprint(){
SqlSessionsqlSession=MybatisUtils.getSqlSession();
PeopleMapperpeopleMapper=sqlSession.getMapper(PeopleMapper.class);
Listpeople=peopleMapper.getPeopleList();
for(Peoplep:people){
System.out.println(p);
}
sqlSession.close();
}
@Test
publicvoidadd(){
SqlSessionsqlSession=MybatisUtils.getSqlSession();
PeopleMapperpeopleMapper=sqlSession.getMapper(PeopleMapper.class);
peopleMapper.addPeople(newPeople(6,"圣迭戈",456,"啥地方"));
print();
}
}
 
因为已经自动提交了,所以不需要sqlSession.commit();
删
注解@Param
只能用于基本数据类型
传入的参数只能和sql语句中参数一样
多个参数
样例
publicinterfacePeopleMapper{
@Delete("deletepeoplefrompeoplewhereid=#{uid}")
intdelPeople(@Param("uid")inti);
}
test
publicclassPeopleDAOtest{
@Test
publicvoiddel(){
SqlSessionsqlSession=MybatisUtils.getSqlSession();
PeopleMapperpeopleMapper=sqlSession.getMapper(PeopleMapper.class);
peopleMapper.delPeople(6);
print();
}
}
改
Mapper.java
publicinterfacePeopleMapper{
@Update("updatemybatis.peoplesetname=#{name},age=#{age},address=#{address}whereid=#{id}")
intupdateP(Peoplepeople);
}
test
publicclassPeopleDAOtest{
@Test
publicvoidupdate(){
SqlSessionsqlSession=MybatisUtils.getSqlSession();
PeopleMapperpeopleMapper=sqlSession.getMapper(PeopleMapper.class);
peopleMapper.updateP(newPeople(5,"圣迭戈",456,"啥地方"));
print();
}
}
总结
到此这篇关于Mybatis注解增删改查的文章就介绍到这了,更多相关Mybatis注解增删改查内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
