建立一个同城网站要怎么做,wordpress 多语言插件哪个好,比较好用的微信社群管理软件,哈尔滨做网站seomybatis注解 基本注解新增删除修改查询 结果映射注解Results结果映射一对一映射一对多映射 基本注解
新增
功能#xff1a;Insert完成新增操作#xff0c;类似配置文件的 元素#xff1b;
说明#xff1a;新增时所用的参数取值是接口方法的入参#xff0c;可以是对象Results结果映射一对一映射一对多映射 基本注解
新增
功能Insert完成新增操作类似配置文件的 元素
说明新增时所用的参数取值是接口方法的入参可以是对象也可以是 Map 集合。
功能Options完成数据库自增主键的回填
功能SelectKey完成自定义主键的自增 //新增Insert(insert into student (sname,birthday,ssex,classid) values (sname,birthday,ssex,classId))SelectKey ( statement 自增规则, keyProperty 主键属性, resultTyp//主键回填注解Options(useGeneratedKeys true,keyProperty sid)public int insertStudent(Student s);删除
功能完成删除操作类似配置文件的 元素
说明删除时所用的参数取值是接口方法的入参可以是对象也可以是 Map 集合。 //删除Delete(delete * form student where sid #{v})public int deleteStudentBysid(int sid);修改
功能完成更新操作类似配置文件的 元素
说明更新时所用的参数取值是接口方法的入参可以是对象也可以是 Map 集合。
//修改Update(update student set sname#{sname},birthday#{birthday},ssex#{ssex},classid#{classId} where sid #{sid})public int updateStudentBysid(Student s);查询
功能完成查询操作类似配置文件的 元素
说明查询时所用的参数取值是接口方法的入参可以是对象也可以是 Map 集合。
//全查Select(select * from student)public ListStudent findStudnet();//条件查询Select(select * from student where sid #{v})public Student findStudentBySid(int sid);//传多参Select(select * from student where ssex #{sex} limit #{cp},#{sp})public ListStudent findStudnetSomePar(Param(sex) String ssex,Param(cp) int cp,Param(sp) int sp);传多参 在xml四种的基础上又加了一种 Param(“名字”):写在接口参数的前面在sql中传参的地方写名字 结果映射注解
Results结果映射
功能完成数据库字段和 JavaBean 属性的映射关系,主要解决数据库中的字段和实体类中的属性名不一致
说明每个 Results 可以包含多个 Result其中通过id 属性来判断是否为主键。
语法
Results(id ,value{Result(column ,property ),Result(column ,property )
})
//不重复使用的话
Results({Result(column ,property ),Result(column ,property )
})eg:Results(id sm_map,value {Result(column smid,property smid),Result(column sm_name,property smname),Result(column smsex,property smsex)})Select(select * from schoolmaster)public ListSMaster finaAll();//二次复用Select(select * from schoolmaster)ResultMap(sm_map)public ListSMaster finaAllSMaster();说明 Results标签如果没有id的话就只对离他最近的下面的的查询语句有效如果需要在后面复用就需要写id 后面的查询语句使用ResultMap(“id”); 跟当前接口中有定义使用id属性每个sql语句前要么有一个Results映射关系要么要么ResultMap,这两个不能同时给一 个sql语句 一对一映射
One( Select 一对一查询方法, fetchType FetchType.EAGER )//步骤
1.在实体类中写外部属性
2.写映射关系column classid 将该字段的值作为查询条件传入关联的子表作为条件property bj 外部属性名one One(select com.li.dao.BanjiMapper.findBanjiByClassid 写子查询接口的方法名fetchType FetchType.LAZY 懒加载
eg:
//学生mapper中 全查关联班级Results(id cla_sty_map,value {Result(column classid,property classId),Result(column classid,property bj,one One(select com.li.dao.BanjiMapper.findBanjiByClassid ,fetchType FetchType.LAZY))})Select(select * from student)public ListStudent findAllStudnet();//班级mapper中Select(select * from class where classid #{v})public ListBanji findBanjiByClassid(int classId);注意不论是一对一还是一对多实际上都是单表查询 一对多映射
Many( Select 一对多查询方法, fetchType FetchType.EAGER )//步骤
1.在实体类中写外部属性
2.写映射关系column classid 将该字段的值作为查询条件传入关联的子表作为条件property bj 外部属性名many Many(selectcom.li.dao.StudentMapper.findStudnetByClassid)) 写子查询接口的方法名fetchType FetchType.LAZY 懒加载
eg:
//班级mapper中 全查关联班级Results(id class_student_map,value {Result(column classid,property classId),Result(column classid,property stu,many Many(selectcom.li.dao.StudentMapper.findStudnetByClassid)),})Select(select * from class)public ListBanji findBanjiAndStudent();//学生mapper中Select(select * from student where classid #{v})public ListStudent findStudnetByClassid(int classid);