MyBatis的基本使用
案例用到的是MyBatis3.2和MySql5.1
1.导包
2.配置config.xml文件 config.xml是MyBatis的总配置文件
config.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.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/staff"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/chinasoft/mapping/userMapper.xml"/>
</mappers>
</configuration>
3.创建对应的SQL语句配置文件
这里以userMapper.xml为例,名称可以自定义,一般在项目中新建一个包,统一存放这些SQL配置文件
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">
<!--
操作user表的sql映射文件
-->
<!-- namespace一般采用 包名+sql映射文件来命名 确保名称的唯一性 -->
<mapper namespace="com.chinasoft.mapping.userMapper">
<select id="getUser" parameterType="String"
resultType="com.chinasoft.domain.User">
select * from tb_test where name = #{name}
</select>
</mapper>
4.调用MyBatis并测试
Test.java
package com.chinasoft.test;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.chinasoft.domain.User;
public class Test {
public static void main(String[] args) {
//mybatis的配置文件
String resource = "config.xml";
//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);
//构建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
//Reader reader = Resources.getResourceAsReader(resource);
//构建sqlSession的工厂
//SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//创建能执行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession();
/**
* 映射sql的标识字符串,
* me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
* getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
*/
String statement = "com.chinasoft.mapping.userMapper.getUser";//映射sql的标识字符串
//执行查询返回一个唯一user对象的sql
User user = session.selectOne(statement, "admin");
System.out.println(user);
}
}
最终的运行结果为: