SSM——Mybatis框架环境搭建
写在前面:本文介绍了基于MySQL的Mybatis环境搭建,主要用作学习笔记。因笔者水平有限,存在错误在所难免,恳请读者批评指正。
1)pom.xml依赖
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!--使用MySQL5的版本号改为5.1.6-->
<version>8.0.21</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
<!--如果要编译过程中需要使用日志和测试可以额外添加以下依赖-->
<!--日志-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!--测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
</dependencies>
2)在resources目录下创建SqlMapConfig.xml文件。(这是Mybatis框架的配置文件,在要连接数据库前需要先读取该配置文件,5)中会介绍如何加载。如果在开发过程中使用.xml文件方式配置SQL语句,则SqlMapConfig.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>
<!-- 配置实体类所在位置-->
<typeAliases>
<!--name属性的值需要根据实际实体类位置进行设置-->
<package name="com.young.domain"/>
</typeAliases>
<!--配置数据源-->
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<!--数据库基本信息-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!--MySQL5的url配置为<property name="url" value="jdbc:mysql:///for_learn"/>-->
<property name="url" value="jdbc:mysql:///for_learn?useSSL=false&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--指定带有注解的dao接口所在位置-->
<mappers>
<mapper resource="com/young/dao/IUserDao.xml"/>
</mappers>
</configuration>
如果直接在开发过程中使用注解的方式设置SQL语句,则标签的内容需要改成以下内容,指定接口所在的包名,且无需再创建额外的.xml文件(推荐)。
<mappers>
<package name="com.young.dao"/>
</mappers>
或者直接指定接口所在位置
<mappers>
<mapper class="com.young.dao.IUserDao"></mapper>
</mappers>
3)如果直接使用.xml方式(不使用注解的方式),还需要在resources目录下一级一级创建相应目录及.xml文件。按以上配置应该在"com/young/dao/创建IUserDao.xml文件,内容如下。(这就是我们真正填写SQL语句的地方,Mybatis框架会根据配置文件找到该文件,用于为我们的Dao接口创建代理对象)
<?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="com.young.dao.IUserDao">
<!--配置findAll()方法的sql语句及返回类型-->
<select id="findAll" resultType="com.young.domain.User">
SELECT * FROM user
</select>
</mapper>
4)如果还需要使用日志,还应该在resource目录下创建log4j.properties文件,内容如下。
log4j.rootCategory=debug, CONSOLE, LOGFILE
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
5)经过以上配置之后,在需要操作数据库的地方获取持久层接口的代理对象
/*
* @author Northern
* */
//1.读取配置文件输入流
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.获取SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
//3.从SqlSessionFactory工厂创建Sqlsession对象
SqlSession sqlSession = factory.openSession();
//4.获取Dao层接口代理对象
IUserDao userDao = sqlSession.getMapper(IUserDao.class);
注:以上内容参考传智播客系列视频