MyBatis系列01之快速入门

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis系列01之快速入门相关的知识,希望对你有一定的参考价值。

1、MyBatis介绍

  MyBatis是支持普通SQL查询存储过程高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

2、MyBatis快速入门

2.1、添加Jar包

mybatis-3.1.1.jar

mysql-connector-java-5.1.7-bin.jar

2.2、创建数据库和数据表

create database mybatis;
use mybatis;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);
INSERT INTO users(NAME, age) VALUES(Tom, 12);
INSERT INTO users(NAME, age) VALUES(Jack, 11);

2.3添加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>
    <!-- 参数详解
        1、environments:环境
          environment:环境变量
          transactionManager:事物管理器
                在MyBatis中有两种事务管理器类型(也就是type=”[JDBC|MANAGED]”):
                ? JDBC – 这个配置直接简单使用了JDBC的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。
                ? MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期
                (比如Spring或JEE应用服务器的上下文)。默认情况下它会关闭连接。然而一些容器并不希望这样,因此如果你需要从连接中停止它,将closeConnection属性设置为false
        2、dataSource:数据源

        3、default 1、developent:开发模式
                 2、work:工作模式

    -->
    <environments default="development">
        <environment id="development">
            <!-- id值和default值必须一致,否则会导致项目报错 -->
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
                <property name="username" value="root" />
                <property name="password" value="123456" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="cn/davidwong/day01/userMapper.xml" />
    </mappers>
</configuration>

2.4定义表所对应的实体

package cn.davidwong.day01;

/**
 * Created by ww on 2016/10/19.
 */
public class User {
    private int id;
    private String name;
    private int age;

    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 int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name=‘" + name + ‘\\‘‘ +
                ", age=" + age +
                ‘}‘;
    }
}

2.5、定义操作user表的sql映射文件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="cn.davidwong.day01.userMapper">
    <select id="getUser" parameterType="int" resultType="cn.davidwong.day01.User">
        select * from users where id=#{id}
    </select>
</mapper>

2.6在conf.xml 文件中注册userMapper.xml 文件

<mappers>
        <mapper resource="cn/davidwong/day01/userMapper.xml" />
    </mappers>

2.7编写测试类

测试类有两种方法,第一种好像是官方的,但是我个人比较倾向于第二种

2.7.1标准测试类

public class Test {
public static void main(String[] args) throws IOException {
String resource = "conf.xml";
//加载mybatis 的配置文件(它也加载关联的映射文件)
Reader reader = Resources.getResourceAsReader(resource);
//构建sqlSession 的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//创建能执行映射文件中sql 的sqlSession
SqlSession session = sessionFactory.openSession();
//映射sql 的标识字符串
String statement = "com.atguigu.mybatis.bean.userMapper"+".selectUser";
//执行查询返回一个唯一user 对象的sql
User user = session.selectOne(statement, 1);
System.out.println(user);
}

 

2.7.2自定义测试类

package cn.davidwong.day01;



import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;

public class Main {

    public static void main(String[] args) {
        String respurce="conf.xml";
        InputStream in = Main.class.getClassLoader().getResourceAsStream(respurce);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        SqlSession session=factory.openSession();
        String statement="cn.davidwong.day01.userMapper.getUser";
        User user=session.selectOne(statement,2);
        System.out.println(user);
    }
}

2.8项目结构

技术分享

 

以上是关于MyBatis系列01之快速入门的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis学习总结-MyBatis快速入门的系列教程

MyBatis 框架之快速入门程序

深入浅出Mybatis之快速入门!

深入浅出Mybatis之快速入门!

mybatis快速入门

01Mybatis快速入门