3.14
idCard类封装数据库表tb_idcard的列名
package com.tokaiteio.pojo; public class Person { private int id; private String name; private String sex; private IdCard card;//封装idcard的类型为idcard的类名 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 String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public IdCard getCard() { return card; } public void setCard(IdCard card) { this.card = card; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", sex='" + sex + '\'' + ", card_id='" + card + '\'' + '}'; } }
Person类封装数据库表tb_person的列名
package com.tokaiteio.pojo; public class Person { private int id; private String name; private String sex; private IdCard card;//封装idcard的类型为idcard的类名 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 String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public IdCard getCard() { return card; } public void setCard(IdCard card) { this.card = card; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", sex='" + sex + '\'' + ", card_id='" + card + '\'' + '}'; } }
在resource文件夹中的mapper文件夹中创建映射文件
idCardMapper.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.tokaiteio.pojo.IdCard"> <!-- 根据id查询证件信息--> <select id="findCodeById" parameterType="Integer" resultType="com.tokaiteio.pojo.IdCard"> select*from tb_idcard where id=#{id} </select> </mapper>
PersonMapper.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.tokaiteio.pojo.Person"> <select id="findById" parameterType="Integer" resultMap="idCardResult"> <!-- 嵌套查询:通过执行另外的语句返回结果--> select*from tb_person where id=#{id} </select> <!-- 下面的resultMap(结果集)的id与上面resultMap="idCardResult"相同 type为Person类路径--> <resultMap id="idCardResult" type="com.tokaiteio.pojo.Person"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="sex" column="sex"/> <!-- 一对一的关联 引入另外的sql语句 property="card"的card是Pojo包中Person类中封装的 private IdCard card;封装idcard的类型为idcard的类名 column="card_id"的card_id对应查找tb_person表中的card_id列 javaType="com.tokaiteio.pojo.IdCard"值为idCard类路径对应pojo包里面的idCard类 select="com.tokaiteio.pojo.IdCard.findCodeById"的com.tokaiteio.pojo.IdCard.findCodeById对应idCardMapper.xml中的 resultType="com.tokaiteio.pojo.IdCard"的com.tokaiteio.pojo.IdCard再加.findCodeById --> <!-- card指向person中封装的IdCard的card card_id去查找表中的card_id列的数值去匹配findCodeById查询方法的id com.tokaiteio.pojo.IdCard对应的是pojo包里面的类路径映射pojo包里面的idCard类 com.tokaiteio.pojo.IdCard.findCodeById去idCardMapper.xml中使用查找方法findCodeById --> <association property="card" column="card_id" javaType="com.tokaiteio.pojo.IdCard" select="com.tokaiteio.pojo.IdCard.findCodeById"/> </resultMap> </mapper>
在mybatis-config.xml中的<mappers>添加PersonMapper.xml和idCardMapper.xml路径
<?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="db.properties"/> <!--User类路径别名--> <typeAliases> <typeAlias type="com.tokaiteio.pojo.Customer" alias="Customer"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <!-- 数据库连接相关配置 ,db.properties文件中的内容--> <dataSource type="POOLED"> <property name="driver" value="${mysql.driver}"/> <property name="url" value="${mysql.url}"/> <property name="username" value="${mysql.username}"/> <property name="password" value="${mysql.password}"/> </dataSource> </environment> </environments> <!--配置mapper文件--> <mappers> <mapper resource="mapper\CustomerMapper.xml"/> <mapper resource="mapper\IdCardMapper.xml"/> <mapper resource="mapper\PersonMapper.xml"/> </mappers> </configuration>
再在com.tokaiteio.test包中的MybatisTest类中写main方法
package com.tokaiteio.test; //import com.sun.xml.internal.xsom.impl.scd.Iterators; //import com.tokaiteio.pojo.Customer; import com.tokaiteio.pojo.Person; import com.tokaiteio.util.MybatisUtils; import org.apache.ibatis.session.SqlSession; //import org.junit.jupiter.api.Test; //import java.util.ArrayList; //import java.util.HashMap; //import java.util.List; //import java.util.Map; public class MybatisTest { public static void main(String[] args) { SqlSession session = MybatisUtils.getSession(); Person p = session.selectOne("findById",2); System.out.println(p); } }

浙公网安备 33010602011771号