一、回顾知识

1、什么是框架?

拿我的生活的例子来说,框架就好比是一个等待装修的毛坯房

框架就像一个半成品的软件,等待开发人员进行二次开发1

框架的优点:

1、节省人力物力,节省资源

2、框架规范了开发者的代码,使得其代码可读性高 , 间接减少了我们后期开发的成本

2、什么是orm框架

首先了解到orm是什么意思1, 对象关系映射框架

作用是 将java对象数据与数据库数据进行一个映射管理

3、mybatis框架

是一个半自动的orm框架 , 与其中对应的是全自动的orm框架

这里的半自动和全自动说的 sql代码 是否可以自己编写

这里引申到了mybatis和hibernate的区别

第一点:谈及到自动化 , mybatis中sql语句可以编写 , hibernate中sql语句自己生成

第二点是上述谈及sql是否可以调优,mybatis可写sql

第三点是mybatis比hibernate更容易学习,但是比hibernate跟复杂

4、mybatis的写法

pom文件

mybatis的核心文件

mapper映射文件以及mapper接口文件

然后就是需要pojo类

5、mybatis工作流程

首先就是使用流去读取mybatis的核心文件

然后就去new一个sqlsessionfactorybuilder对象

紧接着使用构建者模式去build我们的mybatis的文件,返回给我们的sqlsessionfactory对象

然后进行工厂模式,sqlsessionfactory.opensession()返回我们sqlsession对象

这里有两条路线去操作数据库

第一条是sqlsession直接操作数据库

第二条是 sqlsession调用getmapper()方法 , 使用动态代理模式获取mapper对象 , 然后操作数据库

6、mapper动态代理

getmapper方法最终是调用jdk动态代理方法,生成一个代理对象,类型是传入的接口类型

Mapperprox类invoke()方法中,MapperMethod类调用了execute()方法,通过上述来创建代理方法,该方法的底层调用是sqlsession的方法

二、今日学习

1 、使用mybatis框架进行增删改查

2、#和$的区别:

  1. #是sql模板的占位符 , $是将字符串拼接到sql模板

  2. #可以防止sql注入,$不能

  3. ${}括号中必须是value

3、sql模板中like后面

1、在调用方法时候使用%% 2、使用字符拼接 %{value} 模糊查询如果不想在调用方法时参数加%,可以使用拼接参数的方式设置Sql:

3 使用#然后加上 bind 参数

4 mybatis多参数处理方法

一、自定义类传参

二、map传参

三、顺序传参 arg0 , param1开始 (可读性不高)

四 @Param 传参 MyBatis接口方法的参数前使用@Param 传参,定义映射文件中Sql语句的参数名

5、主鍵回填 mybatis

解决了插入数据不知道id的情况

使用用法 selectKey 标签中的属性有 ke'yProperty是java的属性 keyColumn是数据库列名 , resultType是主键的类型 order 执行之后

select LAST_ISERT_ID() 查询表中最后的一个id

必须要和<insert>标签连用

6、property属性

引入数据源

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=root

7、别名(typealias)

    <typeAliases>一个配一个包的 <typeAlias type="com.wr.domain.User" alias="User"></typeAlias>一个是配一个类的<typeAlias type="com.wr.domain"></typeAlias></typeAliases>

今日所学(四) [当日学习内容检查,如果有误,望大家赐教]相关推荐

  1. 今日所学(五) [当日学习内容检查,如果有误,望大家赐教]

    一.知识回顾 1.学习了mybatis的增删改查 注意事项: 1 映射文件的id与接口名字对应 2 在映射文件中命名空间是定义接口的位置 3.select标签 parameterType 传入的参数 ...

  2. 今日所学(一) [当日学习内容检查,如果有误,望大家赐教]

    一.maven的作用: 一键构建和依赖管理  (解决了jar管理和项目管理) 二.下载完maven后, 然后解压,目录结构为bin boot  conf  等 三.配置maven环境变量 1.首先需要 ...

  3. 今日所学(二) [当日学习内容检查,如果有误,望大家赐教]

    一.Junit判定   断言操作实用类Assert   预期和实际一样   就通过 二.@Before @After 前者方法 和后置方法 三.maven中冲突产生的原因---->依赖传递 sp ...

  4. RHCSA第四天学习内容心得

    一级目录的功能 > [root@daiyu ~]# ll / total 28 lrwxrwxrwx. 1 root root 7 Aug 12 2018 bin -> usr/bin d ...

  5. 加拿大高中计算机学什么内容,加拿大大学计算机科学专业排名情况及学习内容简单介绍...

    伴随着近年来前往加拿大留学学生人数的不断增多,如何在众多专业中选择一个优势专业成为不少家长关注的热点.据了解,在加拿大的众多专业中,计算机科学专业不管是就业前景还是薪资待遇都是相当不错的,那么加拿大大 ...

  6. html css学习笔记~ 基础知识和页面显示的四个区域内容及display:flex 等常用的一些命令(手画)

    一般 在html文件中输入<link href=".../xxx.css" rel="stylesheet"/> 通过这样的外部样式联系 css & ...

  7. python自学需要哪些基础知识-零基础学Python应该学习哪些入门知识及学习步骤安排...

    众所周知,Python以优雅.简洁著称,入行门槛低,可以从事Linux运维.Python Web网站工程师.Python自动化测试.数据分析.人工智能等职位!就目前来看,Python岗位人才缺口高达4 ...

  8. python自学步骤-零基础学Python应该学习哪些入门知识及学习步骤安排

    众所周知,Python以优雅.简洁著称,入行门槛低,可以从事Linux运维.Python Web网站工程师.Python自动化测试.数据分析.人工智能等职位!就目前来看,Python岗位人才缺口高达4 ...

  9. 实验十四 课程学习总结

    一.结合本学期课程学习内容,对比<实验一 软件工程准备>的任务5你所提的问题(给出提问博客链接),尝试对提出问题进行解答,并阐明是如何通过学习/实践/讨论弄清楚的:学习中是否产生了新的问题 ...

最新文章

  1. MiniGUI+qvfb+Eclipse完成嵌入式系统图形开发(开发环境的搭建)
  2. 在Spring中使用JDBCJobStore配置Quartz
  3. AppScan api登录接口 postman_如何通过Postman调用EDI系统的API?
  4. 动态重定位的增加的紧凑功能
  5. python list tuple 消耗_Python的List与Tuple
  6. Yii 文件上传类的使用
  7. Python:OpenCV的默认优化
  8. ASP.NET中Session的sessionState 4种mode模式
  9. 从底层分析python中深拷贝和浅拷贝区别
  10. 五大健身房管理软件实测超详细解读,健身房管理软件排名!
  11. 费用分摊分配用法(KSU5/KSV5/KB21N/KB11N)
  12. Android 应用资源(一)
  13. win10服务器网页打不开怎么办,win10系统浏览器网页打不开的解决技巧
  14. word文档页码从正文页开始编号
  15. wps加入全国计算机二级,WPS进入全国计算机二级考试,明年3月开考
  16. 用Python写一个简单的24点计算器
  17. Android保活方法
  18. Node.js实战(Node.js in Action)书中的代码实现
  19. 如何在文本中添加多条线
  20. 坐在办公室里的人注意一下-喝水--鼠标手---脖子(颈椎)---腰部

热门文章

  1. Excel插入图片自动OCR识别成可编辑的文字
  2. 自定义Flutter Lint插件实现自己的Dart语法规则(静态语法分析检测)
  3. 北京尚学堂JAVA第二章作业答案
  4. wordpress 时区设置问题,相差8个小时
  5. @Transactional(rollbackFor = Exception.class) 详解
  6. 550什么意思_550是什么意思
  7. 电子班牌系统服务器,电子班牌系统解决方案
  8. 科技系列 - 1 :判断键盘上的某个键按下 :KEY_DOWN
  9. cpu对寄存器的访问速度最快
  10. 天籁obd接口针脚定义_汽车16针obd接口针脚定义