MyBatis3 的全局配置文件 : Setting -官方文档
笔记要点
出错分析
[Intellij idea配置外部DTD文件] 设置步骤: (同Eclipse中的Catalog设置 )
File-->Setting-->搜索DTDs -->点击上方的External Schemas and DTDs -->右侧的加号,找到具体的URI地址添加即可!
配置的全局文件文件信息:
mybatis-config.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"> <configuration> <!-- 1.mybatis可以使用properties来引入外部的properties配置文件的内容 resource,引入类路径下的资源 url:引入网络路径或者磁盘路径下的资源 --> <properties resource="dbconfig.properties"></properties> <!-- 2.settings包含很多重要的设置项; setting:用来设置每一个设置项,name:设置名,value:设置项取值; 如:mapUnderscoreToCamelCase 是否开启自动驼峰命名规则(camel case)映射, 即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。取值:true | false,默认:False --> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <!--3.typeAliases : 别名处理器,可以为我们的java类的类型起别名 --> <typeAliases> <!--typeAliases ; 为我们的java类的类型起别名;(别名默认不区分大小写 ) type: 指定要起别名的类型全类名; 默认别名就是类名小写:employee; alias: 指定新的别名;(若不指定,则为最省的别名!) --> <!-- <typeAlias type="com.bean.Employee" alias="emp"/> --> <!-- package:为某个路径下的bean类,全部批量起别名; name: 指定包名(为当前包以及下面的所有的子包都起一个子类别名! 在批量起别名的时候,可能会存在重复的类名.这时在包下的类前面: 使用@Alias强制重新为类重新起个别名; --> <package name="com.bean"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!--将我们写好的sql映射文件{EmployeeMapper.xml}, 一定要注册到本全局配置文件{mybatis-config.xml}中--> <mappers> <mapper resource="EmployeeMapper.xml"/> </mappers> </configuration>
工程组织:
具体的sql映射文件和类文件更改如下:
EmployeeMapper.xml
Employee Bean:
测试结果(仅显示最后的批量,并且bean有别名的那个!!)
DEBUG 11-27 15:23:58,050 ==> Preparing: select * from tbl_employee where id = ? (BaseJdbcLogger.java:145) DEBUG 11-27 15:23:58,069 ==> Parameters: 1(Integer) (BaseJdbcLogger.java:145) DEBUG 11-27 15:23:58,080 <== Total: 1 (BaseJdbcLogger.java:145) mapper.getClass(): class com.sun.proxy.$Proxy5 Employee{id=1, lastname='tom', email='598@qq.com', gender='0'}