MyBatis框架学习(一)

MyBatis框架学习(一)

1. 什么是MyBatis

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

MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。

Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成PO(persisent object 持久对象)并返回。

MyBatis中文官网网址是 https://mybatis.org/mybatis-3/zh/index.html,官网提供了大量的学习资源。

MyBatis框架学习(一)_第1张图片

2. MyBatis架构

从上之下依次的作用如下:

  • SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。

  • 通过mybatis环境等配置信息构造SqlSessionFactory,即会话工厂。

  • 由会话工厂创建sqlSession,即会话,操作数据库需要通过sqlSession进行。

  • mybatis底层自定义了Executor执行器接口来操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。

  • Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。

  • Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、PPOJO,Executor通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。

  • Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、PPOJO,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。

3. MyBatis开发准备

  1. 使用maven构建
<dependency> 
    <groupId>org.mybatisgroupId> 
    <artifactId>mybatisartifactId> 
    <version>3.4.6version>
dependency>

2.准备配置文件

创建MyBatis的配置文件mybatisconfig.xml和映射配置文件Mapper.xml,并将Mapper.xml加载到mybatisconfig.xml中。

3.数据库示例配置

MyBatis框架学习(一)_第2张图片

4.设置pom.xml文件

<dependencies> 
  <dependency> 
      <groupId>junitgroupId> 
      <artifactId>junitartifactId> 
      <version>4.10version> 
      <scope>testscope> 
    dependency> 
     
    <dependency> 
        <groupId>org.mybatisgroupId> 
        <artifactId>mybatisartifactId> 
        <version>3.4.6version> 
    dependency> 
     
    <dependency> 
        <groupId>mysqlgroupId> 
        <artifactId>mysql-connector-javaartifactId> 
        <version>5.1.47version> 
    dependency> 
     
    <dependency> 
        <groupId>log4jgroupId> 
        <artifactId>log4jartifactId> 
        <version>1.2.17version>
    dependency>
dependencies>

5.创建MyBatis配置文件mybatisconfig.xml

<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?characterEncoding=utf8" /> 
                <property name="username" value="root" /> 
                <property name="password" value="123456" /> 
            dataSource> 
        environment> 
    environments> 
     
    <mappers> 
        <mapper resource="userInfo.xml" /> 
    mappers>
configuration>

6.创建映射文件

在src/main/resources目录下创建映射文件,命名为usersMapper.xml,具体配置如下:



<mapper namespace="test"> 
mapper>

4. 开发示例

1.根据id查询

 

<mapper namespace="test"> 
    <select id="findUsersById" parametserType="int" resultType="cn.it.model.UsersModel"> SELECT * FROM users WHERE userid=#{userid} 
    select>
mapper>
dUsersById" parametserType="int" resultType="cn.it.model.UsersModel"> SELECT * FROM users WHERE userid=#{userid} 
    select>
mapper>

你可能感兴趣的:(java)