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&characterEncoding=UTF-8&serverTimezone=UTC&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的主要内容,如果未能解决你的问题,请参考以下文章