Mybatis——入门篇

    *   [⑥Junit测试](about:blank#Junit_128)

    *   [⑦加入log4j日志功能](about:blank#log4j_157)

*   [小结:](about:blank#_187)

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();

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值