一 XML核心文件配置
XML 配置文件(configuration XML)中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务作用域和控制方式的事务管理器(TransactionManager)。
配置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">
然后配置XML的智能提示,在浏览器中输入http://mybatis.org/dtd/mybatis-3-config.dtd,下载dtd文件;在eclipse中Window>Preferences>XML>XMl Catalog,选择User Specified Entries,点击Add,在Location中,点击file system选择下载好的dtd所在的位置;Key type选择URI,Key中输入上面的网址http://mybatis.org/dtd/mybatis-3-config.dtd,OK保存,然后重启XML文档,看看是否可以智能提示。
接下来配置核心文件,在头部代码后插入
<configuration>
<!--配置默认的环境信息,default中指定了那个数据库生效--> <environments default="development">
<!--配置数据库的连接信息,id唯一指示这个数据库,可以有多个environment标签,表明有多个数据库,与environments标签的default配合使用--> <environment id="development">
<!--配置事务管理器--> <transactionManager type="JDBC"/>
<!--配置连接池信息--> <dataSource type="POOLED">
<!--加载驱动--> <property name="driver" value="${driver}"/>
<!--数据库连接信息--> <property name="url" value="${url}"/>
<!--用户名和密码--> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments>
<!--加载映射文件--> <mappers> <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> </configuration>
要注意 XML 头部的声明,用来验证 XML 文档正确性。environment 元素体中包含了事务管理和连接池的配置。mappers 元素则是包含一组 mapper 映射器(这些 mapper 的 XML 文件包含了 SQL 代码和映射定义信息)。
property标签中的属性值可外部配置且可动态替换,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递。例如:
在配置文件中的environs标签之前添加如下代码:
<properties resource="org/mybatis/example/config.properties"> <property name="username" value="root"/> <property name="password" value="F2Fa3!33TYyg"/> </properties>
注:鼠标光标停留在configuration标签上,注释中有:
Content Model : (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,
objectWrapperFactory?, plugins?, environments?, databaseIdProvider?, mappers?)
表明configuration标签含有上述子标签,且子标签出现的顺序严格遵循注释中排列顺序。
新建一个config.properties文件,内容:
driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/web
配置文件中配置数据库连接信息
<dataSource type="POOLED"> <!--加载驱动 --> <property name="driver" value="${driver}" /> <!--数据库连接信息 --> <property name="url" value="${url}" /> <!--用户名和密码 --> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource>
这个例子中的 username 和 password 将会由 properties 元素中设置的相应值来替换。 driver 和 url 属性将会由 config.properties 文件中对应的值来替换。这样就为配置提供了诸多灵活选择。
这样做有一些好处,比如解决数据库的中文乱码问题时,在url后面加上?useUnicode=true&characterEncoding=UTF-8
但是XML中不识别&、<等运算符,需要使用对应的转义字符& < 但是在属性文件中就可以不用理会这个问题。
扩展:在url后加上allowMultQueries=true,可以一次性执行多条sql语句,否则会报错。
二 配置映射文件
映射文件的配置跟XML核心文件类似,先引入头部声明
<?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">
配置智能提示的方法与上述XML核心文件的智能提示配置方法相同。配置好后,在提示出的<mapper></mapper>标签中即可定制化SQL语句。
最后要在XML核心文件中的mapper标签中指定映射文件的路径,才能使映射文件生效。