问题回顾:在mybatis之前的mybatis项目创建中我们提出了几个问题:
1.resources下的 组织编号和 java下的组织编号必须一样
2.解决不了mapper.xml存放在resources以外路径中的读取问题
3.书写效率低
4.日志依赖没有进行使用
(46条消息) mybatis简介和项目创建 (一)_谁是黄黄的博客-CSDN博客
问题1和2:resources下的 组织编号和 java下的组织编号必须一样
(即包名一样)
那UserMapper.xml的包名和UserMapper的包名一样,我们这里能不能把UserMapper.xml和UserMapper放放到同一个包中?
解决方案:
1.第一步,看看target
首先我们看到target的mapper包中这两个文件是放在一起的,说明在在编译后这两个文件在同一个目录,且只有这两个文件在同一个个目录中才能进行查找
2.第二步,删掉target,把两个文件放到同一个包中
3.运行报错
我们会发现他报错:resource 找不到UserMapper.xml文件,说明我们不能把UserMapper.xml文件丢人到mapper包中,再查看target,果然是没有UserMapper.xml文件
4.如何把UserMapper.xml文件丢入到mapper包中,而不报错(解决UserMapper.xml存放在resources以外路径中的读取问题)
在pom.xml文件最后追加< build >标签,以便可以将xml文件复制到classes中,并在程序运行时正确读取。
<build>
<!--指定默认资源路径,如果不设置就被覆盖-->
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<!-- 新添加 */代表1级目录 **/代表多级目录 -->
<!--**/*表示所有的文件,不管几层都是可用的-->
<!-- .xml表示以.xml为后缀-->
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
5.测试
问题3:书写效率低
解决方案
1.配置jdbcConfig.properties配置文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useUnicode=true&characterEncpding=utf8
jdbc.username=root
jdbc.password=1234
2.mybatis-config 更改
2.1. 中添加properties配置文件路径(外部配置、动态替换)
2.2 原本路径改为动态路径(利用el表达式)
<!--添加properties配置文件路径(外部配置、动态替换)-->
<properties resource="jdbcConfig.properties" />
<environments default="mysql">
<environment id="mysql">
<!--事务管理器-->
<transactionManager type="JDBC"></transactionManager>
<!--数据源 连接池-->
<dataSource type="POOLED">
<!--数据库基础四项-->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
2.3(设置别名)mybatis-config.xml 为实体类定义别名,提高书写效率。
<typeAliases>
<package name="com.huang.maven.entity"/>
</typeAliases>
<?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>
<!--添加properties配置文件路径(外部配置、动态替换)-->
<properties resource="jdbcConfig.properties" />
<!--设置别名-->
<typeAliases>
<!--单个设置,一般不用-->
<!-- <typeAlias type="com.huang.maven.entity.User" alias="user"></typeAlias>-->
<!--所有的设置实体类设置别名,默认的别名就是类名的首字母小写 User别名为user-->
<package name="com.huang.maven.entity"/>
</typeAliases>
<environments default="mysql">
<environment id="mysql">
<!--事务管理器-->
<transactionManager type="JDBC"></transactionManager>
<!--数据源 连接池-->
<dataSource type="POOLED">
<!--数据库基础四项-->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--将mapper文件与核心配置文件进行关联-->
<mappers>
<mapper resource="com/huang/maven/mapper/UserMapper.xml"></mapper>
</mappers>
</configuration>
设置完成别名之后
UserMapper.xml 可以改为
<mapper namespace="com.huang.maven.mapper.UserMapper">
<select id="selectAllList" resultType="user">
select *
from user
</select>
</mapper>
问题四:日志依赖没有使用
4.1.常用的日志
级别 | 描述 |
---|---|
DEBUG | 输出调试信息;指出细粒度信息事件对调试应用程序是非常有帮助的。 |
ALL LEVEL | 打开所有日志记录开关;是最低等级的,用于打开所有日志记录。 |
INFO | 输出提示信息;消息在粗粒度级别上突出强调应用程序的运行过程。 |
4.2 导入依赖(已经导入了)
<!-- log4j日志依赖 https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
4.3 创建并配置log4j.properties
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# 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
ps:记得配模板