1. 程式人生 > >mybatis學習使用1

mybatis學習使用1

1、mybatis是一款優秀的持久層框架,使用起來比較簡單

 1.1我們首先來看一個小demo,目錄結構如下

  

 程式碼

User.java

package com.rookie.bigdata.domain;

import lombok.Data;

import java.io.Serializable;

/**
 * @author
 * @date 2018/10/21
 */
//Data註解可以省略get和set方法
@Data
public class User implements Serializable{
    // 使用者標識
    private
Integer id; // 使用者姓名 private String name; // 使用者性別 private String sex; // 使用者年齡 private Integer age; public User() { super(); } public User( String name, String sex, Integer age) { super(); this.name = name; this.sex = sex;
this.age = age; } }
View Code

 

UserMapper.java

package com.rookie.bigdata.mapper;

import com.rookie.bigdata.domain.User;

/**
 * @author liuxili
 * @date 2018/10/21
 */
public interface UserMapper {

    void save(User user);
}

 

UserMapper.xml

<?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">

<mapper namespace="com.rookie.bigdata.mapper.UserMapper">


  <insert id="save" parameterType="com.rookie.bigdata.domain.User" useGeneratedKeys="true">
      INSERT INTO BS_USER(name,sex,age)
      VALUES(#{name},#{sex},#{age})
  
</insert> </mapper>

 

mybatis-config.xml

<?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">
  <!--  XML 配置檔案包含對 MyBatis 系統的核心設定 -->
<configuration>

    <environments default="mysql">
    <!-- 環境配置,即連線的資料庫。 -->
    <environment id="mysql">
    <!--  指定事務管理型別,type="JDBC"指直接簡單使用了JDBC的提交和回滾設定 -->
      <transactionManager type="JDBC"/>
      <!--  dataSource指資料來源配置,POOLED是JDBC連線物件的資料來源連線池的實現。 -->
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
      </dataSource>
    </environment>
  </environments>
  <!-- mappers告訴了MyBatis去哪裡找持久化類的對映檔案 -->
  <mappers>
      <mapper resource="mapper/UserMapper.xml"/>
  </mappers>
</configuration>

 

AppTest.java
package com.rookie.bigdata;

import static org.junit.Assert.assertTrue;

import com.rookie.bigdata.domain.User;
import com.rookie.bigdata.mapper.UserMapper;
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.junit.Test;

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

/**
 * Unit test for simple App.
 */

public class AppTest {

    @Test
    public void test1() throws IOException {
        // 讀取mybatis-config.xml檔案
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        // 初始化mybatis,建立SqlSessionFactory類的例項
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
                .build(inputStream);
        // 建立Session例項
        SqlSession session = sqlSessionFactory.openSession();
        // 建立User物件
        User user = new User("admin", "男", 26);
        // 插入資料
        UserMapper mapper = session.getMapper(UserMapper.class);
        mapper.save(user);
        // 提交事務
        session.commit();
        // 關閉Session
        session.close();
    }

}

 

主要程式碼如上,測試即可直接向資料庫中插入資料

1.2對於上面的demo,我們來介紹一下mybatis的配置檔案結構,如下:

<?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">
<configuration>

    <properties>
        <!--properties屬性-->
    </properties>

    <settings>
        <!--settings設定-->
    </settings>
    <typeAliases>
        <!--類型別名-->
    </typeAliases>
    <typeHandlers>
        <!--型別處理器-->
    </typeHandlers>
    <!--物件工廠-->
    <objectFactory type="" ></objectFactory>
    <plugins>
        <!--外掛-->
    </plugins>
    <environments default="mysql">
        <!-- 環境配置,即連線的資料庫。 -->
        <environment id="mysql">
            <!--  指定事務管理型別,type="JDBC"指直接簡單使用了JDBC的提交和回滾設定 -->
            <transactionManager type="JDBC"/>
            <!--  dataSource指資料來源配置,POOLED是JDBC連線物件的資料來源連線池的實現。 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <!--資料庫廠商標誌-->
    <databaseIdProvider type=""></databaseIdProvider>
    <!-- mappers告訴了MyBatis去哪裡找持久化類的對映檔案 -->
    <mappers>
       <!--對映器-->
    </mappers>
</configuration>

  上面的demo只不過是這個配置檔案的簡化版本

 對於properties的屬性配置,我們可以對上面的demo中的配置做如下更改,

  在classpath下面新增properties檔案,如下

  db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/mybatis
username=root
password=root

  mybatis-config.xml更改如下即可

<?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">
  <!--  XML 配置檔案包含對 MyBatis 系統的核心設定 -->
<configuration>
  <properties resource="db.properties">
    <environments default="mysql">
    <!-- 環境配置,即連線的資料庫。 -->
    <environment id="mysql">
    <!--  指定事務管理型別,type="JDBC"指直接簡單使用了JDBC的提交和回滾設定 -->
      <transactionManager type="JDBC"/>
      <!--  dataSource指資料來源配置,POOLED是JDBC連線物件的資料來源連線池的實現。 -->
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  <!-- mappers告訴了MyBatis去哪裡找持久化類的對映檔案 -->
  <mappers>
      <mapper resource="mapper/UserMapper.xml"/>
  </mappers>
</configuration>

 setting的配置檢視官方文件主要如下: