目录
本人学习使用的版本是mybatis-3.4.2
1.MyBttis的下载:
下载地址:Releases · mybatis/mybatis-3 · GitHub
根据个人需要下载(本人下载的是mybatis-3.4.2.zip,下载并解压mybatis-3.4.2压缩包,会得到一个名为mybatis-3.4.2的文件夹)。
2.MyBttis的包使用
文件夹下包含的文件(使用MyBatis框架,只需在应用程序中引入MyBatis的核心包和lib目录中的依赖包即可):
注:如果底层使用的是MySql数据库,那么我们还需要将MySql数据库的驱动.jar包添加到应用程序的类路径中;如果采用其他类型的数据库,则同样需要将对应类型的数据库的驱动.jar包添加到应用程序的类路径中。
3.MyBatis的工作原理
MyBatis框架在操作数据库时,大体经过了八个步骤:
- 读取MyBatis配置文件mybatis-config.xml。作为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,其主要内容是获取数据库连接;
- 加载映射文件...Mapper.xml。...Mapper.xml映射文件即SQL映射文件,该文件中配置了操作数据库的SQL语句,需要在mybatis-config.xml中加载才能运行;
- 构造会话工厂。
- 创建SqlSession对象。有会话工厂创建SqlSession对象,该对象中包含了执行SQL的所有方法;
- MyBatis底层定义了一个Executor接口来操作数据库,它会根据SqlSession传递的参数动态生成需要执行的SQL语句,同时负责查询缓存的维护;
- 通过Executor接口(负责动态SQL的生成和查询缓存的维护)将MappedStatement对象进行解析,sql参数转化、动态sql拼接,生成jdbc Statement对象;
- 输入参数映射。
- 输出参数映射。
5.配置文件
- MyBatis的核心配置文件mybatis-config.xml。配置分为两个步骤:
- 配置环境
- 配置Mapper的位置
<?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>
<environments default="development">
<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>
上述文件的配置代码不需要全部手写,可在MyBatis使用手册中Getting Started的2.1.2小节查询
- 加载映射文件...Mapper.xml。文件中包含了MyBatis的配置约束和<mapper>元素中需要编写的映射文件。
<?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">
<mapper namespace="org.mybatis.example.BlogMapper">
//namespace属性指定了唯一的命名空间,通常会设置成“包名+SQL映射文件名”的形式
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
可在MyBatis使用手册中Getting Started的2.1.5Exploring Mapped SQL Statements小节查询
- 由于MyBatis默认使用log4j输出日志信息,如果要查看控制台的输出SQL语句就需要在相关路径下(如ecplice中项目的classpath路径下)配置其日志文件 log4j.properties 。
# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example=DEBUG
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
有些查询可以返回巨大的结果集。在这种情况下,您可能希望看到SQL语句但不是结果。为此,SQL语句记录在调试级别(在JDK中很好)日志记录)和跟踪级别的结果(在JDK日志记录中更精细),因此如果您想查看语句而不是结果,将org.mybatis.example报下的级别设置为调试。
log4j.logger.org.mybatis.example=DEBUG
上述文件的配置代码也不需要全部手写,可在MyBatis使用手册中logging小节查询