MyBatis运行流程及入门第一个程序

1. mybatis是什么?

 

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,是一个基于Java的持久层框架。

       1️⃣mybatis托管到goolecode下,再后来托管到github下(https://github.com/mybatis/mybatis-3/releases)。

  2️⃣mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句。

  3️⃣mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射)

 

Mybatiis介绍思维导图:https://www.edrawsoft.cn/viewer/public/s/8be08327341014

 

 

2.mybatis运行流程

MyBatis运行流程及入门第一个程序_第1张图片

 

 3.入门程序

  3.1.搭建环境

    mybatis运行环境(jar包):

    从https://github.com/mybatis/mybatis-3/releases下载,3.2.7版本

          MyBatis运行流程及入门第一个程序_第2张图片

 

 

 lib下:依赖包

mybatis-3.2.7.jar:核心 包

mybatis-3.2.7.pdf,操作指南

 

加入mysql的驱动包

 

  3.2工程结构

 

MyBatis运行流程及入门第一个程序_第3张图片

 

  3.3SqlMapConfig.xml

配置mybatis的运行环境,数据源、事务等。

 

 1 
 2 
 5 
 6     
 7     
 8         
 9             
10             
11             
12             
13                 
14                 
15                 
16                 
17             
18         
19     
20   

  3.4根据员工id(主键)查询员工信息

    3.4.1创建po类(实体类)

 1 package com.mybatis.model;
 2 /**
 3  * 员工信息表实体类
 4  * @author Administrator
 5  *
 6  */
 7 public class Emp {
 8 
 9     private Integer emp_id;
10     private String emp_name;
11     private Integer emp_age;
12     private Integer emp_num;
13     private String emp_post;
14     public Integer getEmp_id() {
15         return emp_id;
16     }
17     public void setEmp_id(Integer emp_id) {
18         this.emp_id = emp_id;
19     }
20     public String getEmp_name() {
21         return emp_name;
22     }
23     public void setEmp_name(String emp_name) {
24         this.emp_name = emp_name;
25     }
26     public Integer getEmp_age() {
27         return emp_age;
28     }
29     public void setEmp_age(Integer emp_age) {
30         this.emp_age = emp_age;
31     }
32     public Integer getEmp_num() {
33         return emp_num;
34     }
35     public void setEmp_num(Integer emp_num) {
36         this.emp_num = emp_num;
37     }
38     public String getEmp_post() {
39         return emp_post;
40     }
41     public void setEmp_post(String emp_post) {
42         this.emp_post = emp_post;
43     }
44     
45 }

    3.4.2 映射文件

映射文件命名:

  User.xml(原始ibatis命名),mapper代理开发映射文件名称叫XXXMapper.xml,比如:UserMapper.xml、ItemsMapper.xml    在映射文件中配置sql语句。

 1 
 2 
 5 
 6 
 7     
13     
16 

  3.4.3  在SqlMapConfig.xml加载映射文件

1 
2     
3         
4     

 

3.5 test程序编写

 1 package com.mybatis.test;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.util.List;
 6 
 7 import org.apache.ibatis.io.Resources;
 8 import org.apache.ibatis.session.SqlSession;
 9 import org.apache.ibatis.session.SqlSessionFactory;
10 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
11 
12 import com.mybatis.model.Emp;
13 
14 public class Test {
15     //根据员工id查询员工基本信息
16     public static void main(String[] args) {
17         InputStream inputStream = null;
18         try {
19             //mybatis配置文件
20             String reString="sqlMapConfig.xml";
21             //得到配置文件流
22             inputStream = Resources.getResourceAsStream(reString);
23             //创建会话工厂,传入mybatis配置文件信息
24             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
25             //通过sqlSessionFactory会话工厂 得到 session
26             SqlSession sqlsession = sqlSessionFactory.openSession();
27             /**
28              * 通过sqlsession操作数据库
29              * 第一个参数:映射文件中的statement的id,等于namespace+“.”+statement的ID
30              * 第二个参数:指定和映射文件中parameterType参数类型所匹配的参数
31              * sqlsession.selectOne结果是与映射文件中resultType返回类型所匹配的对象
32              */
33             Emp emp=sqlsession.selectOne("test.selectEmpById", 1);
34             System.out.println(emp);
35             //释放资源
36             sqlsession.close();
37         } catch (IOException e) {
38             // TODO Auto-generated catch block
39             e.printStackTrace();
40         }
41 
42     }
43 }

3.6.测试结果

 

 

你可能感兴趣的:(mybatis,java,ssm)