java 中MyBatis注解映射的实例详解

1.普通映射
@Select("select * from mybatis_Student where id=#{id}")
public Student getStudent(int id);
@Insert("insert into mybatis_Student (name, age, remark, pic,grade_id,address_id) values (#{name},#{age},#{remark}, #{pic},#{grade.id},#{address.id})")
public int insert(Student student);
@Update("update mybatis_Student set name=#{name},age=#{age} where id=#{id}")
public int update(Student student);
@Delete("delete from mybatis_Student where id=#{id}")
public int delete(int id);
2.结果集映射
@Select("select * from mybatis_Student")
@Results({
@Result(id=true,property="id",column="id"),
@Result(property="name",column="name"),
@Result(property="age",column="age")
})
public List<Student> getAllStudents();
3.关系映射
1),一对一
@Select("select * from mybatis_Student")
@Results({
@Result(id=true,property="id",column="id"),
@Result(property="name",column="name"),
@Result(property="age",column="age"),
@Result(property="address",column="address_id",one=@One(select="com.skymr.mybatis.mappers.AddressMapper.getAddress"))
})
public List<Student> getAllStudents();
2)一对多
package com.skymr.mybatis.mappers;
import org.apache.ibatis.annotations.Many;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import com.skymr.mybatis.model.Grade;
public interface Grade2Mapper {
@Select("select * from mybatis_grade where id=#{id}")
@Results({
@Result(id=true,column="id",property="id"),
@Result(column="grade_name",property="gradeName"),
@Result(property="students",column="id",many=@Many(select="com.skymr.mybatis.mappers.Student2Mapper.getStudentsByGradeId"))
})
public Grade getGrade(int id);
}
Java代码
package com.skymr.mybatis.mappers;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.One;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.skymr.mybatis.model.Student;
public interface Student2Mapper {
@Select("select * from mybatis_Student where id=#{id}")
public Student getStudent(int id);
@Insert("insert into mybatis_Student (name, age, remark, pic,grade_id,address_id) values (#{name},#{age},#{remark}, #{pic},#{grade.id},#{address.id})")
public int insert(Student student);
@Update("update mybatis_Student set name=#{name},age=#{age} where id=#{id}")
public int update(Student student);
@Delete("delete from mybatis_Student where id=#{id}")
public int delete(int id);
@Select("select * from mybatis_Student")
@Results({
@Result(id=true,property="id",column="id"),
@Result(property="name",column="name"),
@Result(property="age",column="age"),
@Result(property="address",column="address_id",one=@One(select="com.skymr.mybatis.mappers.AddressMapper.getAddress"))
})
public List<Student> getAllStudents();
@Select("select * from mybatis_Student where grade_id=#{gradeId}")
@Results({
@Result(id=true,property="id",column="id"),
@Result(property="name",column="name"),
@Result(property="age",column="age"),
@Result(property="address",column="address_id",one=@One(select="com.skymr.mybatis.mappers.AddressMapper.getAddress"))
})
public List<Student> getStudentsByGradeId(int gradeId);
}
4.动态sql注解映射
provider类
package com.skymr.mybatis.mappers.provider;
import java.util.Map;
import org.apache.ibatis.jdbc.SQL;
import com.skymr.mybatis.model.Student;
public class StudentDynaSqlProvider {
public String insertStudent(final Student student){
return new SQL(){
{
INSERT_INTO("mybatis_Student");
if(student.getName() != null){
VALUES("name","#{name}");
}
if(student.getAge() > 0){
VALUES("age","#{age}");
}
}
}.toString();
}
public String updateStudent(final Student student){
return new SQL(){
{
UPDATE("mybatis_Student");
if(student.getName() != null){
SET("name=#{name}");
}
if(student.getAge() > 0){
SET("age=#{age}");
}
WHERE("id=#{id}");
}
}.toString();
}
public String getStudent(final Map<String,Object> map){
return new SQL(){
{
SELECT("*");
FROM("mybatis_Student");
if(map.containsKey("name")){
WHERE("name like #{name}");
}
if(map.containsKey("age")){
WHERE("age=#{age}");
}
}
}.toString();
}
public String deleteStudent(){
return new SQL(){
{
DELETE_FROM("mybatis_Student");
WHERE("id=#{id}");
}
}.toString();
}
}
Mapper接口
@SelectProvider(type=StudentDynaSqlProvider.class,method="getStudent") public List<Student> getStudents(Map<String,Object> map);
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# 中MyBatis注解映射
# MyBatis注解映射的详解
# MyBatis
# 映射
# Mybatis如何使用@Mapper和@MapperScan注解实现映射关系
# mybatis中注解映射SQL示例代码
# MyBatis注解式开发映射语句详解
# 如有
# 希望能
# 谢谢大家
# 疑问请
# delete
相关文章:
Android滚轮选择时间控件使用详解
宿州网站制作公司兴策,安徽省低保查询网站?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
如何获取开源自助建站系统免费下载链接?
如何解决VPS建站LNMP环境配置常见问题?
图册素材网站设计制作软件,图册的导出方式有几种?
如何在阿里云高效完成企业建站全流程?
如何快速上传建站程序避免常见错误?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
如何破解联通资金短缺导致的基站建设难题?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
家具网站制作软件,家具厂怎么跑业务?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
动图在线制作网站有哪些,滑动动图图集怎么做?
山东网站制作公司有哪些,山东大源集团官网?
制作旅游网站html,怎样注册旅游网站?
建站主机空间推荐 高性价比配置与快速部署方案解析
网站设计制作公司地址,网站建设比较好的公司都有哪些?
网站制作的步骤包括,正确网址格式怎么写?
建站之星3.0如何解决常见操作问题?
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
大型企业网站制作流程,做网站需要注册公司吗?
如何通过万网虚拟主机快速搭建网站?
建站之星上传入口如何快速找到?
移民网站制作流程,怎么看加拿大移民官网?
建站之星好吗?新手能否轻松上手建站?
北京的网站制作公司有哪些,哪个视频网站最好?
开源网站制作软件,开源网站什么意思?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
建站之星2.7模板快速切换与批量管理功能操作指南
,怎么在广州志愿者网站注册?
如何挑选优质建站一级代理提升网站排名?
建站之星展会模版如何一键下载生成?
如何在自有机房高效搭建专业网站?
建站之星×万网:智能建站系统+自助建站平台一键生成
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
深圳网站制作的公司有哪些,dido官方网站?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
建站之星在线版空间:自助建站+智能模板一键生成方案
建站之星后台密码遗忘?如何快速找回?
用v-html解决Vue.js渲染中html标签不被解析的问题
建站之星如何快速解决建站难题?
独立制作一个网站多少钱,建立网站需要花多少钱?
*请认真填写需求信息,我们会在24小时内与您取得联系。