MyBatis學習(五):MyBatis的一對一關聯如何操作

現在有兩張表,一張是班級表,另外一張是老師表。


上面就是兩張表,通過班級id號不僅僅能夠獲得班級的信息還要獲取班主任的信息,其中c_teacher和t_id通過外鍵相連。

1.首先mybatis的配置文件conf.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>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />

			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://localhost:3306/mybatis002" />
				<property name="username" value="root" />
				<property name="password" value="wang314159" />
			</dataSource>

		</environment>
	</environments>
	<mappers >
		<mapper resource="class.xml"/>
	</mappers>

</configuration>
創建兩個Javabean,一個是class,一個是teacher

package com.wpl.demo.link;

public class Class {

	private int id;
	private String name;
	private Teacher teacher;
	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 Teacher getTeacher() {
		return teacher;
	}
	public void setTeacher(Teacher teacher) {
		this.teacher = teacher;
	}
	@Override
	public String toString() {
		return "Class [id=" + id + ", name=" + name + ", teacher=" + teacher + "]";
	}
	
	
}


package com.wpl.demo.link;

public class Teacher {

	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 "Teacher [id=" + id + ", name=" + name + "]";
	}
	

}

關鍵是對於sql映射文件的配置。


<?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.wpl.demo.link">
	<select id="findClass" parameterType="int" resultMap="myMap">
		select
		*from class c,teacher t where c.c_id=#{id} and c.c_teacher=t.t_id
	</select>
	
	<resultMap type="com.wpl.demo.link.Class" id="myMap">
		<id property="id" column="c_id" />
		<result property="name" column="c_name" />
		<association property="teacher" javaType="com.wpl.demo.link.Teacher">
			<id property="id" column="t_id" />
			<result property="name" column="t_name" />
		</association>
	</resultMap>

</mapper>

這樣就是簡單的mybatis的一對一聯表查詢,希望對大家有幫助。

發佈了54 篇原創文章 · 獲贊 70 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章