Mybatis学习(壹)
一、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学习(壹)的更多相关文章
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...
- MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...
- MyBatis学习总结(七)——Mybatis缓存(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...
- (原创)mybatis学习二,spring和mybatis的融合
mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...
- (原创)mybatis学习一,夯实基础
一,what?(是什么) MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可 ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...
- 【Todo】Mybatis学习-偏理论
之前写过好几篇Mybatis相关的文章: http://www.cnblogs.com/charlesblc/p/5906431.html <SSM(SpringMVC+Spring+Myba ...
- MyBatis学习系列三——结合Spring
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...
- MyBatis学习系列二——增删改查
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
随机推荐
- 未完成的任务之:下载、安装、体验 Gentoo
Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一. 如果你需要一个桌面 ...
- 关于htons和htonl
htons的功能:将一个无符号短整型数值转换为网络字节序,即大端模式(big-endian) 参数u_short hostshort: 16位无符号整数 返回值:TCP / IP网络字节顺序. hto ...
- 在vs中怎样一次性的添加一个文件夹到解决方案里
这个方法通常用到编译源码库方面,在这里我以编译静态库为例: 1.首先建立自己的工程Mytest 第二步 选择静态库 点击finish 完成工程的建立 第三步 点击PROJECT菜单项 选中Show A ...
- strtr介绍
strtr — 转换指定字符 string strtr ( string $str , string $from , string $to ) string strtr ( string $str , ...
- SqlSever基础 rtrim函数 除去字符串的右边的空格,左边中间的不管
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- 将NuGet配置到环境变量中
https://docs.nuget.org/consume/command-line-reference Installing The NuGet command line may be insta ...
- GCC编译器代码优化
代码优化是指编译器通过分析源代码,找出其中尚未达到最优的部分,然后对其重新进行组合,目的是改善程序的执行性能.GCC提供的代码优化功能非常强大,它通过编译选项-On来控制优化代码的生成,其中n是一个代 ...
- 面向对象--类库、委托、is和as运算符、泛型集合
类库: 其实就是一堆类文件,只是看不到这些类的源代码,保密性好. 优点:保密性好 缺点:如果这个方法不好用,使用者无法自己去更改它. 给的大多是dll文件.使用方法:引用右键,添加引用,浏览,选择到相 ...
- Intellij IDEA中使用Struts2
据说struts2中有很多的漏洞, 不过作为学习我也就用了吧, 因为书上面是按着这个讲的呀. 难怪官网上也没有struts2.2.1的版本的下载. 1. 下载struts2.2.1 ga版本 2. 新 ...
- Codeforces Round #257 (Div. 2) A题
A. Jzzhu and Children time limit per test 1 second memory limit per test 256 megabytes input standar ...