全局(核心)配置文件
mybatis-config.xml
- 该配置文件没有名称命名的要求
- 在全局配置文件中引入 DTD约束
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
- 具体配置如下(mybatis的全局配置文件约束的元素节点的顺序,顺序不对会报错)
<?xml version="1.0" encoding="UTF-8"?> <!-- 配置mybatis 的全局变量 --> <!-- 引入 xml的dtd约束 --> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 导入properties文件 --> <properties resource="db.properties"/> <!-- 给 mybatis 添加 log4j日志的功能 --> <settings> <setting name="logImpl" value="LOG4J"/> </settings> <!-- environments 标签的属性 default 引用 environment的id,表示使用这个环境配置 --> <environments default="defa"> <!-- 声明环境,可声明多个环境,用id区分 --> <environment id="defa"> <!-- 声明使用的事务为 jdbc --> <transactionManager type="JDBC"></transactionManager> <!-- 配置数据库所需参数 --> <dataSource type="POOLED"> <property name="driver" value="${dirver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <!-- 引入mapper.xml 资源方式 --> <mappers> <!-- 使用相对于类路径的资源引用 --> <mapper resource="com/mapper/FlowerMapper.xml"/> <!-- 使用完全限定资源定位符(URL)不常用 --> <mapper url=""/> <!-- 接口绑定方式(处理一个接口),前提是配置文件名称要和接口一致,并且在一个包下 --> <mapper class="org.mybatis.builder.AuthorMappe"/> <!-- 接口绑定方式(和上面功能一样,但是可以处理多个接口), 将此目录包下的所有的接口 全部注册为映射器,前提是配置文件名称要和接口一致,并且在一个包下 --> <package name="org.mybatis.builder" /> </mappers> </configuration>
mapper.xml 映射文件配置
- 该配置文件主要用于 SQL 语句的编写,是使用 mybatis 的核心
常用操作
- 增 <insert>标签
- 删 <delete>
- 改 <insert>
- 查 <select>标签
标签属性
- id:标签的名称,若使用接口绑定方式,id 必须是接口方法所在类的全限定类名+接口方法名
- parameterType:可以控制参数类型
- resultType:返回值类型
SQL 查询的结果是 基本数据类型或者是与数据库字段对应的Javabean时,才能获取返回的结果 - resultMap:当 SQL 查询的结果 需要赋值给多个参数时,或一个Javabean 无法对应 数据库的字段时
使用 resultMap 将 SQL查询的结果自定义赋值。并且可以在 resultMap 中再次调用 一个查询
在核心配置文件中引入
<mappers> <mapper resource="com/mapper/abc.xml"/> </mappers>
<?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="a.b"> <select id="selBookALl" resultType="com.pojo.Books"> select * from books </select> </mapper>
@Test public void test() throws IOException { InputStream resource = Resources.getResourceAsStream("mybatis_config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resource); SqlSession sqlSession = sqlSessionFactory.openSession(); List<Object> list = sqlSession.selectList("a.b.selBookALl"); System.out.println(list); }