mybatis一对多关系表
来源:互联网 发布:手机淘宝扫码 编辑:程序博客网 时间:2024/05/22 12:15
一、创建JavaProject
二、导入相关jar包
三、编写配置文件mybatis-comfig.xml
- 在src目录下新建一个mybatis-comfig.xml文件
- 编写数据库配置文件db.properties
driver=com.mysql.jdbc.Driverurl=jdbc\:mysql\://localhost\:3306/test?characterEncoding\=utf8username=rootpassword=123456
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 读取配置文件db.properties中的数据库连接参数 --><properties resource="db.properties"/><!-- 配置实体类的别名 --><typeAliases><!-- <typeAlias type="com.zscs.model.Company" alias="company"/> --><package name="com.zscs.model"/></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED" ><property name="driver" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /></dataSource></environment></environments><mappers><mapper resource="com/zscs/model/ClassesMapper.xml"/><mapper resource="com/zscs/model/TeacherMapper.xml"/></mappers></configuration>
四、编写数据表对应的实体类Student,Classes
package com.zscs.model;public class Student { private Integer sId; private String sName; private Integer classId;<span style="white-space:pre"></span>public Integer getClassId() {<span style="white-space:pre"></span>return classId;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>public void setClassId(Integer classId) {<span style="white-space:pre"></span>this.classId = classId;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>private Classes classes; <span style="white-space:pre"></span>public Classes getClasses() {<span style="white-space:pre"></span>return classes;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>public void setClasses(Classes classes) {<span style="white-space:pre"></span>this.classes = classes;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>public Integer getsId() { return sId; } public void setsId(Integer sId) { this.sId = sId; } public String getsName() { return sName; } public void setsName(String sName) { this.sName = sName == null ? null : sName.trim(); }}
</pre><pre name="code" class="java">package com.zscs.model;import java.util.List;public class Classes { private Integer cId; private String cName; private Teacher teacher; private List<Student> students; public Teacher getTeacher() {return teacher;}public void setTeacher(Teacher teacher) {this.teacher = teacher;}public List<Student> getStudents() {return students;}public void setStudents(List<Student> students) {this.students = students;}public Integer getcId() { return cId; } public void setcId(Integer cId) { this.cId = cId; } public String getcName() { return cName; } public void setcName(String cName) { this.cName = cName == null ? null : cName.trim(); }}
五、编写上述实体类对应的映射文件StudentMapper.xml,ClassesMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.zscs.model.StudentMapper" > <resultMap id="BaseResultMap" type="com.zscs.model.Student" > <id column="s_id" property="sId" jdbcType="INTEGER" /> <result column="s_name" property="sName" jdbcType="VARCHAR" /> <result column="class_id" property="classId" jdbcType="INTEGER" /> </resultMap> <select id="getStudentById" parameterType="Integer" resultType="Student" resultMap="BaseResultMap"> <span style="white-space:pre"></span>select * from student where s_id=#{id} </select></mapper>
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.zscs.model.ClassesMapper" > <resultMap id="BaseResultMap" type="Classes" > <id column="c_id" property="cId" jdbcType="INTEGER" /> <result column="c_name" property="cName" jdbcType="VARCHAR" /> <result column="teacher_id" property="teacherId" jdbcType="INTEGER" /> </resultMap> <!-- 方法一:多对多联表查询 --> <resultMap type="Classes" id="MyClassMap"> <id property="cId" column="c_id"/> <result property="cName" column="c_name"/> <association property="teacher" javaType="Teacher"> <id column="t_id" property="tId" jdbcType="INTEGER" /> <result column="t_name" property="tName" jdbcType="VARCHAR" /> </association> <collection property="students" ofType="Student"> <id column="s_id" property="sId" /> <result column="s_name" property="sName" /> <result column="class_id" property="classId" /> </collection> </resultMap> <select id="getClassById" parameterType="int" resultMap="MyClassMap"> SELECT * FROM class c,student s,teacher t WHERE c.teacher_id=t.t_id and c.c_id=s.class_id and c.c_id=#{id} </select> <!-- 方法二:嵌套查询:通过执行另外一个 SQL 映射语句来返回预期的复杂类型 --> <select id="getStudents" parameterType="int" resultType="Student"> select s_id sId,s_name sName,class_id classId from student where class_id=#{id} </select> <select id="getTeacher" parameterType="int" resultType="Teacher"> select t_id tId,t_name tName from teacher where t_id=#{id} </select> <resultMap type="Classes" id="MyClassMap2"> <id property="cId" column="c_id"/> <result property="cName" column="c_name"/> <!-- association联合 --> <association property="teacher" select="getTeacher" column="teacher_id"></association> <!-- collection采集 --> <collection property="students" select="getStudents" column="c_id"></collection> </resultMap> <select id="getClassById2" parameterType="int" resultMap="MyClassMap2"> SELECT * FROM class where c_id=#{id} </select></mapper>
package com.zscs.mytest;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import com.zscs.model.Classes;import com.zscs.util.MyBatisUtil;public class MyTest {<span style="white-space:pre"></span>@Test<span style="white-space:pre"></span>public void testWord(){<span style="white-space:pre"></span>SqlSession session = MyBatisUtil.getSession();<span style="white-space:pre"></span>String statement="com.zscs.model.ClassesMapper.getClassById2";<span style="white-space:pre"></span>//String statement="com.zscs.model.StudentMapper.getStudentById";<span style="white-space:pre"></span>Classes classes =session.selectOne(statement, 2);<span style="white-space:pre"></span>String students="";<span style="white-space:pre"></span>for(int i=0;i<classes.getStudents().size();i++){<span style="white-space:pre"></span>students+=classes.getStudents().get(i).getsName()+",";<span style="white-space:pre"></span>}<span style="white-space:pre"></span>System.out.println(classes.getcName()+"班上有"+classes.getStudents().size()+"个学生他们分别是"+students+"讲课老师是"+classes.getTeacher().gettName());<span style="white-space:pre"></span>}}
0 0
- mybatis一对多关系表
- MyBatis 一对多关系
- Mybatis 一对多关系映射
- mybatis配置一对多关系
- MyBatis一对多关系映射
- mybatis一对多关联关系
- MyBatis映射关系一对多
- MyBatis--关联关系查询--一对多--多表连接查询
- MyBatis:一对多表关系详解(从案例中解析)
- Mybatis 一对多(OneToOne)关系映射
- mybatis 一对多的映射关系
- mybatis 一对多关系 list 的返回
- Mybatis 一对多(OneToOne)关系映射
- Mybatis 一对多(OneToOne)关系映射
- Mybatis 一对多(OneToOne)关系映射
- MyBatis对象关系映射----- 一对多
- mybatis一对多关系 collection的使用
- mybatis实现一对多关系映射
- 软件测试
- ES6新特性——GeneratorFunction介绍
- 第四周项目4——建设双链表算法库
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
- 深入理解主函数main()的输入参数及返回值问题
- mybatis一对多关系表
- Arduino学习(五) 蜂鸣器实验
- 古希腊与古罗马的关系
- 【技术分享】Android App常见安全问题演练分析系统-DIVA-Part1
- Vue.js 中 v-if 和 v-show 的区别
- IE8下提示’console’未定义错误
- oracle从字符串中提取数字
- 转:mysql处理海量数据时的一些优化查询速度方法
- easyui 根据rowIndex行号 获取该行的值