MyBatis实现一对多

第一步:导入两个jar包分别为mybatis-3.2.3.jar和mysql-connector-java-5.1.25-bin.jar,如下图所示:
MyBatis实现一对多_第1张图片
第二步:创建两张表(本人两张表分别为person和food),如下图所示:
person表
MyBatis实现一对多_第2张图片
food表
MyBatis实现一对多_第3张图片
以下是几条相关SQL语句:
创建数据库语句:create database 数据库名;
创建表语句:create table 表名(id(字段名) int(数据类型)primary key(设置主键), name varchar(10) , sex varchar(10) );
添加值:insert into 表名(id,name,sex) values (1,“李四”,“男”);
注:一张表中只能设置一个主键
第三步:创建改表相对应的实体类:
推荐类与表名同名(类命名规范:类名首字母大写)
Person类:

package com.zhiyuan.Bean;

import java.io.Serializable;
import java.util.List;

public class Person implements Serializable{
//implements:用于实现接口
//Serializable:接口是启用其序列化功能的接口
	private int id;
	private String name;
	private String sex;
//以上三个属性推荐与数据库里面的字段名保持一致
	private List list;
//list用于接收多条记录
	public List getList() {
		return list;
	}
	public void setList(List list) {
		this.list = list;
	}
	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;
	}
//以上get和set方法可以通过鼠标右击》然后将鼠标放在Source上》Generate Getters and Setters...》勾选你需要生成get,set的属性点击ok即可
	
}

Food类:

package com.zhiyuan.Bean;

import java.io.Serializable;

public class Food implements Serializable{
	private int id;
	private int p_id;
	private String fname;
	private String fkouwei;
	private Person person;//用于实现多对一,在此可有可无
	public Person getPerson() {
		return person;
	}
	public void setPerson(Person person) {
		this.person = person;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getP_id() {
		return p_id;
	}
	public void setP_id(int p_id) {
		this.p_id = p_id;
	}
	public String getFname() {
		return fname;
	}
	public void setFname(String fname) {
		this.fname = fname;
	}
	public String getFkouwei() {
		return fkouwei;
	}
	public void setFkouwei(String fkouwei) {
		this.fkouwei = fkouwei;
	}
	
}

第四步:创建好实体映射文件
推荐映射文件名与实体类名保存一致(文件名全部小写)
person.xml:





	
	
		
		
		
		
		
		
		
			
			
			
			
		
	
	


第五步:创建好MaBatis的主配置文件
推荐映射文件名与实体类名保存一致(文件名全部小写)
config.xml主配置文件:




	
	
		
		
	
	
	
		
			
			
				
				
				
				
			
		
	
	
	
		
		
	


第六步:编译测试类
Text测试类:

package com.zhiyuan.Text;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.zhiyuan.Bean.Food;
import com.zhiyuan.Bean.Person;

public class Text {

	public static void main(String[] args) throws IOException {
		Reader reader = Resources.getResourceAsReader("config.xml");
		//通过Resources类调用getResourceAsReader方法来获取 config主配置文件并用Reader来进行接收
		SqlSessionFactory session = new SqlSessionFactoryBuilder().build(reader);//创建工厂回话
		Person person = session.openSession().selectOne("com.zhiyuan.Bean.GetID",1);
		//openSession用来创建Sqlsession,selectOne用来查询一条记录(一条记录用实体类接收),selectList用来查询一条或多条记录
		System.out.println("ID:"+person.getId()+"  姓名:"+person.getName()+"  性别:"+person.getSex());
		List list = person.getList();
		for (Food food : list) {
		
			System.out.println("ID:"+food.getId()+"  P_Id:"+food.getP_id()+"  食物名:"+food.getFname()+"  口味:"+food.getFkouwei());
		}
	}

}

运行结果如下图:
MyBatis实现一对多_第4张图片

你可能感兴趣的:(MyBatis)