博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis 一对一关联
阅读量:7281 次
发布时间:2019-06-30

本文共 2567 字,大约阅读时间需要 8 分钟。

首先建表:

CREATE TABLE teacher(    t_id INT PRIMARY KEY AUTO_INCREMENT,     t_name VARCHAR(20));CREATE TABLE class(    c_id INT PRIMARY KEY AUTO_INCREMENT,     c_name VARCHAR(20),     teacher_id INT);ALTER TABLE class ADD CONSTRAINT fk_teacher_id FOREIGN KEY (teacher_id) REFERENCES teacher(t_id);    INSERT INTO teacher(t_name) VALUES('LS1');INSERT INTO teacher(t_name) VALUES('LS2');INSERT INTO class(c_name, teacher_id) VALUES('bj_a', 1);INSERT INTO class(c_name, teacher_id) VALUES('bj_b', 2);

再cn.beam包下,简历两个Class类。分别是Classes.java和Teacher.java

public class Classes {    private int id;    private String name;    private Teacher teacher;}public class Teacher {    private int id;    private String name;}

然后分别构造方法,做get和set方法。

配置config.xml文件:

配置db.properties

driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mybatisusername=rootpassword=root

配置mapper文件:

做一个utils

import java.io.InputStream;import junit.framework.Test;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtils {    public static SqlSessionFactory getFactory(){        String resource = "conf.xml";                InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);                SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);                return factory;    }}

做一个测试,测试结果:

import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.junit.Test;import cn.bean.Classes;import cn.utils.MyBatisUtils;public class Test5 {    @Test    public void selectTeacherByCid(){        SqlSessionFactory factory = MyBatisUtils.getFactory();        SqlSession session = factory.openSession(true);        String statement = "cn.test5.ClassMapper.getClass";        Classes c = session.selectOne(statement, 1);        System.out.println(c);    }}

结果如下:

Classes [id=1, name=bj_a, teacher=Teacher [id=1, name=LS1]]

转载于:https://www.cnblogs.com/invban/p/5102031.html

你可能感兴趣的文章
docker
查看>>
把你的程序放到桌面——Android桌面部件Widget
查看>>
《图解HTTP》第3章_HTTP报文内的HTTP信息-思维导图
查看>>
分享一个冷门知识——文本框的选择文本在业务中的应用
查看>>
彻底理解浏览器的跨域
查看>>
1009 说反话 (20 分)
查看>>
Flutter Wrap & Chip
查看>>
包教包会vuex
查看>>
机器学习中的核函数
查看>>
Vue路由自动注入实践
查看>>
类数组转化成数组的方法
查看>>
Android屏幕适配方案
查看>>
使用Databinding轻松快速打造仿携程app筛选控件(二)
查看>>
AppCompatActivity怎么对View做的拦截
查看>>
记b站的一次react尝试
查看>>
Binder IPC
查看>>
mpvue开发小程序
查看>>
聊聊HotSpot VM的Native Memory Tracking
查看>>
双内核浏览器内核切换控制技术
查看>>
你离ELK只有一句docker-compose的距离
查看>>