MyBatis
资料
MyBatis简介
- MyBatis是一个ORM(对象关系映射)框架,用于操作数据库,底层是对jdbc的一个封装
- MyBatis的前身是iBatis,是Apache下的一个开源项目,现在迁移到了GitHub上地址就是资料里的下载地址
MyBatis环境搭建
创建项目
java project
导入jar包
- MyBatis核心jar包
- MyBatis依赖的jar包
- 驱动jar包
编写MyBatis配置文件
- 配置文件是一个xml文件,命名无要求(尽量不要中文),位置无要求,一般命名位mybatis.xml或者mybatis_conf.xml,一般放在src目录下。
- mybatis配置文件的dtd约束
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
配置文件的配置内容
<configuration>
<!--用于指定开发使用哪个环境
default:用于指定使用的环境id
-->
<environments default="dev">
<!--用于配置开发环境
id:环境的唯一识别码
-->
<environment id="dev">
<!--事物管理器
type:用于设定mybatis采用什么方式管理事物
JDBC:表示采用和JDBC一样的事物管理方式
-->
<transactionManager type="JDBC">
</transactionManager>
<!--数据源/连接池:用于配置连接池和配置数据库连接的参数
type:用于设置mybatis是否采用连接池技术
POOLED:表示使用连接池
-->
<dataSource type="POOLED">
<!--property 配置之前jdbc连接的四大件-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/java"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</dataSource>
</environment>
</environments>
</configuration>
详解
configuration
这是配置文件的根元素,所有的其他元素都要在这个标签下使用
environments
用于管理所有的环境,并可以指定默认使用那个环境,通过default属性来指定
environment
用于配置环境,id属性用于唯一标识当前环境
transactionManager
用于配置事物管理器
type属性:指定MyBatis采用何种方式管理事务
- JDBC:表示MyBatis采用和原生JDBC一致的方式管理事务
- MANAGED:表示将事务管理交给其他容器进行,例如Spring
DataSource
配置数据源,设置MyBatis是否使用连接池技术,并且配置数据库连接的四个参数
type属性:设置MyBatis是否支持连接池技术
- POOLED,表示采用连接池技术
- UNPOOLED,表示每次都会开启和关闭连接,不使用连接池技术
- JNDI,使用其他容器(例如Spring)提供数据源
property
用于配置数据库连接参数(drever,url,user,password)
mappers
用于扫描映射(mapper)信息
定义pojo类
Mapper映射文件
在MyBatis中,推荐使用mapper作为包名,我们只需要写一个映射配置文件即可。UserMapper.xml
映射配置文件的dtd:
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
mapper文件用于定义要执行的SQL语句同时设定返回结果的类型
详解
mapper
根元素
namespace属性
用于指定命名空间,因为mybatis是通过namespace+id的方式来定位sql语句的所以必须指定namespace,通常namespace被配置为全限定路径
select
用于定义查询语句(DQL)
id属性:用于唯一标识SQL语句,类似于方法的方法名
resultType属性:用于设定查询返回的数据类型,要写类型的全限定路径,如果类型是集合写集合的泛型
MyBatis 中常用的三个查询方法
selectList
用于查询多条数据的情况,返回值是一个list集合,如果没有查询到任何数据返回空集合(没有元素的集合,不是null)
selectOne
用于查询单条数据的情况,返回值是一个对象,如果没有查到任何数据返回一个null。
selectMap
用于查询多条数据的情况,多条数据要形成一个Map集合。如果查不到返回一个空Map集合。
LOG4J
log4j简介
- log4j是Apache提供的一款记录日志的工具
- log4j既可以将日志信息打印在控制台,也可以打印输出到一个日志文件中。
- log4j可以定制日志的输出格式
日志级别
FATAL
致命的,表示非常严重的错误,一般是系统错误
ERROR
错误,表示代码错误,比较严重
warn
警告,不影响程序的运行,但是可能存在风险
INFO
信息,表示一些普通的输出信息
DEBUG
调试,表示程序员人为的一些调试信息
使用log4j
导包
配置文件
使用一个叫log4j.properties的配置文件会配置log4j的设置信息,例如日志级别,日志输出方式,日志格式等等。
log4j的配置文档
设置显示级别和输出位置
log4j.rootCategory=ERROR, CONSOLE, LOGFILE
ERROR:日志级别
CONSOLE:控制台输出
LOGFILE:日志文件输出
控制台输出配置
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=-- %m %c %l %d{yyyy-MM-dd HH:mm:ss}%n
log4j.appender.CONSOL和log4j.appender.CONSOLE.layout是默认写法
log4j.appender.CONSOLE.layout.ConversionPattern是显示的格式
日志文件输出的配置
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:/test.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=- %m %l%n
log4j.appender.LOGFILE.File:文件的位置
log4j.appender.LOGFILE.Append:是否是追加
log4j.appender.LOGFILE.layout.ConversionPattern:输出格式
可以单独设置SQL语句的输出级别
log4j.logger.top.byfree.mapper.UserMapper.selAll=DEBUG
properties标签
用于加载外部的properties文件
<properties resource="db.properties">
</properties>
${键}:用于获取加载进来的properties文件的值信息
typeAliases标签
用于给实体(pojo)类起别名
typeAlias标签
typeAliases标签的子级标签
type属性
写入类的全限定路径(包名加类命)
alias属性
要给这个类起的别名
不写alias属性
如果不写alias属性的话mybatis会默认把类的名字作为别名,不区分大小写
package标签
typeAliases标签的子级标签
如果我们有很多个pojo类的话,就要配置很多个typeAlias标签
为了简化这个步骤mybatis提供了package标签
type属性
用来写类的包的路径,mybatis会吧这个包下的全部类的类命作为他们的别名,并不区分大小写