文章目录
注:【网页版】右上方的悬浮框( 有目录索引 )
此遍文章中版本号有所差别,仅为示例参考
下一篇章:Myeclipse 中 Mybatis 框架,测试类升级及 mybatis-config.xml 核心文件配置
一、下载并配置 jar 包
- jar 包放置在 WebRoot —— WEB-INF —— lib 下
1-1】下载
jar 包 | 说明 |
---|---|
mybatis-3.2.2.jar | 位于 mybatis-3.5.1 下。mybatis-3.5.1 可以至 github 中下载 |
log4j-1.2.16.jar | 位于 mybatis-3.5.1 下 lib 文件夹中 |
mysql-connector-java-5.1.0-bin.jar | 可以至 MySQL 官网 下载 |
github
选择 mybatis -3 进入 releases 查看历史版本。点击 Assets 折叠面板中的下载连接。
下载第一个就好了。其它的是不同压缩版本的源码
此外还需要数据库连接驱动包
进入官网,选择 网页下方的 MySQL Community (GPL) Downloads »
这里不仅可以下载驱动包,还可以下载数据库服务器 网址直达
我们要的是 java 驱动包,所以选择 Connector/J 然后再点击 Looking for previous GA versions? 选择所需版本进行下载
1-2】配置(可跳过)
项目右键 选择 Build Path —— Configure Build Path…
如果你有在下载 MyBatis 时,下载源码的话。你可以在此鼠标右键进入属性。这样就可以在工程中看到源码
在进行编写时先创建好整体构架
项目右键创建资源包:resources、test
二、编写 ***.properties 配置文件
- 位于 新建的 resources 资源包下
2-1】database.properties
# 连接数据库 驱动
driver=com.mysql.jdbc.Driver
# 连接数据库 URL、?后面是为了防止数据库操作时出现乱码
url=jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&characterEncoding=utf-8
# 连接数据库 密码
user=root
# 连接数据库 用户名
password=root
2-2】log4j.properties
log4j.rootLogger=DEBUG,CONSOLE,file
log4j.logger.cn.smbms.dao=debug
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug
log4j.logger.java.sql.ResultSet=debug
log4j.logger.org.tuckey.web.filters.urlrewrite.UrlRewriteFilter=debug
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=error
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= [%p] %d %c - %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=yyyy-MM-dd
log4j.appender.file.File=log.log
log4j.appender.file.Append=true
log4j.appender.file.Threshold=error
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n
log4j.logger.com.opensymphony.xwork2=error
三、userMapper.xml 配置
- 先在 src 下建立 com.debj.mapper.UserMapper.java 这个接口
package com.debj.mapper;
public interface UserMapper {
/**
* 返回总消息条数
* @return Long
*/
public Long count();
}
- 在下载的 mybatis-3.5.1 中有 mybatis-3.5.1.pdf 【官方文档】右上角页码为 4 的页面中有userMapper.xml 文件基本配置信息
- 位于 —— 新建的 resources / static 文件夹下
<?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">
<!-- Ctrl + 左键,点击 com.debj.mapper.UserMapper 可以成功跳转,则此行代码块成功 -->
<mapper namespace="com.debj.mapper.UserMapper">
<!-- 查询用户表记录数 -->
<select id="count" resultType="int">
select count(1) as count from smbms_user
</select>
</mapper>
四、mybatis-config.xml
- 【官方文档】右上角显示 第3页有 mybatis-config.xml 基本配置信息
- 之所以写在 ***Mapper.xml 之后是 为了防止在 此 xml 中遗忘配置 mapper
- 位于 resources 资源包下
<?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">
<!-- 通过这个配置文件完成mybatis与数据库的连接 -->
<configuration>
<!-- 引入 database.properties 文件-->
<properties resource="database.properties"/>
<!-- 配置mybatis的log实现为LOG4J -->
<settings>
<setting name="logImpl" value="LOG4J" />
</settings>
<environments default="development">
<environment id="development">
<!--配置事务管理,采用JDBC的事务管理 -->
<transactionManager type="JDBC"></transactionManager>
<!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 将mapper文件加入到配置文件中 -->
<mappers>
<!-- Ctrl + 左键,点击 static/userMapper.xml 可以成功跳转,则此行代码块成功 -->
<mapper resource="static/userMapper.xml"/>
</mappers>
</configuration>
五、xml 文件无提示,手工引入 dtd 文件<示例>(可跳过)
mybatis-3.5.1.jar 在 压缩软件 中打开以下目录【 mybatis-3.5.1.jar\org\apache\ibatis\builder\xml 】,需要2个 dtd 文件。放置位置根据个人喜好
复制选中文本
选择 window - 属性。
我这边未在工作空间中选择,在磁盘的某个位置中选择的文件
Key:即是之前复制的内容【 -//mybatis.org//DTD Config 3.0//EN 】
***Mapper.xml 配置信息,同上
六、测试类
点击 Finish —— OK
包右键新建 Other… 【JUnit Test Case】
package com.debj.testMapper;
import java.io.IOException;
import java.io.InputStream;
import org.junit.Test;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.log4j.Logger;
import org.junit.Before;
public class TestUserMapper {
private Logger logger = Logger.getLogger(TestUserMapper.class);
@Before
public void setUp() throws Exception {
}
@Test
public void test() {
String resource = "mybatis-config.xml";
int count = 0;
SqlSession sqlSession = null;
try {
//1 获取mybatis-config.xml的输入流
InputStream is = Resources.getResourceAsStream(resource);
//2 创建SqlSessionFactory对象,完成对配置文件的读取
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//3 创建sqlSession
sqlSession = factory.openSession();
//4 调用mapper文件来对数据进行操作,必须先把mapper文件引入到mybatis-config.xml中
count = sqlSession.selectOne("com.debj.mapper.UserMapper.count");
logger.debug("UserMapperTest count---> " + count);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
sqlSession.close();
}
}
}
七、总结
7-1】整体架构
7-2】易错点
- jar 包版本问题,导致
new SqlSessionFactoryBuilder().build(is);
报错 - xml 配置路径有问题,出现
org.apache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.