概述
1.创建2张表,建立主外键关系
2.建立实体类
- package com.yw.test06;
- public class Class
- {
- private int id;
- private String name;
- public int getId()
- {
- return id;
- }
- public void setId(int id)
- {
- this.id = id;
- }
- public String getName()
- {
- return name;
- }
- public void setName(String name)
- {
- this.name = name;
- }
- @Override
- public String toString()
- {
- return "Class [id=" + id + ", name=" + name + "]";
- }
- }
- package com.yw.test06;
- public class Student
- {
- private int id;
- private String name;
- private int age;
- private Class c;
- public int getId()
- {
- return id;
- }
- public void setId(int id)
- {
- this.id = id;
- }
- public String getName()
- {
- return name;
- }
- public void setName(String name)
- {
- this.name = name;
- }
- public int getAge()
- {
- return age;
- }
- public void setAge(int age)
- {
- this.age = age;
- }
- public Class getC()
- {
- return c;
- }
- public void setC(Class c)
- {
- this.c = c;
- }
- @Override
- public String toString()
- {
- return "Student [id=" + id + ", name=" + name + ", age=" + age + ", c=" + c + "]";
- }
- }
3.修改配置文件
- <?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>
- <properties resource="config.properties">
- </properties>
- <typeAliases>
- <!-- <typeAlias type="com.yw.test06.StudentMapper" alias="Student" />
- <typeAlias type="com.yw.test06.ClassMapper" alias="Class" /> -->
- <package name="com.yw.test06"/>
- </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="org/mybatis/example/BlogMapper.xml"/> -->
- <mapper resource="com/yw/test06/StudentMapper.xml" />
- </mappers>
- </configuration>
4.建立映射文件
1)嵌套查询
- <?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.yw.test07.StudentMapper">
- <select id="selectStudent" resultMap="studentResult">
- SELECT * FROM student s
- WHERE s.ID = #{id}
- </select>
- <resultMap type="Student" id="studentResult">
- <association property="c" column="c_id" javaType="Class"
- select="selectClass" />
- </resultMap>
- <select id="selectClass" resultType="Class">
- SELECT * FROM class WHERE ID= #{id}
- </select>
- </mapper>
2)嵌套结果
- <?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.yw.test06.StudentMapper">
- <resultMap id="studentResult" type="com.yw.test06.Student">
- <id property="id" column="id"/>
- <result property="name" column="name"/>
- <result property="age" column="age"/>
- <association property="c" resultMap="classResult"
- javaType="Class"></association>
- </resultMap>
- <resultMap type="com.yw.test06.Class" id="classResult">
- <id property="id" column="id"/>
- <result property="name" column="name"/>
- </resultMap>
- <select id="selectStudent" resultMap="studentResult">
- SELECT s.id,c.id,s.name,s.age,c.name from student s left join class c on c.id=s.c_id where s.id=#{id}
- </select>
- </mapper>
5.创建测试类
- package com.yw.test06;
- import java.io.IOException;
- import java.io.InputStream;
- import org.apache.ibatis.io.Resources;
- import org.apache.ibatis.session.SqlSession;
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.apache.ibatis.session.SqlSessionFactoryBuilder;
- public class Test01
- {
- public static void main(String[] args) throws IOException
- {
- String resource = "com/yw/test06/mybatis-config.xml";
- InputStream inputStream = Resources.getResourceAsStream(resource);
- SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
- SqlSession session = sqlSessionFactory.openSession(false);
- try {
- Student user = (Student) session.selectOne("com.yw.test06.StudentMapper.selectStudent", 1);
- System.out.println(user);
- } finally {
- session.close();
- }
- }
- }
最后
以上就是神勇小蜜蜂为你收集整理的使用MyBatis(嵌套查询,嵌套结果)的全部内容,希望文章能够帮你解决使用MyBatis(嵌套查询,嵌套结果)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复