Mybatis——入门篇

Mybatis的简介

1、Mybatis的历史

MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁 移到了Google Code。

随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于 2013年11月迁移到Github。

iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。

iBatis提供的持久层框架 包括SQL Maps和Data Access Objects(DAO)。

2、Mybatis特性

  1. MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架
  2. MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集
  3. MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录
  4. MyBatis 是一个 半自动的ORM(Object Relation Mapping)框架

3、搭建Mybatis

①开发环境

IDE : IDEA
构建工具 : maven 3.8
MySQL版本 : MySQL 5.7
Mybatis版本 : Mybatis3.4.6

②创建Maven工程

1.打包方式 : jar
2.导入坐标

  <!--导入依赖坐标-->
    <dependencies>
        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.32</version>
        </dependency>

        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!--junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

③创建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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <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="123"/>
            </dataSource>
        </environment>
    </environments>
    
     <!--引入映射文件-->
    <mappers>
        <mapper resource="mappers/UserMapper.xml"></mapper>
    </mappers>
</configuration>

④创建Mapper接口

public interface UserMapper {
    
    
    //查询所有用户
    public List<User> findAll();

⑤创建Mybatis的映射文件

Java概念 数据库概念
属性 字段/列
对象 记录/行

1、映射文件的命名规则:表所对应的实体类的类名 + Mapper.xml

例如:
表t_user,映射的实体类名就是User,所对应的映射文UserMapper.xml

因此:

  • 一个映射文件对应一个实体类,对应一张表的操作
  • Mybatis的映射文件存放位置为:src/main/resources/mappers目录下

2、Mybatis面向接口操作,保持两个一致

  1. 映射文件的命名空间(namespace)必须与接口的全类名一致
  2. mapper接口中的方法名必须和映射文件中编写的sql标签属性id一致
<?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.mybatis.mapper.UserMapper">
	<!--resultType:
		返回结果的类型 后续会详解
-->
    <select id="findAll" resultType="com.atguigu.domain.User">
        select * from user
    </select>
</mapper>

⑥Junit测试

public class TestMybatis {
    
    
    @Test
    public void test1() throws IOException {
    
    
        //1.读取核心配置文件
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        //2.创建SqlSessionFactoryBuild对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder
                = new SqlSessionFactoryBuilder();
        //3.通过核心配置文件所对应的字节输入流创建工厂类SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
        //4.创建SqlSession对象 通过sqlSession对象所操作的sql都会自动提交
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        //5.代理模式创建UserMapper接口的代理实现类
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        List<User> users = mapper.findAll();
        System.out.println(users);

        sqlSession.close();
    }
}

说明:
SqlSession : 代表Java程序与数据库之间的会话
SqlSessionFactory : 生产SqlSession的工厂
工厂模式:如果创建某一个对象,使用的过程基本固定,那么我们就可以把创建这个对象的 相关代码封装到一个“工厂类”中,以后都使用这个工厂类来“生产”我们需要的对象

⑦加入log4j日志功能

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <param name="Encoding" value="UTF-8" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS}
%m (%F:%L) \n" />
        </layout>
    </appender>
    <logger name="java.sql">
        <level value="debug" />
    </logger>
    <logger name="org.apache.ibatis">
        <level value="info" />
    </logger>
    <root>
        <level value="debug" />
        <appender-ref ref="STDOUT" />
    </root>
</log4j:configuration>

日志的级别

FATAL(致命)>ERROR(错误)>WARN(警告)>INFO(信息)>DEBUG(调试)

从左到右打印的内容越来越详细

小结:

这一章我们介绍了Mybatis的特性以及入门使用,体会到了Mybatis的强大之处,对于初学者可以多加练习。在下一章节我们将会了解配置文件的相关配置信息。

猜你喜欢

转载自blog.csdn.net/ChengXuTeng/article/details/123988882