当前位置: 移动技术网 > IT编程>开发语言>Java > mybatis学习使用1

mybatis学习使用1

2018年10月22日  | 移动技术网IT编程  | 我要评论

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的配置查看官方文档主要如下:

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网