文章目录

  • 前言:
  • 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框架笔记相关推荐

  1. MyBatis框架笔记05:MyBatis条件查询

    目录 一.提出需求 二.创建学生映射器配置文件StudentMapper.xml 三.在Mybatis配置文件里注册StudentMapper.xml

  2. MyBatis框架笔记02:接口方式使用MyBatis

    目录 一.接口方式使用MyBatis的方法 二.案例演示接口方式使用MyBatis 1.创建net.hw.mybatis.mapper包&#

  3. MyBatis框架笔记01:MyBatis初探

    目录 一.什么是MyBatis (一)MyBatis概述 (二)ORM工具的基本思想 二.创建数据库与表

  4. MyBatis框架笔记04:MyBatis关联数据查询

    目录 一.提出需求 1.根据班级id 查询班级信息 2.显示全部班级信息 二.创建数据表

  5. MyBatis框架笔记03:MyBatis实现CRUD

    目录 一.查询记录 1.按id查询:findById 2.查询全部:findAll 3.按name查询:findByName 二.插

  6. MyBatis-学习笔记04【04.自定义Mybatis框架基于注解开发】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  7. MyBatis-学习笔记03【03.自定义Mybatis框架】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  8. mybatis框架--学习笔记(下)

    上篇:mybatis框架--学习笔记(上):https://blog.csdn.net/a745233700/article/details/81034021 8.高级映射: (1)一对一查询: ①使 ...

  9. mybatis框架--学习笔记(上)

    使用JDBC操作数据库的问题总结: (1)数据库连接,使用时创建,不使用时立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能. 设想:使用数据库连接池管理数据库连接. (2) ...

最新文章

  1. 配置纯净版Debian
  2. 美团笔试最大矩形面积
  3. word日常排版(页眉和页脚)
  4. linux shell 原理,linux下shell的工作原理
  5. UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数...
  6. python求100被3he7整除_PYTHON练习题测验
  7. cad刷新快捷键_47个CAD快捷键+50个技巧,了解这些CAD操作,你就偷着乐吧
  8. 磁珠 符号_超实用理解磁珠
  9. ArcGIS Pro 专题图制作
  10. python入门之运算符的使用的答案_python基础课程 第2章 (运算符)
  11. 2019日本Summer Sonic音乐节攻略(明星阵容)
  12. jmeter第21讲 阿里云下载安装JDK并配置环境变量
  13. CSS3解析抖音 LOGO制作
  14. 外包项目注意事项问题
  15. Android端 WebP图片压缩与传输的一点探索
  16. c语言程序设计 王芳主编,C语言程序设计
  17. iOS中textView和textField键盘的return键点击事件
  18. ImportError: cannot import name ‘set_random_seed‘ from ‘tensorflow‘
  19. jsp+ssm计算机毕业设计疫情背景下叮当买菜管理系统【附源码】
  20. 10月7日 c语言 函数的递归调用 有5个学生坐在一起,问第五个学生多少岁,比第四个大2岁……最后问第一个学生,他说是10岁

热门文章

  1. 【转】Maven 入门
  2. ORACLE中的各种SCN查询
  3. [创业-33]:股权、期权、期股的区别
  4. 满足哪些条件的商品有资格参与亚马逊秒杀卖家们知多少?
  5. VBA·编译错误:ByRef参数类型不符
  6. 什么是宝塔面板?宝塔面板的作用和功能是什么?
  7. 【大一上】C++小知识点
  8. 四.Redis学习:特殊数据类型
  9. 疫情之下:如何高效远程办公
  10. 怪盗基德的滑翔翼 线性DP 最长上升子序列