博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBaits开发入门一:一对一连表查询
阅读量:6966 次
发布时间:2019-06-27

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

1. MyBaits基本概念:略

2. 案例:需求:建立数据库查询,一对一

3.开发步骤:

  • (1).建立数据库+表
  • (2).加包
  • (3).定义实体类
  • (4).编写db.properties,将数据库信息写入其中;编写MyBatis的配置文件conf.xml文件,引入db.properties;引入别名
  • (5).定义sql映射文件***Mapper.xml文件
  • (6).将***Mapper.xml文件注册到conf.xml文件中
  • (7).编写MyBaitsUtils工具
  • (8).测试

4.代码

  (1).加包

  

  (2). 建立数据库和表

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);

  (3). 定义实体类

package com.atguigu.mybatis.domain;/** * @author hp * */public class Classes {    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;    }    public Classes(int id, String name, Teacher teacher) {        super();        this.id = id;        this.name = name;        this.teacher = teacher;    }    public Classes() {            }    @Override    public String toString() {        return "Classes [id=" + id + ", name=" + name + ", teacher=" + teacher + "]";    }        }
View Code
package com.atguigu.mybatis.domain;/** * @author hp * */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;    }    public Teacher(int id, String name) {        super();        this.id = id;        this.name = name;    }        public Teacher() {        }    @Override    public String toString() {        return "Teacher [id=" + id + ", name=" + name + "]";    }            }
View Code

   (4). 编写db.properties,将数据库信息写入其中;

username=rootpassword=lfdyjdbcUrl=jdbc:mysql://localhost:3306/mybatis1driverClass=com.mysql.jdbc.Driver

  编写MyBatis的配置文件conf.xml文件,引入db.properties;

1   
2
3
4
5
6
7
8
9
10
11
12
13
14

  引入别名

  (5).定义sql映射文件***Mapper.xml文件

  

  

  <!-- 方式二:嵌套查询,使用另一个SQL语句来返回预期的复杂类型 -->

  <select id="getClass2" parameterType="int" resultMap="ClassResultMap2">
    select * from class where c_id = #{id}
  </select>
  <select id="getTeacher2" parameterType="int" resultType="Teacher">
    select t_id id,t_name name from teacher where t_id = #{id}
  </select>
  <resultMap type="Classes" id="ClassResultMap2">
  <id property="id" column="c_id"/>
  <result property="name" column="c_name"/>
      <association property="teacher" column="teacher_id" select="getTeacher2">
      </association>
  </resultMap>

 

  (6). 将***Mapper.xml文件注册到conf.xml文件中

  (7). 编写MyBaitsUtils工具

package com.atguigu.mybatis.test;import java.io.InputStream;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 = MyBatisUtils.class.getClassLoader().getResourceAsStream(resource);                SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);                    return factory;    }}

  (8).测试

package com.atguigu.mybatis.test;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import com.atguigu.mybatis.domain.Classes;/** * @author hp * */public class MyBatisTest {        public static void main(String[] args) {                SqlSessionFactory sessionFactory = MyBatisUtils.getFactory();                SqlSession session = sessionFactory.openSession();                String statement = "com.atguigu.mybatis.mapper.ClassMapper.getClass";                Classes c = session.selectOne(statement, 1);        System.out.println(c);                session.close();                }}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

      

转载于:https://www.cnblogs.com/lfdingye/p/6443375.html

你可能感兴趣的文章
如何改变eclipse控制台编码
查看>>
Python 闭包相关之late binding机制
查看>>
关于复制
查看>>
java AES
查看>>
实验五
查看>>
嵌入式Linux入门经典笔记
查看>>
leetcode29
查看>>
基于服务器的AAA作业(第二次)
查看>>
Objective-c——UI基础开发第十二天(相册展示)
查看>>
SQL中ISNULL的问题。
查看>>
利用map和stringstream数据流解题
查看>>
1.1.3 以类为单位的编程思想
查看>>
bzoj2440: [中山市选2011]完全平方数
查看>>
AC日记——中位数 洛谷 P1168
查看>>
Android 屏幕截图
查看>>
ubuntu 13.04 vim 的配置
查看>>
C++ 强制转换
查看>>
Python IDLE快捷键一览
查看>>
在通知栏上玩游戏,Steve iOS 游戏实现思路
查看>>
memcache---mongodb---redis比较
查看>>