Mybatis基础入门案例

1. MyBatis简介

1.1mybatis的历史

    MyBatis是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation 迁移到了Google Code,随着开      发团队转投Google Code旗下, iBatis3.x 正式更名为MyBatis ,代码于2013年11月迁移到Github。

1.2什么是MyBatis

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

1.3为什么要使用mybatis

    相对于JDBC将SQL内置,mybatis可以手动编写自己想要的SQL语句,虽然核心SQL需要自己优化,但是也增加了他的灵活性

    MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集,也就是将JDBC代码进行了封装,降低了使用难度。

    相比于JDBC将SQL夹在java代码中,mybatis将SQL与代码分离,功能边界清晰,一个专注业务、一个专注数据。

    MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对          象)映射成数据库中的记录。如果有大量字段的POJO,也可以进行完美的映射。

2. MyBatis的下载

    1.想使用MyBatis就得先下载,前面说到,MyBatis与2013迁移到了GitHub,所以我们下载MyBatis需要到GitHub上进行下载。

      下载地址:https://github.com/mybatis/mybatis-3

    2.打开网页下拉,找到Download Latest的字样,点击进入找到自己的版本下载即可。

3. MyBatis的简单入门案例

使用的开发工具是IDEA,搭建maven工程

1.首先我们需要在pom.xml中导入我们所需要的依赖

<dependencies>
    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <!-- mysql驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.48</version>
    </dependency>
    <!-- mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.3</version>
    </dependency>
    <!-- junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>

2.创建mysql测试表

CREATE TABLE `test`.`test` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(45) NOT NULL,
  `email` VARCHAR(45) NOT NULL,
  `gender` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`id`));

3.创建javabean对象

package com.wei.mybatis.beans;

public class Test {
    private Integer id;
    private String name;
    private String email;
    private String gender;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "test{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", gender='" + gender + '\'' +
                '}';
    }
}

4.创建MyBatis的全局配置文件:mybatis-config.xml。里面包含数据库连接信息,引入SQL映射文件等。

<?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>
                <property name="url" value="jdbc:mysql://localhost:3306/test"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
<!--    引入SQL映射文件-->
    <mappers>
        <mapper resource="EmployeeMapper.xml"/>
    </mappers>
</configuration>

5.创建Mybatis的sql映射文件:TestMapper.xml,里面可以配置增删改查的sql语句映射

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/schema/mybatis-3-mapper.dtd">

<mapper namespace="mybatis">
    <select id="selectTest" resultType="com.wei.mybatis.beans.Test">
         select * from test where id = #{id}
    </select>
</mapper>

6.编写测试类进行测试,如果环境一切正常,我们就可以通过我们的代码获取到数据库中标的信息了。

package com.wei.mybatis.test;

import com.sun.xml.internal.ws.server.ServerRtException;
import com.wei.mybatis.beans.Employee;
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;

public class TestMybatis {
    @Test
    public void testSqlSessionFactory() throws IOException {
        String resource = "mybatis-config.xml";

        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        
        SqlSession session = sqlSessionFactory.openSession();
        
        Test test = session.selectOne("mybatis.selectTest", 1);
        
        session.close();
    }
}

7.结果:可以看到控制台已经将数据库中查询的结果封装到我们的实体类中进行输出,此时整个MyBatis框架就可以完美运行。

DEBUG 01-20 19:47:10,089 ==>  Preparing: select id,last_name lastName,email,gender from test_mybatis where id = ?;   (BaseJdbcLogger.java:143) 
DEBUG 01-20 19:47:10,144 ==> Parameters: 1(Integer)  (BaseJdbcLogger.java:143) 
DEBUG 01-20 19:47:10,169 <==      Total: 1  (BaseJdbcLogger.java:143) 
Test{id=1, name='魏鹏程', email='[email protected]', gender=1}



Process finished with exit code 0
发布了7 篇原创文章 · 获赞 1 · 访问量 150

猜你喜欢

转载自blog.csdn.net/qq_45648512/article/details/104055392