mybatis文件通常命名为mybatis-config.xml
我对xml文件的理解就没太多
首先标签成对出现,其次是标签内属性有很多,我也知识记一下常用的部分。
DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="JDBC.properties">
properties>
<typeAliases>
<package name="com.atguigu.mybatis.pojo"/>
typeAliases>
<environments default="development">
<environment id="development">
<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>
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/ssm?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
dataSource>
environment>
environments>
<mappers>
<package name="com.atguigu.mapper"/>
mappers>
configuration>
mybatis通过接口方法与映射文件相互配合完成sql语句的。
我们看一下mapper.xml文件框架
首先要注意的就是标签下的namespace属性
namespace表示当前mapper.xml文件所对应的接口文件。
也就是说你需要两个文件,并且这两个文件相互映射
比如接口文件名EmpMapper.java则就应该有一个EmpMapper.xml
DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.mapper.EmpMapper">
mapper>
创建工具类获取sqlsession对象
第一次听别人配置这个东西时,说不常用。确实啊,写一个项目大概只用写一次,而且mybatis网站上还给出了实例。我到现在都没记住。
package com.atguigu.utils;
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 java.io.IOException;
import java.io.InputStream;
public class SqlSessionUtil {
public static SqlSession getSqlSession(){
SqlSession sqlSession=null;
String resource = "mybatis-config.xml";//配置文件名
InputStream inputStream = null;//读取配置文件
try {
inputStream = Resources.getResourceAsStream(resource);//读取配置文件,返回输入流
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//根据输入流返回sqlsessionfactory对象
sqlSession = sqlSessionFactory.openSession(true);//获取sqlsession对象
return sqlSession;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
至于sqlsession对象是用来做什么的,需要大家取深究了。接下来可能会做resultMap的解读。