MyBatis 配置文件
MyBatis框架核心配置
在MyBatis框架的核心配置文件中,<configuration>元素是配置文件的根元素,其他元素都要在<configuration>元素内配置。
<properties>是一个配置属性的元素,该元素通常用来将内部的配置外在化,即通过外部的配置来动态的替换内部定义的属性。例如,数据库的连接等属性,就可以通过典型的Java属性文件中的配置来替换
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=root
配置<properties... />属性
<!-- 引入数据库连接配置文件 -->
<properties resource="db.properties" />
修改配置文件中数据库连接的信息
<dataSource type="POOLED">
<!-- 数据库驱动 -->
<property name="driver" value="${jdbc.driver}" />
<!-- 连接数据库的url -->
<property name="url" value="${jdbc.url}" />
<!-- 连接数据库的用户名 -->
<property name="username" value="${jdbc.username}" />
<!-- 连接数据库的密码 -->
<property name="password" value="${jdbc.password}" />
</dataSource>
<settings>元素主要用于改变MyBatis运行时的行为,例如开启二级缓存、开启延迟加载等
<!-- 设置 -->
<settings>
<setting name="cacheEnabled" value="true" />
<setting name="lazyLoadingEnabled" value="true" />
<setting name="multipleResultSetsEnabled" value="true" />
<setting name="useColumnLabel" value="true" />
<setting name="useGeneratedKeys" value="false" />
<setting name="autoMappingBehavior" value="PARTIAL" />
...
</settings>
<typeAliases>元素用于为配置文件中的Java类型设置一个简短的名字,即设置别名。别名的设置与XML配置相关,其使用的意义在于减少全限定类名的冗余。
使用<typeAliases>元素配置别名的方法如下
<typeAliases>
<typeAlias alias="user" type="com.po.User"/>
</typeAliases>
当POJO类过多时,可以通过自动扫描包的形式自定义别名
<typeAliases>
<package name="com.itheima.po"/>
</typeAliases>
typeHandler的作用就是将预处理语句中传入的参数从javaType(Java类型)转换为jdbcType(JDBC类型),或者从数据库取出结果时将jdbcType转换为javaType。
<typeHandler>元素可以在配置文件中注册自定义的类型处理器,它的使用方式有两种
注册一个类的类型处理器
<typeHandlers>
<typeHandler handler="com.type.CustomtypeHandler" />
</typeHandlers>
注册一个包中所有的类型处理器
<typeHandlers>
<package name="com.type" />
</typeHandlers>
<environments>元素用于对环境进行配置。MyBatis的环境配置实际上就是数据源的配置,我们可以通过<environments>元素配置多种数据源,即配置多种数据库
<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>
</environments>
数据源配置
<mappers>元素用于指定MyBatis映射文件的位置,一般可以使用以下4种方法引入映射器文件
使用类路径引入
<mappers>
<mapper resource="com/mapper/UserMapper.xml"/>
</mappers>
使用本地文件路径引入
<mappers>
<mapper url="file:///D:/com/mapper/UserMapper.xml"/>
</mappers>
使用接口类引入
<mappers>
<mapper class="com.mapper.UserMapper"/>
</mappers>
使用包名引入
<mappers>
<package name="com.mapper"/>
</mappers>
映射文件
在映射文件中,<mapper>元素是映射文件的根元素,其他元素都是它的子元素
<sql>元素
<sql>元素的作用就是定义可重用的SQL代码片段,然后在其他语句中引用这一代码片段。
<sql id="customerColumns">id,username,jobs,phone</sql>
<select id="findCustomerById" parameterType="Integer" resultType="com.po.Customer">
select <include refid="customerColumns"/>
from t_customer
where id = #{id}
</select>
<resultMap>元素表示结果映射集,是MyBatis中最重要也是最强大的元素。它的主要作用是定义映射规则、级联的更新以及定义类型转化器等。
<resultMap>元素中包含了一些子元素,它的元素结构如下所示:
<resultMap type="" id="">
<constructor> <!-- 类在实例化时,用来注入结果到构造方法中-->
<idArg/> <!-- ID参数;标记结果作为ID-->
<arg/> <!-- 注入到构造方法的一个普通结果-->
</constructor>
<id/> <!-- 用于表示哪个列是主键-->
<result/> <!-- 注入到字段或JavaBean属性的普通结果-->
<association property="" /> <!-- 用于一对一关联 -->
<collection property="" /> <!-- 用于一对多关联 -->
<discriminator javaType=""> <!-- 使用结果值来决定使用哪个结果映射-->
<case value="" /> <!-- 基于某些值的结果映射 -->
</discriminator>
</resultMap>
#{}和${}区别
1:
#{} 相当于JDBC SQL语句中的占位符?(preparedStatement)
${} 相当于JDC SQL语句中的链接符合+(Statement)
2:
#{} 进行输入映射的时候,会对参数进行类型解析(如果是String类型,那么SQL语句会自动加上'')
${} 进行输入映射的时候,将参数原样输出到SQL语句中
3
#{} 如果进行简单类型(String Date 8中国基本类型的包装类) 的输入映射时,#{} 中参数名称可以任意
${} 如果进行简单类型(String Date 8中国基本类型的包装类) 的输入映射时,${} 中参数名称必须是Value
4
${} 存在SQL注入问题 使用OR 1=1 关键字将查询条件忽略
相关文章
- mybatis 配置文件全解
- JavaWeb_(Mybatis框架)MyBatis整合Spring框架
- JavaWeb_(Mybatis框架)MyBatis Generator简单入门
- JavaWeb_(Mybatis框架)主配置文件介绍_四
- MyBatis主配置文件
- ssm(Spring+Spring mvc+mybatis)Spring配置文件——applicationContext-servlet.xml
- ssm(Spring+Spring mvc+mybatis)Service层实现类——DeptServiceImpl
- ssm(Spring+Spring mvc+mybatis)Dao层实现类——DeptDaoImpl
- mybatis简单案例源码详细【注释全面】——Dao层映射文件(UserMapper.xml)【重要】
- Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
- Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案二:@Provider(8)
- mybatis generator(MyBatis的逆向工程)
- Spring Boot (八): Mybatis 增强工具 MyBatis-Plus
- MyBatis和SpringMVC的整合<mvc>标签报错分析
- 深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)
- mybatis配置文件不在resources目录下时需进行的额外配置方法
- 从头开始搭建一个mybatis+postgresql平台
- Atitit mybatis topic file list Total 300ge (9+条消息)MyBatis框架核心之(五)注解使用resultMap及多表查询 - 弱弱的猿 - CSD
- Atitit mybatis业务流程配置化管理总结 目录 1. Mybatis1 2. 流程模型常见的bpm模式1 2.1. 活动task 流程,getway流程控制(分支跳转 循环等)1 3
- Atitit mybatisutil 模块测试功能列表 1.1. mybatis读取mapper配置的sql语句 使用xml类库1 1.2. Mybatis替换参数工具类型3 Itfs pn
- 【MyBatis笔记12】MyBatis中二级缓存相关配置内容
- Spring+SpringMVC+Mybatis(开发必备技能)04、mybatis自动生成mapper_dao_model(包含工具与视频讲解) 纯绿色版本、配套使用视频,100%运行成功
- MyBatis快速入门——第四章、mybatis动态sql_if_choose_when
- springboot基于mybatis扫描jar包中的controller、service、dao、xml
- 使用Mybatis Generator自动生成Mybatis相关代码
- spring+websocket综合(springMVC+spring+MyBatis这是SSM框架和websocket集成技术)
- Mybatis在IDEA中找不到mapper映射文件
- MyBatis之Hello world(Mybatis入门)
- spring中@param和mybatis中@param使用差别
- MyBatis应用程序根据XML配置文件创建SqlSessionFactory
- MyBatis是如何加载配置文件的1
- 【MyBatis】| 使⽤MyBatis完成CRUD操作
- mybatis-plus如何配置日志信息
- Mybatis源码分析之(二)根据配置文件创建SqlSessionFactory(Configuration的创建过程)
- Mybatis-Plus之逻辑删除