MyBatisMyBatis入门

  Mybatis通过xml或注解的方法将执行之各种statement(statement、preparedStatemnt、CallableStatement)配置起,并经java对象与statement中之sql进行映射生成最终实施之sql语句,最后由于mybatis框架执行sql并拿结果映射成java对象并返回。

  使用MyBatis的步骤:

(1)引入所要的jar包 mybatis-3.4.4.jar 和 mysql-connector-java-5.0.8-bin.jar(mySQl的JDBC操作包,其他数据库请自行转移)

  注意mybatis的jar包尽量引用3.4上述之本子,如果采用的凡3.2的本的话,在后面使用mybatis创建公用mapper的当儿会并发兼容性问题。

(2)创建mybatis-config.xml。(mybatis-config.xml
是MyBatis的大局配置文件
,在拖欠公文被配备:数据源,事务,等MyBatis运行的环境.)

  创建步骤:在新建的项目之上之src下创办一个XML
File文件,文件内容如下

<?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>        
    <!-- 环境:配置mybatis的环境  -->
    <environments default="development">    <!-- 可以使用多个环境变量,切换时只需修改对应default的属性为该环境变量的id即可 -->
        <!-- 环境变量:可以配置多个环境变量,比如使用多数据源时,就需要配置多个环境变量 -->
        <environment id="development">
            <!-- 事务管理 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 数据源 -->
            <dataSource type="POOLED">  <!-- 注意贴过去的代码这一行会报错,网上说是复制过去的是utf-8的bom格式的,而xml支持的是不带bom格式的,这种这个部分自己手打一下,自动补全代码即可解决 -->
                <property name="username" value="用户名" />
                <property name="url" value="jdbc:mysql://localhost:3306/数据库名" />
                <property name="password" value="用户密码" />
                <property name="driver" value="com.mysql.jdbc.Driver" />  <!-- 定义驱动连接,根据所使用的数据库的不同进行更换,作者使用的是mySql -->
            </dataSource>
        </environment>
    </environments>    
</configuration>

这么我们便简单的布置了一个mybatis的config配置文件了,这同一步就是一定给我们平常编写JDBC连接数据库的操作。

(3)接下给咱们呢它成立一个表用来测试

  首先,我们事先成立一个学童的数据库(Student),里面存放一摆放年级表(grade),sql语句如下:

CREATE DATABASE `student`;

USE `student`;

CREATE TABLE `grade` (
  `gradeName` VARCHAR(20) DEFAULT NULL,
  `gradeId` INT(11) DEFAULT NULL
) ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT  INTO `grade`(`gradeName`,`gradeId`) VALUES ('一年级',1),('二年级',2),('三年级',3);

MyBatis 1

(4)在java代码中之src文件下树立一个entity的管教,里面建立一个Grade的接近

package entity;

public class Grade {
    private int gradeId;        //与表中的字段gradeId对应
    private String gradeName;    //与表中的字段gradeName对应
    public Grade() {
        super();
    }
    public int getGradeId() {
        return gradeId;
    }
    public void setGradeId(int gradeId) {
        this.gradeId = gradeId;
    }
    public String getGradeName() {
        return gradeName;
    }
    public void setGradeName(String gradeName) {
        this.gradeName = gradeName;
    }
}

(5)好了,有了实体类后,我们虽该修实体类的接口了

  于src下新建一个dao的承保,里面新建一个GradeDao的接口,里面定义了点滴单道的接口,代码如下:

package dao;

import entity.Grade;

public interface GradeDao {

    /**
     * 查询所有年级
     * @return
     */
    Grade queryAllGrade();

    /**
     * 根据年级编号查询年级
     * @param gradeId
     * @return
     */
    Grade queryGradeByID(int gradeId);
}

(6)建立好接口后,在建立接口的实现类似之前,我们先定义一下SQL语句了,目前,我们先行在xml文件中编

  首先,在src文件下新建一个mapper包,里面新建一个GradeMapper.xml,文件称以及包名都好随便取,但尽量让每个实体类编排不同之xml文件,避免查找的时节发出乱

  GradeMapper.xml文件内容如下:

<?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="dao.GradeDao">            <!-- 设置工作空间为dao.GradeDao这个类  -->
  <!-- 查询所有年级 -->
      <select id="queryAllGrade" resultType="entity.Grade">    <!-- resultType为返回值类型 -->
          select * from grade
      </select>
      <!-- 根据年级编号查询年级 -->
      <select id="queryGradeByID" resultType="entity.Grade" parameterType="int">  <!-- parameterType为传入参数类型 -->
          select * from grade where gradeId = #{gradeId}        <!-- #{gradeId}为占位符  -->
      </select>
  </mapper>

起好GradeMapper.xml后,我们尚亟需再做相同件事,那就算是于config文件中失投到此文件,找到我们刚刚编写的mybatis-config.xml文件,

在<configuration>标签的中</environments>的下方添加一个映射关系,代码如下

<mappers>
    <mapper resource="mapper/GradeMapper.xml"/>    <!-- 包名.xml文件名 -->
</mappers> 

 

(7)好了,SQL语句写好后,接下去就主要了——怎么调用它

  在src下建一个common的管,里面存一个SqlSessionUtil的接近,类里我们定义一个getSession的章程,代码如下

 

  于src包下建一个dao.Impl的保险,里面上加一个GradeDaoImpl的切近,代码如下

 

 

 

 

网站地图xml地图