mybatis框架初步使用过程

首先Mybaits是一个在GitHub上的开源项目,下载文件Jar包可以直接从GitHub上进行下载

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

1.首先创建数据库和实体类

这里将一个Student类举例

 1 package org.lizi.entity;
 2 /**
 3  * @author: Jeson
 4  * @date:2017年8月14日 上午11:06:21
 5  * @version :
 6  * 
 7  */
 8 public class Student {
 9 
10     public String name;
11     public int age;
12     public Student() {
13         super();
14     }
15     public Student(String name, int age) {
16         super();
17         this.name = name;
18         this.age = age;
19     }
20     public String getName() {
21         return name;
22     }
23     public void setName(String name) {
24         this.name = name;
25     }
26     public int getAge() {
27         return age;
28     }
29     public void setAge(int age) {
30         this.age = age;
31     }
32     @Override
33     public String toString() {
34         return "Student [name=" + name + ", age=" + age + "]";
35     }
36     
37     
38 }

然后创建UserDao接口和接口的实现类

 1 package org.lizi.dao;
 2 
 3 import java.io.IOException;
 4 
 5 import org.lizi.entity.Student;
 6 
 7 /**
 8  * @author: Jeson
 9  * @date:2017年8月14日 下午2:13:57
10  * @version :
11  * 
12  */
13 public interface UserDao {
14     public void insertU(Student s) throws IOException;
15 }

 

package org.lizi.daoimpl;

import java.io.IOException;
import java.io.InputStream;










import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.lizi.dao.UserDao;
import org.lizi.entity.Student;

import Utils.Utils;

/**
 * @author: Jeson
 * @date:2017年8月14日 下午2:19:12
 * @version :
 * 
 */
public class UserDaoImpl implements UserDao {

    @Override
    public void insertU(Student s) throws IOException {
        // TODO Auto-generated method stub
/*        //1.加载驱动类
        InputStream res = Resources.getResourceAsStream("mybatis.xml");
        //2.创建sqlSessionFactory对象
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(res);
        //3.通过sqlSessionFactory对象来创建一个Session
        SqlSession ss = ssf.openSession();
        //4.执行SQL
        ss.insert("insertU",s);
        ss.commit();
        //5.关闭Se's'si'o'n对象
        ss.close();
        */
        
        SqlSession ss = Utils.getSession();
        //4.执行SQL
                ss.insert("insertU",s);
                ss.commit();
        Utils.closeSession();
        
    }
    
    public static void main(String[] args) throws IOException {
        UserDao ud = new UserDaoImpl();
        Student s = new Student("bbb",18);
        ud.insertU(s);
    }
    
}

准备工作做好之后,就可以进行XML文件的配置

首先在官方文档中找出 配置文件代码复制过来改成自己的

放在src目录下就行,

这个是mybaits.xml文件

 1 <?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">
 2 <configuration>
 3 <!-- 加载数据库连接属性文件 -->
 4     <!--  <properties resource="database.propertise"></properties>-->
 5     <environments default="development">
 6         <environment id="development">
 7             <transactionManager type="JDBC" />
 8             <dataSource type="POOLED">
 9                 <property name="driver" value="com.mysql.jdbc.Driver" />
10                 <property name="url" value="jdbc:mysql://localhost:3306/mybatis?encoding=UTF-8" />
11                 <property name="username" value="root" />
12                 <property name="password" value="123456" />
13             </dataSource>
14         </environment>
15     </environments>
16     <mappers>
17     <!-- 在配置文件中注册映射文件 -->
18         <mapper resource="org/lizi/entity/student.xml" />
19     </mappers>
20 </configuration>

 

dao接口的映射文件

Student.xml

namespace是Dao接口的文件路径

parameterType是查询对应的实体类

insert的ID是SQL语句的唯一标识

下面是SQL语句的方法

 

1 <?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">
2 <mapper namespace="org.lizi.dao.UserDao">
3     <insert id="insertU" parameterType="Open Declaration org.lizi.entity.Student">
4         insert into student(name,age) values(#{name},#{age});
5     </insert>
6     
7 </mapper>

 

如果有多个接口的话,每一个接口就对应着一个映射文件,每回创建新的映射文件之后不要忘记在mybatis.xml文件中进行注册

当两个配置文件中的ID非要向同时,而且指向同一个命名空间 ,可以修改其中一个文件的命名空间,

调用的话就是 session.insert( "命名空间.id",对象参数);

一定要规范命名,上面这种方法只是为了理解namespace的作用,并不推荐使用

 

 

 

 

 

 

 

主配置文件详解

  1.大家习惯性将Mybatis的配置文件命名成mybaties.xml

  2.这是存放数据库链接的配置文件

 <properties resource="database.propertise"></properties>

  3.可以给实体类在主文件中起一个别名给Dao的xml文件调用,type就是实体类的全类名,alias就是别名

  使用package的方法所起的别名就是简单类名,比如说org.lizi.entity.Student的简单类名就是Student

1 <typeAliases>
2       <!-- 配置别名方式1 -->
3         <typeAlias type="org.lizi.entity.Student" alias="stu"/>
4       <!-- 配置别名方式2 -->
5         <package name="org.lizi.entity.Student"/>
6     </typeAliases>

  4.Mybatis还给常用的数据类型指定了别名

  mybatis框架初步使用过程

常用包装类型

mybatis框架初步使用过程

 

 配置Mybatis的运行环境

   <environments>环境标签,主要是用来配置数据源,和事物管理

  <environments>标签下可以包括多个运行环境<environment>,可以配置多个数据库,是用default制定当前使用哪一个运行环境

<transactionManager type="JDBC" />使用JDBC的事物管理器