一、Mybatis的引言

1、Mybatis框架概念:是数据库持久层的框架,对数据库的访问和操作。Mybatis对JDBC的封装,Mybatis替换JDBC开发,解决DAO中的通用问题。

2、JDBC开发DAO的缺点:

3、Mybatis的优点

1)自动的进行ORM,减少冗余代码

2)有缓存机制,提高软件的效率

3)Mybatis提供动态sql,减少DAO方法的开发(select)

4、Mybatis的开发原理

二、第一Mybatis程序

1、搭建Mybatis环境

a、导入jar包

Mybatis的核心jar包:mybatis-3.2.2.jar

数据的驱动jar:ojdbc5.jar

做日志记录:log4j.jar

commons-logging-1.1.3.jar

b、引入配置文件

mybatis-config.xml:配置Mybatis运行环境

放置位置:随意,放在src目录

mapper文件:DAO实现的方法,通过mapper创建DAO

放置位置:随意,放在dao包下

log4j.properties:【可选】打印日志

放置位置:src目录

c、初始化参数配置

在mybatis-config.xml中配置mybatis的运行环境

2、Mybatis的核心API介绍

1)Resources:获得mybatis-config.xml配置文件

2)SqlSession:

作用一:获得DAO的实现类

作用二:内部封装一个Connection,一个SqlSession和一个Connection对象一一对应

作用三:可以事务控制

commit();rollback();

3)SqlSessionFactory:创建SqlSession,重量级

3、Mybatis替换JDBC开发DAO的步骤

1)建表

2)实体

3)DAO 的接口

4)Mybatis实现DAO的接口

5)注册mapper文件

6)测试

三、单表的基本操作(一个参数)

1、查询所有

模糊查询

2、删除

注意:Mybatis做数据库的DML操作必须进行事务控制(Mybatis的事务默认是回滚)

sqlSession.commit();/sqlSession.rollback()

3、修改

4、添加

使用序列:

insert into t_user values(seq_user.nextval,'yyy','999999')

mysql数据库没有序列:

<insert id="insert" parameterType="com.ibs.api.perf.bean.PerfAmmeter" useGeneratedKeys="true" keyProperty="id">

四、MybatisUtil的封装(参考MybatisUtil.java)

1、作用:提高代码的服用,提高程序的维护

2、service:SqlSession---DAO+事务控制

dao:调用DAO的方法完成业务

事务控制:SqlSession

获得sqlSession的方法

public static SqlSession getSqlSession(){}

3、MybatisUtil工具类封装的原则

1)读取配置文件的操作放在静态代码块中

2)sqlSession和Connection一一对应,对SqlSession进行线程绑定

3)SqlSessionFactory是一个重量级的,只需要创建一次,把SqlSessionFactory定义为静态成员变量

4、封装关闭SQLSession的方法:把关闭的SQLSession从线程局部变量中移除掉

public static void closeSession(){}

Mybatis学习(壹)的更多相关文章

  1. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...

  2. MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...

  3. MyBatis学习总结(七)——Mybatis缓存(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...

  4. (原创)mybatis学习二,spring和mybatis的融合

    mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...

  5. (原创)mybatis学习一,夯实基础

    一,what?(是什么) MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可 ...

  6. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...

  7. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  8. 【Todo】Mybatis学习-偏理论

    之前写过好几篇Mybatis相关的文章: http://www.cnblogs.com/charlesblc/p/5906431.html  <SSM(SpringMVC+Spring+Myba ...

  9. MyBatis学习系列三——结合Spring

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...

  10. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

随机推荐

  1. 电量检测芯片BQ27510使用心得

    最近接触到一款TI的电量检测芯片BQ27510,网上很少有人提及该芯片如何使用,大部分博文都是搬得BQ27510的datasheet,至于真正使用过的很少,该芯片我个人感觉还是非常强大的,能自动学习你 ...

  2. LuaTinker的bug和缺陷

    LuaTinker的bug和缺陷 LuaTinker是一套还不错的C++代码和Lua代码的绑定库,作者是韩国人Kwon-il Lee,作者应该是参考了LuaBind后,为了简化和避免过重而实现的.其官 ...

  3. 【转载】OLE DB, ADO, ODBC关系与区别

    原文:OLE DB, ADO, ODBC关系与区别 OLE DB, ADO, ODBC 一. ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(W ...

  4. Sqlserver2008日志压缩

    SqlServer2008日志压缩语句如下: USE [master] GO ALTER DATABASE DBName SET RECOVERY SIMPLE WITH NO_WAIT GO ALT ...

  5. HUD 2203 亲和串

    HUD 2203 亲和串 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768K (Java/Others) [题目描述 - ...

  6. STORM_0006_第二个storm_topology:WordCountTopology的代码与运行

    我先试试这个Open Live Writer能不能用. 再在ScribeFire中修改一下已经发布的文章试试看. 这两个写博客的地方都没有原始的编辑器方便,可以插入代码,选择文章的分类.所以以后还有这 ...

  7. javascript权威指南笔记--javascript语言核心(六)

    通过ECMAScript 3创建的属性都是可写的.可枚举的.可配置的. 在ECMAScript 5中,数据属性的4个特性分别是它的值.可写性.可枚举性.可配置性.存取器属性的特性是读取.写入.可枚举性 ...

  8. 关于Android 构建

    在简书上面有系列关于Android 的文章,还不错,部分同学可以在开发过程中阅读和学习:www.jianshu.com/collection/3fde3b545a35 关于Android 构建,看到这 ...

  9. C语言单链表实现19个功能完全详解

    谢谢Lee.Kevin分享了这篇文章 最近在复习数据结构,想把数据结构里面涉及的都自己实现一下,完全是用C语言实现的. 自己编写的不是很好,大家可以参考,有错误希望帮忙指正,现在正处于编写阶段,一共将 ...

  10. mysql 选择性高

    选择性高是指能够过滤掉更多不需要的记录.举例来说,在一个公司里,使用性别只能过滤掉一半的人,而使用姓名一般可以过滤掉99%以上的人,因为会有重名情况,而使用员工号,选出一个,其他的全部过滤掉.也就是说 ...