一、基本配置文件 Mybatis-config.xml
1、开头部分
<?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">
2、properties
<!--定义这个性能后,整个文档都可以使用设定的属性-->
<properties resource="db.properties"/>
<!--配置的属性信息在通过resource指定的文件去寻找。需要自己创建一个db.properties文件-->
3、settings
<settings>
<!--驼峰转换 类的属性名 —— 表字段-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!--日志配置
value可以用为STDOUT_LOGGING,LOG4J (特有的jar包)等
日志有级别,级别更高才能输出:
OFF>FATAL>ERROR>WARN>INFO>DEBUG>TRACE>ALL
-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
<!--反填机制-->
<setting name="useGeneratedKeys" value="true"/>
</settings>
4、typeAliases(可有可没有)
<!--取别名 前面长的,可以用后面短的来代替-->
<typeAliases>
<!--<typeAlias type="com.qq.model.Book" alias="Book"></typeAlias>-->
<!--可以直接用包,类名就为别名-->
<package name="com.qq.model"/>
</typeAliases>
5、environment
<!--需要使用哪个环境,默认就是哪个环境-->
<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/shop?"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
6、mappers
<!--映射文件用来存储sql语句,mappers的位置在最后,需要写在环境的后面-->
<!--多种书写方式-->
<mappers>
<!--法一,连接xml文件-->
<!--<mapper resource="com/qq/mapper/BookMapper.xml"></mapper>-->
<!--法二,连接接口类-->
<!--<mapper class="com.qq.mapper.BookMapper"></mapper>-->
<!--法三,连接磁盘路径的xml文件 放的是xml文件-->
<!-- <mapper url="file:///D:/progam/studyMybatis/src/com/qq/mapper/BookMapper.xml"></mapper>-->
<!--法四 包里面所有的文件都会进行管理,文件夹里面必须有接口-->
<package name="com.qq.mapper"/>
</mappers>
- 其中法一需要创建一个专门存储sql语句的xml文件
- 法二需要创建一个接口,里面的抽象方法对应xml文件的sql语句。一条sql语句对应一个抽象方法。常采用法二,本代码采用法二
- 法四是最常用的方法,一般推荐使用法四,这是因为可能不止一个接口。
二、映射文件 xxxMapper.xml
1、这个文件中存储的是sql语句
2、开头部分 需要注意与基本配置文件的区别
<?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">
3、mapper
<mapper namespace="com.qq.mapper.BookMapper">
- 其中namespace的位置可以为该xml文件的位置
4、sql语句
- 可以根据增删改查选择不同的标签
例如:
<!--resultType:输出结果的类型
parameterType:传入参数的类型
parameterType能够传入的参数需要参考mybatis手册《typeAliases》
#{}表示传入参数-->
<select id="selectOne" resultType="com.qq.model.Book" parameterType="_int">
select * from book where id=#{id}
</select>
<!--useGeneratedKeys="true"(可以在基础配置文件的setting中统一执行)+ keyProperty="id" 用于反填,将数据库中自增值反传到java中 -->
<insert id="insertOne" parameterType="com.qq.model.Book" keyProperty="id">
insert into book(name,author,price) values (#{name},#{author},#{price})
</insert>
- resultType:输出结果的类型
- parameterType:传入参数的类型
- useGeneratedKeys="true"(可以在基础配置文件的setting中统一执行)+ keyProperty="id" 用于反填,将数据库中自增值反传到java中