使用mybatis的好处请自行百度,废话不多说直接上代码。
1.先看一张mybatis的运行流程图
2.代码结构
3.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>
<!-- 引入外部资源配置文件 -->
<properties resource="jdbc.properties" />
<settings>
<!-- 日志输出模式logImpl为LOG4J -->
<setting name="logImpl" value="LOG4J" />
</settings>
<!-- 配置环境,制定数据库连接信息 和Spring整合后environments配置废除-->
<environments default="development">
<environment id="development">
<!-- 使用JDBC事务管理 -->
<transactionManager type="JDBC" />
<!-- 数据库连接池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="sqlmapper/UserMapper.xml"/>
</mappers>
</configuration>
4、UserMapper.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="user">
<!-- 根据id查询用户 -->
<select id="queryUserById" parameterType="long" resultType="com.aruisi.mybatis.dto.UserDTO">
SELECT * FROM `user` WHERE id=#{id}
</select>
</mapper>
5、测试代码
package com.aruisi.mybatis.test;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.aruisi.mybatis.dto.UserDTO;
public class MybatisTest {
public static void main(String[] args) {
/**
* java 7增强了try语句的功能,圆括号可以声明、初始化一个或多个资源(必须在程序结束时显示关闭的资源)
* try语句在该语句结束时会自动关闭这些资源
*/
try (
//读取配置文件信息
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
//参数为true,设置事务是自动提交
SqlSession sqlSession = new SqlSessionFactoryBuilder().build(reader).openSession(true);
){
UserDTO user = sqlSession.selectOne("user.queryUserById", 1L);
System.out.println("============="+user.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
代码下载