一.使用IDEA创建并配置Maven和Mybatis环境
-
下载Maven
-
Maven下载地址:
http://maven.apache.org/download.cgi
- 下载完毕后新建Maven项目
- 选择Create from archetype
- 选择项目模板 (选择webApp作为项目原型)
- 起个GroupId,ArtifactId
- Maven路径及jar包库路径
- 项目名及项目存放路径
二.配置Maven
-
打开Maven路径下的conf文件夹下的settings.xml
-
手动配置Maven的保存仓库路径
设置下载仓库地址
三.配置pro.xml
-
打开Maven项目下的pro.xml
-
配置项目开发中需要的依赖包
可以根据所需的依赖包进行不同的下载
四.创建项目目录结构
-
打开项目目录设计
-
-
项目路径分析
-
-
在resources配置文件夹下创建Mybatis-config.xml
-
configuration配置
-
properties属性
-
setting设置
<settings> <!--缓存开关,默认为true--> <setting name="cacheEnabled" value="true"/> <!--懒加载,默认值为false--> <setting name="lazyLoadingEnabled" value="false"/> <setting name="multipleResultSetsEnabled" value="true"/> <setting name="useColumnLabel" value="true"/> <setting name="useGeneratedKeys" value="false"/> <!--设置是否自动映射,full会映射复杂结果及,partial自动映射,none取消自动映射--> <setting name="autoMappingBehavior" value="PARTIAL"/> <!--设置自动映射发现未知列,none不做操作,warning打印日志到控制台--> <setting name="autoMappingUnknownColumnBehavior" value="none"/> <setting name="defaultExecutorType" value="SIMPLE"/> <!--连接最大时长,单位是秒--> <setting name="defaultStatementTimeout" value="30"/> <!--设置驱动结果及--> <setting name="defaultFetchSize" value="200"/> <setting name="safeRowBoundsEnabled" value="false"/> <!--是否开启驼峰命名映射,默认值false--> <setting name="mapUnderscoreToCamelCase" value="false"/> <!--Mybatis使用的缓存机制,有session和statemtnt,默认值是session--> <setting name="localCacheScope" value="SESSION"/> <!--JDBC类型设置,默认值是OTHER,可取值为NULL,VARCHAR--> <setting name="jdbcTypeForNull" value="OTHER"/> <!--设置延迟加载--> <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/> </settings>
-
typeAliases类型命名
<typeAliases> <!--设置别名,使用自定义别名--> <!--<typeAlias alias="user" type="com.kgc.pojo.User"/>--> <!--使用包命名,其别名是该类的类名--> <package name="com.kgc.pojo"/> </typeAliases>
typeHandlers类型处理器
objectFactory对象工厂
plugins插件
environments环境
<!--default的值是选择的默认环境ID--> <environments default="development"> <!--第一个数据环境--> <environment id="development"> <!--配置事务管理,采用JDBC的事务管理 --> <transactionManager type="JDBC"></transactionManager> <!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 --> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver_class}"/> <property name="url" value="${jdbc.connection.url}"/> <property name="username" value="${jdbc.connection.username}"/> <property name="password" value="${jdbc.connection.password}"/> </dataSource> </environment> <!--第二个数据环境,该环境可以是测试环境--> <environment id="test"> <!--配置事务管理,采用JDBC的事务管理 --> <transactionManager type="JDBC"></transactionManager> <!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 --> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver_class}"/> <!--使用不同的数据库--> <property name="url" value="jdbc:mysql://127.0.0.1:3306/smbms2"/> <property name="username" value="${jdbc.connection.username}"/> <property name="password" value="${jdbc.connection.password}"/> </dataSource> </environment> </environments>
dataSource数据源
<!--database.properties数据库配置文件--> jdbc.driver_class = com.mysql.jdbc.Driver jdbc.connection.url = jdbc:mysql://127.0.0.1:3306/smbms jdbc.connection.username = root jdbc.connection.password = root <!--POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver_class}"/> <property name="url" value="${jdbc.connection.url}"/> <property name="username" value="${jdbc.connection.username}"/> <property name="password" value="${jdbc.connection.password}"/> </dataSource>
mappers映射
<!-- 将mapper文件加入到配置文件中 --> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers>
-
配置Log4j日志输出文件
在pom.xml里面下载需要依赖的Jar包
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<!--下载1.2.15,下较早的版本可能会报错-->
<version>1.2.15</version>
<scope>provided</scope>
</dependency>
配置log4j.properties
##把日志文件写入数据库
##记录的日志级别
log4j.logger.db='info'
##日志输出到数据库
log4j.appender.db = org.apache.log4j.jdbc.JDBCAppender
##缓存
log4j.appender.db.BufferSize = 0
##数据库驱动
log4j.appender.db.Driver = com.mysql.jdbc.Driver
##数据url地址 ,本地可简写:jdbc:mysql://test
log4j.appender.db.URL = jdbc:mysql://127.0.0.1:3306/smbms?
##数据库用户名
log4j.appender.db.User = root
##数据库密码
log4j.appender.db.Password = root
##日志布局模式
log4j.appender.db.layout = org.apache.log4j.PatternLayout
# Global logging configuration 开发时候建议使用 debug
log4j.rootLogger=DEBUG, stdout
# 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
创建测试类
import org.apache.log4j.Logger;
public class TestMyBatis {
//创建一个looger对象,参数是选择需要测试的类
private static Logger logger = Logger.getLogger(TestMyBatis.class);
@Test
public void abc(){
SqlSession sqlSession = null;
sqlSession = MyBatisUtil.createSqlSession();
List<User> list = sqlSession.getMapper(UserMapper.class).getAddressListByUserId(6);
for (User u : list){
System.out.println(u.getUserName());
for (Address a : u.getAddresses()){
System.out.println(a.getPostCode()+","+a.getAddressDesc());
}
}
}