MyBatis框架笔记
文章目录
- 前言:
- MyBatis框架
- 1-1 框架在开发中的作用及其常见的框架
- 1-2 什么是MyBatis
- 1-3 MyBatis的应用
- 1-4 MyBatis的简单入门
- 2-1 在Mapper.xml文件中写sql语句需要注意的事项
- 2-2 MyBatis解决JDBC存在的问题
- 2-3 MyBatis结合到层的开发(重点、难点)
- 2-4 MyBatis的主配置文件
前言:
少年易老学难成,一寸光阴不可轻。未觉池塘春草梦,阶前梧叶已秋声 。—朱熹《劝学诗》
勤奋才是改变你命运的唯一捷径。整理不易,各位看官点赞再看更舒适,养成好习惯(●´∀`●)
MyBatis框架
1-1 框架在开发中的作用及其常见的框架
### 前端框架a.前端开发用的框架Angular.jsReact.jsVue.jsb.前端UI框架Extjsjquery ui -->简化 easy uiBootstrapLayui 中国出来的自己UI 按年收费### 后端框架a.变现层框架(Controller):servletstruts,xwork,struts2,springMVCb.持久层框架(Dao):JDBCHiBernate(全自动),ibatis(半自动),MyBatisc.整合框架EJBspring
### 后话(旧)SSH:struts/struts2 spring hibernate(新)SSM:springMVC spring mybatis
1-2 什么是MyBatis
a.MyBatis是对JDBC的封装
b.将SQL语句放在映射文件中(XML)
c.自动将输入参数映射到SQL语句的动态参数中
d.自动将SQL语句执行的结果映射成Java对象
1-3 MyBatis的应用
(0)准备工作,创建学生表,添加数据CREATE TABLE tbl_student(id VARCHAR(32),NAME VARCHAR(32),age INT);INSERT INTO tbl_student VALUE("A0001","wyf",23);INSERT INTO tbl_student VALUE("A0002","lh",24);INSERT INTO tbl_student VALUE("A0003","hzt",25);INSERT INTO tbl_student VALUE("A0004","zyx",26);INSERT INTO tbl_student VALUE("A0005","lif",27);(1)创建项目,搭建包结构(2)导入jar包a.导入MyBatis相关的jar包b.导入MySQL的驱动包c.导入log4j相关的jar包(3)在src的根目录下创建MyBatis主配置文件mybatis-config.xml,搭建配置文件结构(4)创建mapper包结构,创建SQL映射文件XxxMapper.xml(5)在src根目录下引入log4j文件(6)搭建测试环境,测试根据ID查询数据库中所有记录
1-4 MyBatis的简单入门
public static void main(String[] args) {String resource = "mybatis-config.xml";//输出流InputStream inputStream = null;try {//通过加载MyBatis的主配置文件mybatis-config.xml,创建输入流对象inputStream = Resources.getResourceAsStream(resource);} catch (IOException e) {e.printStackTrace();}/*SqlSessionFactoryBuilder:SqlSessionFactory的建造者通过调用建造者对象建造方法,为我们创建一个SqlSession对象*/SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 我们未来所有的操作,使用的都是SqlSession对象来完成// 列如增删改查,处理事务等等,都是使用session对象来完成SqlSession session = sqlSessionFactory.openSession();/*需求:根据ID查单条如果取得的是单条记录,我们调用selectOne方法参数1:根据命名空间.sqlId的形式找到我们需要使用的sql语句参数2:我们要为sql语句中传递的参数*/Student student = session.selectOne("test1.getById", "A0001");System.out.println("student = " + student);session.close();
}
2-1 在Mapper.xml文件中写sql语句需要注意的事项
namespace:命名空间不同的mapper映射文件使用namespace来区分不同的mapper映射文件使用的namespace的命名不允许出现重复
使用命名空间,sqlId的形式来找到我们想要执行的sql语句sql语句必须要写在相应的标签中<insert>在标签中写insert开头的sql语句 处理添加操作<update>在标签中写update开头的sql语句 处理修改操作<delete>在标签中写delete开头的sql语句 处理删除操作<select>在标签中写select开头的sql语句 处理查询操作parameterType:为sql语句传递的参数的类型resultType:如果返回值是多条记录,那么resultType的返回值类型,应该写为集合的泛型注意:在未来开发中a.所有的标签都必须要写ID属性b.<select>标签parameterType属性可以省略resultType必须写c.对于<insert><update><delete>这3个标签,通常我们只写ID属性,其他的一概不写
2-2 MyBatis解决JDBC存在的问题
(1)获取连接,得到statement、处理rs、关闭资源非常繁琐。解决:使用SqlSession搞定一切。
(2)将sql语句写死在java代码中,如果修改sql语句,需要修改java代码,需要重新编译。程序的维护性不高。解决:将sql语句写在Mapper.xml文件中与java代码分离。
(3)向PrepareStatement对占位符的位置设置参数时,非常繁琐。解决:MyBatis自动将java队形映射至sql语句中,通过statement中的parameterType定义输入参数的类型。
(4)解析结果集时需要把字段的值设置到相应的实体类属性名中。解决:MyBatis自动将sql执行结果映射到java对象,通过statement中的resultType定义输出结果的类型。
2-3 MyBatis结合到层的开发(重点、难点)
### 111
2-4 MyBatis的主配置文件
(1)直接引入mybatis-config.xml文件,并且加载数据库驱动的方式为<environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/db1"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environment>(2)直接引入mybatis-config.xml文件,但是加载数据驱动的方式为引入properties文件的形式db.propertise文件放到src根目录下,配置文件里的内容大概为jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/db1jdbc.username=rootjdbc.password=rootmybatis-config.xml配置文件里的内容变为<properties resource="db.properties"/><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments>
ps:另外附上资源 https://blog.csdn.net/weixin_44040023/article/details/103376121
PS:返回目录
《点击返回MySQl目录》
MyBatis框架笔记相关推荐
- MyBatis框架笔记05:MyBatis条件查询
目录 一.提出需求 二.创建学生映射器配置文件StudentMapper.xml 三.在Mybatis配置文件里注册StudentMapper.xml
- MyBatis框架笔记02:接口方式使用MyBatis
目录 一.接口方式使用MyBatis的方法 二.案例演示接口方式使用MyBatis 1.创建net.hw.mybatis.mapper包&#
- MyBatis框架笔记01:MyBatis初探
目录 一.什么是MyBatis (一)MyBatis概述 (二)ORM工具的基本思想 二.创建数据库与表
- MyBatis框架笔记04:MyBatis关联数据查询
目录 一.提出需求 1.根据班级id 查询班级信息 2.显示全部班级信息 二.创建数据表
- MyBatis框架笔记03:MyBatis实现CRUD
目录 一.查询记录 1.按id查询:findById 2.查询全部:findAll 3.按name查询:findByName 二.插
- MyBatis-学习笔记04【04.自定义Mybatis框架基于注解开发】
Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...
- MyBatis-学习笔记03【03.自定义Mybatis框架】
Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...
- mybatis框架--学习笔记(下)
上篇:mybatis框架--学习笔记(上):https://blog.csdn.net/a745233700/article/details/81034021 8.高级映射: (1)一对一查询: ①使 ...
- mybatis框架--学习笔记(上)
使用JDBC操作数据库的问题总结: (1)数据库连接,使用时创建,不使用时立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能. 设想:使用数据库连接池管理数据库连接. (2) ...
最新文章
- 配置纯净版Debian
- 美团笔试最大矩形面积
- word日常排版(页眉和页脚)
- linux shell 原理,linux下shell的工作原理
- UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数...
- python求100被3he7整除_PYTHON练习题测验
- cad刷新快捷键_47个CAD快捷键+50个技巧,了解这些CAD操作,你就偷着乐吧
- 磁珠 符号_超实用理解磁珠
- ArcGIS Pro 专题图制作
- python入门之运算符的使用的答案_python基础课程 第2章 (运算符)
- 2019日本Summer Sonic音乐节攻略(明星阵容)
- jmeter第21讲 阿里云下载安装JDK并配置环境变量
- CSS3解析抖音 LOGO制作
- 外包项目注意事项问题
- Android端 WebP图片压缩与传输的一点探索
- c语言程序设计 王芳主编,C语言程序设计
- iOS中textView和textField键盘的return键点击事件
- ImportError: cannot import name ‘set_random_seed‘ from ‘tensorflow‘
- jsp+ssm计算机毕业设计疫情背景下叮当买菜管理系统【附源码】
- 10月7日 c语言 函数的递归调用 有5个学生坐在一起,问第五个学生多少岁,比第四个大2岁……最后问第一个学生,他说是10岁