MyBatis简单使用的demo


MyBatis 是一个java持久层框架,类似hibernate,但是比hibernate轻,功能没hibernate多,关于谁好谁坏,一直有人再争论,应该是各有各的好处,大家可以自行百度其优缺点。

本章内容


    • MyBatis 配置
    • MyBatis Java dome

MyBatis 配置


  1. -下载MyBatis包,推荐使用maven下载
  2. -下载MySql包,推荐使用maven下载

     <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>5.1.31</version>
     </dependency>
    
     <dependency>
         <groupId>org.mybatis</groupId>
         <artifactId>mybatis</artifactId>
         <version>3.1.1</version>
     </dependency>
    

MyBatis 使用


1: 建一个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">
    <configuration>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <!-- 配置数据库连接信息 -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://localhost:3306/test" />
                    <property name="username" value="root" />
                    <property name="password" value="xxx" />
                </dataSource>
            </environment>
        </environments>

        <mappers>
            <mapper resource="com/company/userMapper.xml"/>
        </mappers>

    </configuration>

2:建立一个pojo User类


package com.company;
/**
 * Created by zteliuyw on 15/7/6.
 */

public class User {

    private int id;

    private String name;


    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;
    }
}

3:建立一个user方法对于的映射文件mapping

    <?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.company.UserMapper">

        <!--
            根据id查询得到一个user对象
         -->
        <select id="getUser" parameterType="int"
                resultType="com.company.User">
            select * from user where id=#{id}
        </select>
    </mapper>

4:建立一个映射文件mapping对应方法的类

    package com.company;

    public interface UserMapper {
        public User getUser(int id);
    }

5:使用mybatis获取数据


    public class Main {

        public static void main(String[] args) throws IOException {
            //mybatis的配置文件
            String resource = "conf.xml";
            //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
            InputStream is = Main.class.getClassLoader().getResourceAsStream(resource);
            //构建sqlSession的工厂
            SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
            //使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
            //Reader reader = Resources.getResourceAsReader(resource);
            //构建sqlSession的工厂
            //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
            //创建能执行映射文件中sql的sqlSession
            SqlSession session = sessionFactory.openSession();
            /**
             * 映射sql的标识字符串,
             * me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
             * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
             */
            String statement = "com.company.User.getUser";//映射sql的标识字符串

            UserMapper userMapper = session.getMapper(UserMapper.class);

            //执行查询返回一个唯一user对象的sql
            User user = userMapper.getUser(1);
            System.out.println(user);

            session.close();
        }

    }


输出的结果: {“id”:1,name:”liuyanwei”}

Loading Disqus comments...
Table of Contents