orm框架有哪些_038 MyBatis框架及其配置详解

193503e0e6cfb932139c5d911c38f170.png

1. 框架是什么_为什么框架都要有配置文件

(1) 什么是框架? 常用的框架有哪些?

框架是偷懒的程序员将代码进行封装,之后进行重复使用的过程。

(2) 为什么框架都要有配置文件?

框架其实是一个半成品,以连接数据库为例,连接数据库使用的驱动、url、用户名、密码。

程序员在使用框架的时候,必须要告诉框架需要的信息,通常以配置文件的方式告知,一般来说,多数会使用xml作为框架的配置文件。

因此,在使用框架开发代码时,需要编写配置文件,代码的编写反而会减少。

框架都是第三方提供的,提供的都是jar包。因此使用框架前,必须将框架涉及的jar包导入项目中。

2. 常用的框架有哪些_MyBatis框架简介

(1) 列举你常用的框架, 并简单描述其主要功能.

常见的java开发的框架

MyBatis,ORM框架(Object Relation Mapping),底层是对JDBC进行了封装。

Spring,是一个容器,管理框架。

SpringMVC 分层开发框架

Struts2 类似于SpringMVC

Hibernate类似于MyBatis

SSH-->Struts2 + Spring + Hibernate

SSM-->Spring + SpringMVC + MyBatis

(2) 你如何理解MyBatis框架?

MyBatis是一个ORM框架,用于操作数据库,底层是对JDBC进行的封装。

MyBatis的前身是iBatis,是Apache下的一个开源项目。现在被迁移到了GitHub上。

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

3. 搭建MyBatis环境使用的jar包详解

(1) MyBatis框架搭建需要哪些jar包?

使用MyBatis需要先导入的包:

asm-3.3.1.jar

cglib-2.2.2.jar

commons-logging-1.1.1.jar

javassist-3.17.1-GA.jar

log4j-1.2.17.jar

log4j-api-2.0-rc1.jar

log4j-core-2.0-rc1.jar

slf4j-api-1.7.5.jar

slf4j-log4j12-1.7.5.jar

(2) 分别说明MyBatis依赖的jar包的含义.

asm-3.3.1.jar:字节码解析包,被cglib依赖

cglib-2.2.2.jar:动态代理的实现

commons-logging-1.1.1.jar:日志包

javassist-3.17.1-GA.jar:字节码解析包

log4j-1.2.17.jar:日志包

log4j-api-2.0-rc1.jar:日志包

log4j-core-2.0-rc1.jar:日志包

slf4j-api-1.7.5.jar:日志包

slf4j-log4j12-1.7.5.jar:日志包

mysql-connector-java-5.1.47.jar:驱动包

4. 编写MyBatis核心配置文件

(1) MyBatis的核心配置文件有什么特点, 配置时有什么注意事项?

是一个XML文件,命名无要求,位置无要求,一般命名为mybatis-cfg.xml。放在src目录下。

mybatis配置文件的dtd约束

Window--preferences--XML--catalog

9cae41fd2e49c9678d022914dc38f72e.png

(2) 什么是数据源? 在核心配置文件中, 如何配置数据源?

mybatis配置文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration

PUBLIC "-//http://mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!--

用于指定使用什么环境

用于指定使用的环境的id

-->

<environments default="developer">

<!--

用于配置开发环境

id:环境的唯一识别码,叫啥不重要,只要不重复

-->

<environment id="developer">

<!--事务管理器

type:用于设置Mybatis采用什么方式管理事务

JDBC表示采用和JDBC一样的事务管理方式

-->

<transactionManager type="JDBC"></transactionManager>

<!--

数据源/连接池,用于配置连接池和数据库连接的参数

type:用于设置mybatis是否采用连接池技术。

POOLED表示采用连接池技术

-->

<dataSource type="POOLED">

<property name="driver" value="com.mysql.jdbc.Driver"/>

<property name="url" value="jdbc:mysql://localhost:3306/bjsxt"/>

<property name="username" value="root"/>

<property name="password" value="root"/>

</dataSource>

</environment>

</environments>

</configuration>

5. MyBatis映射文件编写及扫描配置

(1) MyBatis映射文件编写及扫描配置

在mybatis中,推荐使用mapper作为包名,我们只需要写一个映射配置文件即可。UserMapper.xml,用于定义要执行的SQL语句,同时设定返回结果的类型。选中文件+F2快速重命名。

mybatis映射文件编写及扫描配置

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration

PUBLIC "-//http://mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!--

用于指定使用什么环境

用于指定使用的环境的id

-->

<environments default="developer">

<!--

用于配置开发环境

id:环境的唯一识别码,叫啥不重要,只要不重复

-->

<environment id="developer">

<!--事务管理器

type:用于设置Mybatis采用什么方式管理事务

JDBC表示采用和JDBC一样的事务管理方式

-->

<transactionManager type="JDBC"></transactionManager>

<!--

数据源/连接池,用于配置连接池和数据库连接的参数

type:用于设置mybatis是否采用连接池技术。

POOLED表示采用连接池技术

-->

<dataSource type="POOLED">

<property name="driver" value="com.mysql.jdbc.Driver"/>

<property name="url" value="jdbc:mysql://localhost:3306/bjsxt"/>

<property name="username" value="root"/>

<property name="password" value="l35367944"/>

</dataSource>

</environment>

</environments>

<!-- 扫描映射文件 -->

<mappers>

<mapper resource="cn/bjsxt/mapper/UserMaper.xml" />

</mappers>

</configuration>

(2) 介绍映射文件中常用的标签及配置时的注意事项.

配置映射文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper

PUBLIC "-//http://mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--

namespace;命名空间。类似于包的作用。可以随意定义,但不可重复。一般情况下写全限定路径。

mybatis是通过命名空间+id来的管理SQL语句的

-->

<mapper namespace="com.bjsxt.mapper.UserMapper">

<!--

select标签用于编写查询语句

id:用于标记sql查询语句的唯一标识,类比为方法名

resultType:用于设定返回结果的类型(全限定路径)。

如果返回结果是集合,要写集合泛型的类型。

-->

<select id="selAll" resultType="com.bjsxt.pojo.User">

select * from t_user

</select>

</mapper>

6. 测试代码_selectList实现查询所有的操作

(1) 使用MyBatis时用到的核心对象是什么? 如何创建?

Session对象

创建session对象代码:

//加载mybatis核心配置文件

InputStream is = Resources.getResourceAsStream("mybatis.xml");

//构建一个sqlSessionFactory工厂对象

SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);

//通过工厂打开SQLSession

SqlSession session=factory.openSession();

//通过session执行查询操作

List<User> list=session.selectList("cn.bjsxt.mapper.UserMapper.selAll");

System.out.println(list);

//关闭资源

session.close();

(2) 什么是JUnit? 如何使用?

JUnit测试方法:

首先导入JUnit资源

右键项目--> Build Path--> add Libraries-->JUnit

JUit测试配置好的方法,在方法上添加注解:@test,光标定位在方法名上右键--run as--JUnit

@org.junit.Test

public void testSelAll() {

System.out.println(123);

}

如果能正常输出123,则表示方法可用。

7. MyBatis核心配置文件详解

(1) MyBatis核心配置文件中有哪些常用标签? 如何配置?

标签configuration这是配置文件的根元素,所有的其他元素都要在这个标签下使用。

Environments:用于管理所有的环境,并可以指定默认使用哪个环境,通过default属性来指定。

environment用于配置环境,id属性用于唯一标识当前环境。在environments下至少要有一个environment标签。

transactionManager:用于配置事务管理器。

type属性:用于指定MyBatis采用何种方式管理事务。

JDBC:表示MyBatis采用与原生JDBC一致的方式管理事务。

MANAGED:表示将事务管理交给其他容器进行,例如Spring。

DataSource:用于配置数据源,设置MyBatis是否使用连接池技术,并且配置数据库连接的四个参数。

type属性:用于设置MyBatis是否使用连接池技术。

POOLED:表示采用连接池技术。

UNPOOLED:表示不采用连接池。这个数据源的实现是每次请求时简单的打开关闭连接。

JNDI:使用其他容器(例如Spring)提供的数据源。

Property:用于配置数据库连接参数(driver,url,username,password) 两个元素name和value

(2) 为什么要进行映射扫描? 如何配置?

用于扫描mapper信息

mapper映射配置文件详解:

Mapper:根元素

namespace属性:用于指定命名空间,mybatis是通过namespace+id的方式来定位SQL语句的,所以必须指定namespace,通常namespace被配置为全限定路径。

select标签:用于定义查询语句。

id属性:用于唯一表示SQL语句,类似于方法的方法名。

resultType属性:用于设定查询返回的数据类型,要写类型的全限定路径。如果返回的是集合类型,要写集合的泛型的类型。

8. MyBatis三个查询方法_selectList_selectOne_selectMap

(1) 请描述selectList, selectOne和selectMap三个方法的作用及其中的关系.

selectList:用于查询多条数据的情况,返回值是一个list集合,如果没有查询到结果会返回一个没有元素的空集合。

selectOne:用于查询单条数据的情况,返回值是一个对象,如果没有查到任何数据,返回null。

selectMap:用于查询多条数据的情况,多条数据要形成一个Map集合。如果查不到结果,返回一个空Map集合,不是null。

(2) 简述selectMap方法如何使用? 以及返回结果的组成方式.

selectMap调用selectList的标签来获得元素结果集,再指定元素中某一属性作为key值组成键值对保存在Map集合中。

(3) Log4J简介_Log4J的五个日志级别

Log4j是Apache提供的一款记录日志的工具。

Log4j既可以将日志信息打印到控制台,也可以打印输出到一个日志文件中。

Log4j可以定制日志的输出格式。

Log4j可以定制日志级别。

(4) Log4J简介_Log4J的五个日志级别

日志级别由高到低依次为:

FATAL:致命的,表示非常严重的错误,一般是系统错误。

ERROR:错误,表示代码错误,比较严重。

WARN:警告,不影响程序的运行,但是可能存在风险。

INFO:信息,表示一些普通的输出信息。

DEBUG:调试,表示程序员人为的一些调试信息。

9. Log4J配置文件详解_日志格式简介_日志对象的获取及使用

(1) 常用的log4j日志格式符号有哪些? 代表什么含义?

%m massage输出错误消息

%c 返回出错的类名

%l 返回出错行

%d{yyyy-MM-dd HH:mm:ss} 返回出错时间

%n 换行

(2) 如何使用log4j记录日志?

1-导包

log4j-1.2.17.jar

log4j-api-2.0-rc1.jar

log4j-core-2.0-rc1.jar

2-配置文件:使用一个叫log4j.properties的配置文件,会设定log4j的设置信息,例如日志级别,日志输出方式,日志格式等等。

Log4j配置文件

# Set root category priority to INFO and its only appender to CONSOLE.

log4j.rootCategory=DEBUG, CONSOLE,LOGFILE

#log4j.rootCategory=INFO, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.

log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n

# LOGFILE is set to be a File appender using a PatternLayout.

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=%-4r [%t] %-5p %c %x - %m%n

测试log4j

public class TestLog4j {

public static void main(String[] args) {

//获取日志对象

Logger logger = Logger.getLogger(TestLog4j.class);

//5个日志级别对应5种输出方法,方法名和级别名一致

logger.fatal("系统崩溃了!!!");

logger.error("错误!!!");

logger.warn("警告!!!");

http://logger.info("普通消息~");

logger.debug("调试中~~~");

}

}

10. 如何使用log4j记录日志?

(1) 如何在MyBatis中使用Log4J? 如何配置

导入3个上述的log4j相关jar包

将eclipse安装文件中log4j.properties文件复制到项目的src文件夹中。

在日志配置文件log4j.properties中修改

log4j.rootCategory = ERROR,C0NSOLE

单独设置SQL语句的输出级别为DEBUG级别

Log4j.logger.cn.bjsxt.mapper.UserMapper.selAll=DEBUG

要在environments标签之前配置settings标签:

<!-- settings标签 -->

<settings>

<!-- 设置mybatis使用log4j日志支持 -->

<setting name="logImpl" value="LOG4J"/>

</settings>

(2) 如何设置MyBatis中日志的级别? 有几种级别?

在日志配置文件log4j.properties中修改

log4j.rootCategory = ERROR,C0NSOLE

一共3种级别:方法级别、类级别、包级别

#单独设置SQL语句的输出级别为DEBUG级别

#方法级别

#log4j.logger.cn.bjsxt.mapper.UserMapper.selAll=DEBUG

#类级别

#log4j.logger.cn.bjsxt.mapper.UserMapper=DEBUG

#包级别

log4j.logger.cn.bjsxt.mapper=DEBUG

11. properties标签实现软编码

(1) 什么是软编码? 有什么好处?

properties标签用于加载外部的properties文件。

方便代码的扩展和维护。

(2) properties标签如何配置?

properties标签在根结点<configuration>下第一个子节点的位置插入:(在<setting子节点之前>)

<configuration>

<!-- properties标签 -->

<properties resource = "db.properties" />

<!-- settings标签 -->

<settings>

<!-- 设置mybatis使用log4j日志支持 -->

<setting name="logImpl" value="LOG4J"/>

</settings>

<dataSource标签可以引用外部配置文件db.properties>(注意:外部配置文件的键名最好不要包括“.”,否则可能造成读取错误)

<dataSource type="POOLED">

<property name="driver" value="${driver}"/>

<property name="url" value="${url}"/>

<property name="username" value="${username}"/>

<property name="password" value="${password}"/>

</dataSource>

外部配置文件db.properties:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/bjsxt

username=root

password=root

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值