第一个EE框架MyBatis01

第一个EE框架MyBatis01

MyBatis

资料

  1. MyBatis中文文档
  2. MyBatis各版本下载地址

MyBatis简介

  1. MyBatis是一个ORM(对象关系映射)框架,用于操作数据库,底层是对jdbc的一个封装
  2. MyBatis的前身是iBatis,是Apache下的一个开源项目,现在迁移到了GitHub上地址就是资料里的下载地址

MyBatis环境搭建

创建项目

java project

导入jar包

  1. MyBatis核心jar包
  2. MyBatis依赖的jar包
  3. 驱动jar包

编写MyBatis配置文件

  1. 配置文件是一个xml文件,命名无要求(尽量不要中文),位置无要求,一般命名位mybatis.xml或者mybatis_conf.xml,一般放在src目录下。
  2. 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采用何种方式管理事务

  1. JDBC:表示MyBatis采用和原生JDBC一致的方式管理事务
  2. MANAGED:表示将事务管理交给其他容器进行,例如Spring

DataSource

配置数据源,设置MyBatis是否使用连接池技术,并且配置数据库连接的四个参数
type属性:设置MyBatis是否支持连接池技术

  1. POOLED,表示采用连接池技术
  2. UNPOOLED,表示每次都会开启和关闭连接,不使用连接池技术
  3. 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简介

  1. log4j是Apache提供的一款记录日志的工具
  2. log4j既可以将日志信息打印在控制台,也可以打印输出到一个日志文件中。
  3. 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会吧这个包下的全部类的类命作为他们的别名,并不区分大小写

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.byfree.top/archives/mybatis01