mybatis plus 事务管理器_MyBatis框架(一)

35b1840f3e077f2cca8aab8bb103636b.png

【29】

一、什么是框架

  1. 框架是偷懒的程序员将代码进行封装, 之后进行重复使用的过程.
  2. 框架其实是一个半成品, 以连接数据库为例, 连接数据库使用的驱动, url, 用户名, 密码必须告知框架.
  3. 程序员在使用框架的时候,通常以配置文件的方式告知框架需要的信息,多数会使用 xml 作为框架的配置文件.
  4. 因此, 在使用框架开发代码时, 需要编写配置文件, 代码的编写反而会减少.
  5. 框架都是第三方提供的, 提供的都是 jar 包. 因此, 使用框架前, 必须将框架涉及的 jar 包导入项目中.

常见的 java 开发的框架

  1. MyBatis, ORM 框架, 底层是对 jdbc 进行了封装
  2. Spring, 是一个容器
  3. SpringMVC, 分层框架
  4. Struts2, 功能类似于 SpringMVC
  5. Hibernate, 功能类似于 MyBatis

二、什么是Mybatis

这里借用官网的解释:

1、MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。

2、MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

3、MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

三、Mybatis相对JDBC有哪些优势

回顾之前jdbc连接数据代码,我们看有哪些不好的地方:

1.在创建connection的时候,存在硬编码问题(也就是直接把连接信息写死,不方便后期维护)

2.preparedStatement对象在执行sql语句的时候存在硬编码问题。

3.每次在进行一次数据库连接后都会关闭数据库连接,频繁的开启/关闭数据连接影响性能。

简单的说一下mybatis相对jdbc的优势:

1.mybatis是把连接数据库的信息都是写在配置文件中,因此不存在硬编码问题,方便后期维护。

2.mybatis执行的sql语句都是通过配置文件进行配置,不需要写在java代码中。

3.mybatis的连接池管理、缓存管理等让连接数据库和查询数据效率更高。

1、一个简单的Mybatis框架目录结构

9851c2ced5d8d1def40e92bd52456b5f.png

2. MyBatis 环境搭建 jar 包详解

1、 MyBatis 核心 jar

mybatis-3.2.7.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 日志

3、 驱动 jar

mysql-connector-java-5.1.30.jar(或者oracel数据库中的ojdbc6.jar)

3. MyBatis 配置文件详解

1.1 <configuration>

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

1.2 <environments>

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

1.3 <environment>

用于配置环境. id 属性用于唯一标识当前环境

1.4 <transactionManager>

用于配置事务管理器

1.4.1 type 属性

用于指定 MyBatis 采用何种方式管理事务

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

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

1.5 <DataSource>

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

1.5.1 type 属性

用于设置 MyBatis 是否使用连接池技术

a) POOLED, 表示采用连接池技术

b) UNPOOLED, 表示每次都会开启和关闭连接, 不使用连接池技术

c) JNDI, 使用其他容器(例如 Spring)提供数据源

1.6 <property>

用于配置数据库连接参数(driver, url, username, password)

1.7 <mappers>

用于扫描 mapper 信息

2. mapper 映射配置文件详解

2.1 <mapper> 根元素

2.1.1 namespace 属性

用于指定命名空间, mybatis 是通过 namespace+id 的方式来定位 SQL

语句的, 所以必须指定namespace. 通常namespace被配置为全限定路径

2.2 <select>

用于定义查询语句(DQL)

2.2.1 id 属性

用于唯一表示 SQL 语句, 类似于方法的方法名

2.2.2 resultType 属性

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

3. MyBatis 核心配置文件

1.1 核心配置文件要求:是一个 xml 文件, 命名无要求, 位置无要求, 一般叫mybatis.xml, 放在 src 目录下

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

4. Mapper 映射文件

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

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

5. <properties>标签

1.1 功能

用于加载外部的 properties 文件

<!-- properties加载外部文件 -->

1.2 使用方式

获取 properties 文件中数据时, 要通过${}的方式获取.

jdbc.driver=oracle.jdbc.OracleDriver
jdbc.url= jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username=scott
jdbc.password=scott

修改主配置文件为:

<environments 

1.编写测试代码

首先需要先添加 JUnit 支持(在项目上右键点击buildpath 加入JUnit,后面会详细讲解JUnit的使用)

9c836d4f8bdf9517982acf3043cb2705.png

1. MyBatis 中常用的三个查询方法

1.1 selectList

用于查询多条数据的情况, 返回值是一个 list 集合. 如果没有查到任何数据, 返回没有元素的集合(空集合, 不是 null)

1.2 selectOne

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

1.3 selectMap

用于查询多条数据的情况, 多条数据要形成一个 Map 集合. 需要指定哪个属性作为 key. 如果查不到, 返回一个空 map 集合(不是 null)

pojo中的User实体类:

package 

Test测试代码:

package 

其中用到了日志记录工具log4j和JUnit,下篇会详细讲解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值