■dtd约束
- <!DOCTYPE configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
为了编写简单,在我们写标签时会有代码提示,所以这个约束很有必要,一般联网情况下,我们只要写上上面代码的最后一行即可。
■properties
这个标签主要是把我们在主配置文件中,关于数据库连接的部分配置抽离出来,通过配置文件的方式进行配置,当然在SSM整合中,这一项是交给Spring帮我们完成的,现在已经很少用到了。
-
编写配置文件
- 创建一个配置文件dbconfig.properties
- 写入一下配置信息
- jdbc.driver=com.mysql.jdbc.Driver
- jdbcjdbc.url=jdbc:mysql://localhost:3306/mybatis_learn
- jdbc.username=root
- jdbc.password=*******
2.在总配置文件中引入这个文件
<properties resource="dbconfig.properties"/>
3.将dataSource标签里dbconfig.properties的各项值还原
- <property name="driver" value="${jdbc.driver}"/>
- <property name="url" value="${jdbc.url}"/>
- <property name="username" value="${jdbc.username}"/>
- <property name="password" value="${jdbc.password}"/>
■settings
settings是一个庞大而重要的标签,它可以改变Mybaits运行时的行为,推荐大家看看官方文档
http://www.mybatis.org/mybatis-3/zh/configuration.html#settings
我会在之后的教程里逐渐给大家解释,这里我就介绍一个比较常用的选项,作为例子。
设置名:mapUnderscoreToCamelCase
描述: 是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。
有效值:true | false
默认值:False
这就是下划线映射为驼峰命名的策略,也是我们上一章如果开启这个策略,lastName在数据库中将会映射为last_name,我们也就不必要去在sql语句中编写别名了
■typeAliases
这是别名处理器,我们在上一章中编写mapper.xml是,resultType填写的是JavaBean的包全限定名,如果我们每次添加一个sql查询,在返回类型上都写这种全限定名,就会很麻烦,也不容易读,因此有了这个标签
- <typeAliases>
- <typeAlias type="com.figsprite.bean.Employee" />
- </typeAliases>
如果我们这样书写,默认的别名会是包名首字母小写,也就是employee,当然我们也可以通过typeAlias中的alias属性指定别名
- <typeAliases>
- <typeAlias type="com.figsprite.bean.Employee" alias="emp"/>
- </typeAliases>
通过这种方式,我们可以看到,每次为类起个别名都要一个typeAlias标签,如果我们JavaBean里有很多类,该如何快速的一次性起这些标签呢?我们需要用到package标签
- <typeAliases>
- <package name="com.figsprite.bean"/>
- </typeAliases>
这种方法所提供的别名是默认别名(即字母小写,其实别名不区分大小写= =),当然这种方法也有可能出现小问题,如果bean包下有个子包里面也有Employee类,那么Mybatis也会给他起一个相同别名,这样运行起来就有可能报错,这时我们就可以使用注解的方式,在JavaBean里使用@Alisa("emp")注解,起别名,MyBatis给我们起好了常用的几个包和类型的别名。我们起别名不能和这些冲突,其实建议我们使用全限定名的方式,这样容易定位类。