mybatis.cfg.xml配置文件详解
mybtais.cfg.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">
<!-- 整个mybtais的配置中心 -->
<configuration>
<settings>
<!-- 让log4j去记录sql日志 -->
<setting name="logImpl" value="LOG4J"/>
</settings>
<!-- <properties resource="classpath:mybatis.cfg.xml"></properties> -->
<!-- 数据源环境配置 default默认数据源的ID
environments 指mybatis可以配置多个环境 default指向默认的环境
每个SqlSessionFactory对应一个环境environment
-->
<environments default="mysql">
<!-- 环境
可以配置多个数据源 但是能使用一个
-->
<environment id="mysql">
<!-- 配置mybatis的事务管理器
type 的配置
JDBC – 这个配置直接使用JDBC 的提交和回滚功能。它依赖于从数据源获得连接来管理
事务的生命周期。
MANAGED – 这个配置基本上什么都不做。它从不提交或者回滚一个连接的事务。而是让
容器(例如:Spring 或者J2EE 应用服务器)来管理事务的生命周期
-->
<transactionManager type="JDBC"></transactionManager>
<!-- 这个环境里面的数据源
type:POOLED
这个数据源的实现缓存了JDBC 连接对象,用于避免每次创建新的数据库连接时都初始
化和进行认证,加快程序响应。并发WEB 应用通常通过这种做法来获得快速响应。
UNPOOLED:每次连接数据库时都创建新的连接【不推荐】
JNDI:使用外部的数据源 如tomcat可以配置数据源在这里使用
-->
<dataSource type="POOLED">
<!-- <property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/> -->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/0412user"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 配置映射 -->
<mappers>
<mapper resource="com/sxt/mapper/UserMapper.xml"/>
</mappers>
</configuration>
配置文件db.properties:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=521521
Mapper.xml详解
1. 相关节点和属性说明
mapper
|–namespace:命名空间 指当mytbais的API去访问crud的方法时会从某一个命名空间里面去找想应的ID对执行
insert
|-- id 唯一标记 【一般会和dao里面的接口名保持一样】
|-- parameterType 传参类型 insert(id的值,参数类型)
|-- useGeneratedKeys 是否使用自动增长【了解】
update
|-- id 唯一标记 【一般会和dao里面的接口名保持一样】
|-- parameterType 传参类型 insert(id的值,参数类型)
delete
|-- id 唯一标记 【一般会和dao里面的接口名保持一样】
|-- parameterType 传参类型 insert(id的值,参数类型)
select
|-- id 唯一标记 【一般会和dao里面的接口名保持一样】
|-- parameterType 传参类型 insert(id的值,参数类型)
|–parameterMap 当传参数类型为Map集合时要设置【和parameterType不能共存】
|–resultType 查询返回的结果的类型可以使用基本数据类型的包装类和自定义类型如Integer和 User
|-- resultMap 自定义返回的类型 [后面讲]
2. mybatis占位符的处理
1,占位符一:#{xxx}
|-- PreparedStatement预编译sql语句
|-- xxx表达式的写法
|-- 参数类型为javabean类,xxx表达式必须和javabean中属性对应的get方法名字一样
|-- 参数类型为简单类型,xxx表达式随表写,保持和参数的名字一致
2,占位符二:${xxx}
|-- Statement拼接sql语句
|-- xxx表达式的写法
|-- 参数类型为javabean类,xxx表达式必须和javabean中属性对应的get方法名字一样
|-- 参数类型为简单类型,xxx表达式执行能写${value}