5. MyBatis第一个连接mysql入门测试小程序
使用MyBatis实现以下功能:
根据用户id查询一个用户:
一:加入mybatis核心包、依赖包、数据驱动包:
二:创建映射文件User.xml与配置文件SqlMapConfig.xml:
User.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">
<!-- namespace:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->
<mapper namespace="test">
<select id="getUserById" parameterType="int" resultType="com.sea.crm.pojo.User">
select * from user where id=#{id}
</select>
</mapper>
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>
<!-- 和spring整合后 environments配置将废除 -->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理 -->
<transactionManager type="JDBC" />
<!-- 数据库连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/seamybatis?characterEncoding=utf-8" />
<property name="username" value="******" />
<property name="password" value="******" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="sqlmap/user.xml"/>
</mappers>
</configuration>
三:创建pojo类:
pojo类作为mybatis进行sql映射使用,pojo类通常与数据库表对应(数据库表和pojo这里我就省略了)
下面即可用单元测试测试程序:
package com.sea.crm.test;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
public class MybatisTest {
@Test
// 测试程序步骤:
public void testqueryUserById() {
// 1. 创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
// 2. 加载SqlMapConfig.xml配置文件
InputStream in = MybatisTest.class.getResourceAsStream("/SqlMapConfig.xml");
// 3. 创建SqlSessionFactory对象
SqlSessionFactory factory = builder.build(in);
// 4. 创建SqlSession对象
SqlSession sqlSession = factory.openSession();
// 5. 执行SqlSession对象执行查询,获取结果User
Object user = sqlSession.selectOne("getUserById", 10);
// 6. 打印结果
System.out.println(user);
// 7. 释放资源
sqlSession.close();
}
}