mybatisday01课堂笔记Word文件下载.docx
- 文档编号:18890543
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:16
- 大小:822.14KB
mybatisday01课堂笔记Word文件下载.docx
《mybatisday01课堂笔记Word文件下载.docx》由会员分享,可在线阅读,更多相关《mybatisday01课堂笔记Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
1、数据库连接的频繁获取与释放--造成数据库吞吐量过大--降低数据的性能--从而降低了APP的性能;
2、结果集的不易处理;
3、传递的参数类型比较单一
4、硬编码问题---程序不灵活
●查询条件
●查询条件的值
●显示的列
●sql语句
1.4解决问题
1、通过数据库连接池:
c3p0、dbcp、druid(阿里)
2、手动处理
3、手动处理
4、硬编码---抽取出来-数据的表维护、xml维护sql语句----解析xml并执行其中sql语句---mybatis可以完成这个操作。
orm框架-jdbc封装--简化了我们开发(面向对象)
2mybatis的介绍和框架原理
2.1介绍
MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。
2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。
iBATIS提供的持久层框架包括SQLMaps和DataAccessObjects(DAO)
2.2hibernate框架原理
执行流程:
***.hbm.xml(映射文件)
-hibernate.cfg.xml(全局配置文件)
-configuration加载全局配置文件
-会话工厂(SessionFactory)
--会话(session)--
有了一切(API的调用,注意:
如果是增、删、改:
开始事务并且提交事务)。
orm框架:
数据的表-----pojo相互映射。
2.3mybatis的框架原理
mybatis:
也是orm框架
映射文件(编写sql语句)
--全局配置文件(加载映射文件、配置延迟加载)
--SqlSessionFactoryBuilder(加载全局配置文件)
--SqlSessionFactory(会话工厂)
-SqlSession(会话)
----API调用(注意:
增、删、改需要提交事务。
)
3mybatis入门程序
3.1需求
1、根据id查询用户信息
2、根据username模糊查询用户信息
3、添加用户
4、修改用户
5、删除用户
3.2准备工作
3.2.1导入jar
3.2.2编写全局配置文件
3.2.3编写日志文件
3.3根据id查询用户信息
3.3.1分析
1、查询条件----id
2、返回结果---object----user
3.3.2创建user对象
3.3.3编写映射文件
3.3.4加载映射文件
3.3.5编码测试
3.4根据username模糊查询用户信息
3.4.1编写映射文件
3.4.2编写测试代码
3.4.3sql注入
3.5添加用户
3.5.1编写映射文件
3.5.2编写测试代码
3.5.3mysql数据库引擎
分配自增id的策略:
先分配,后使用。
不管之前的操作是否成功或失败,分配的id不会回收(回滚。
3.6获取返回自增主键的id
3.6.1使用场景
3.6.2编写映射文件
3.6.3编写测试代码
3.6.4使用uuid
SELECTUUID()执行该条sql。
3.7根据id修改用户
3.7.1编写映射文件
3.7.2编写测试代码
3.8根据id删除用户
3.8.1编写映射文件
3.8.2编写测试代码
4mybatis的两种dao的开发方式
4.1三个对象
4.1.1SqlSessionFactoryBuilder
作用:
加载mybatis的全局配置文件--获取会话工厂
使用范围:
作为局部变量使用。
相当于工巨类
4.1.2SqlSessionFactory
生成会话
只存在一份该对象的实例----可以通过单例来维护该对象
4.1.3SqlSession
操作API
作为局部变量是使用
sqlsession的创建过程:
4.2传统dao的开发
4.2.1步骤
编写接口、实现类
4.2.2编写接口
4.2.3编写实现类
4.2.4编码测试
4.3通过mapper代理开发dao
4.3.1步骤以及规范
1、只需要编写接口
2、namespace:
接口的全类路径名称
3、id:
必须与接口的方法名保持一致
4、接口方法的参数类型必须与映射文件保持一致
5、接口方法的返回值类型必须与映射文件保持一致
4.3.2编写接口
4.3.3编写映射文件
4.3.4加载到全局配置文件中
4.3.5编码测试
4.3.6使用的是哪种代理---jdk代理
1、jdk代理:
面向接口,称为动态代理
2、cglib代理:
面向实体类,称为静态代理
5mybatis的全局配置文件
5.1标签
properties?
settings?
typeAliases?
typeHandlers?
objectFactory?
objectWrapperFactory?
plugins?
environments?
databaseIdProvider?
mappers?
?
:
代表0个或者一个
*:
代表0个或者多个
大部分情况这些标签都是有顺序的。
5.2properties
加载外部资源文件
注意:
5.3typeAliases
设置别名
5.3.1单个别名的设置
5.3.2批量别名的设置
5.3.3默认支持的别名
5.4mappers
加载映射文件
5.4.1单个映射文件的加载
5.4.2通过接口加载单个映射文件----了解
规范:
1、接口名与映射文件名称必须一致
2、接口和映射文件在同一目录下
5.4.3批量映射文件的加载
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mybatisday01 课堂 笔记