MyBatis2

Posted lnboxue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis2相关的知识,希望对你有一定的参考价值。

一、创建数据库

1、创建mybatis测试库及测试表

技术图片

2、测试表内容

技术图片

3、测试表中添加测试内容

技术图片

二、准备资源

1、准备MyBatis的资源

技术图片

mybatis-3.2.7.jar 主依赖包,提供了mybatis的核心工具

mybatis-3.2.1.pdf 帮助文档

lib 其他依赖,如日志依赖等

2、准备数据库驱动依赖及junit依赖

技术图片

三、创建测试项目

1、创建测试项目

file-new-java project

技术图片

2、引入MyBatis依赖驱动

选择项目右单击---properties---Java build path 

技术图片

单击3按钮,选择mybatis的主依赖文件和lib下的其他依赖文件

技术图片

引入依赖

技术图片

另外,还需要引入junit依赖和mysql数据库的依赖

技术图片

单击OK完成

3、创建包及映射类

技术图片

4、映射类里的内容

映射类是映射数据库中表的,类名与表名一致,类属性名与表列名一致,类属性类型与表列数据类型一致。也称为实体类、po对象

package com.boxue.mybatis.entity;

import java.sql.Date;

public class Userinfo {
private int id;
private String username;
private String sex;
private Date birthday;
private String address;
//提供get、set、toString方法
}

5、在src同级创建config文件夹

技术图片

6、在config文件夹下创建sqlmap文件夹及映射文件

sqlmap文件夹用于存放映射文件

映射文件是执行sql语句的配置文件

技术图片

7、UserinfoMapper.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="test">
  <select id="findUserById" parameterType="int" resultType="com.boxue.mybatis.entity.Userinfo">
    select * from userinfo where id=#{id}
  </select>
</mapper>

解释:

(1)、<mapper></mapper>映射文件根标记,所有功能都写到该标记里

namespace属性:命名空间,是映射文件的唯一标识。如有多个映射文件,通过该值区分调用

该标记中可以根据要执行的sql调用对应的标记,在标记中编写对应的sql语句
如:查询<select> 修改<update> 

(2)、标记中常用的属性有3种

id:唯一标识
resultTpye:输出映射
parameterType:输入映射
输出映射、输入映射主要用于传递数据及规范输出和输入的数据类型

(3)、#{id}

#{}代表sql语句的一个占位符

id是接收的参数

8、在config文件夹下创建Mybatis的主配置文件

文件名可以自定义

技术图片

9、SqlMapConfig.xml文件的配置内容

建议参考帮助文档进行配置

<?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.cj.jdbc.Driver "/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatisdemo?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC&amp;useSSL=false"/>
        <property name="username" value="root"/>
        <property name="password" value="999999"/>
      </dataSource>
    </environment>
  </environments>

  <!-- 用于配置映射文件的标记 -->
  <mappers>
    <mapper resource="sqlmap/UserinfoMapper.xml"/>
  </mappers>

</configuration>

解释:

<!DOCTYPE:文档约束

<configuration>配置文件根标记,其他配置标记都写到该标记里

<environments default="development">连接数据库信息配置标记组, default属性是根据值选择哪一组配置

<environment id="development">连接数据库的配置项,id属性是唯一标识,用于在上一级的default中调用,可以有多组该标记,但不能嵌套,id值不能重复

<transactionManager type="JDBC"/>事务方式

<dataSource type="POOLED">数据库的资源信息

<property name="" value=""/>记录数据库资源信息的内容,name是信息描述,value是信息值

<mappers>配置映射文件组标记

<mapper>配置映射文件标记,resourec是映射文件地址

10、src下创建测试包及测试类

技术图片

11、MyBatisFirst.java类里的内容

package com.boxue.mybatis.first;

import java.io.IOException;
import java.io.InputStream;

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 com.boxue.mybatis.entity.Userinfo;

/*
* 1、连接主配置文件
* 2、根据主配置文件创建工厂对象SqlSessionFactory
* 3、根据工厂对象调用sqlSession会话
* 4、根据会话调用映射文件标记
* 5、传入数据,执行sql,返回数据
* */
public class MyBatisFirst {
  //根据ID查询用户信息
  @Test//该注解来自junit包,用于构建启动主线程
  public void findUserByIdTest() throws IOException{
    //1、连接主配置文件
    String resource="SqlMapConfig.xml";
    InputStream inputStream =
      Resources.getResourceAsStream(resource);
    //2、根据主配置文件创建工厂对象SqlSessionFactory
    SqlSessionFactory sqlSessionFactory =
      new SqlSessionFactoryBuilder().build(inputStream);
    //3、根据工厂对象调用sqlSession会话
    SqlSession sqlSession =
      sqlSessionFactory.openSession();
    //4、根据会话调用映射文件标记
    //selectOne方法查询结果集只有一行的数据
    //参数1:调用哪一个映射文件及标记
    //参数2:向输入映射传的值
    //返回值是输出映射对应的类型
    Userinfo u =
      sqlSession.selectOne("test.findUserById",2);
    System.out.println(u);
    //释放资源
    sqlSession.close();
  }
}

12、使用junit测试运行

在类中右单击---Run As ---1JUnit Test

13、查看junit的控制台

技术图片

14、console控制台出现数据库的信息,测试成功

技术图片

以上是关于MyBatis2的主要内容,如果未能解决你的问题,请参考以下文章