属性文件的引用

3 未经授权,禁止转载了解课程
课程介绍
讨论{{interaction.discussNum ? '(' + interaction.discussNum + ')' : ''}}
适合人群
Java工程师,Java初学者
你将会学到
ORM持久层框架视频课程
课程简介

MyBatis

一:Mybatis的简绍

1、MyBatis 本是apache的一个开源项目iBatis 
2、mybatis框架执行sql并将结果映射成java对象并返回 
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

二:JDBC的缺点

1、数据库连接创建、释放频繁造成系统资源浪费,从而影响系统性能 
2、Sql语句在代码中硬编码,造成代码不易维护

三:Mybatis 用在什么地方

image_1cjuehnhenbc1mkk1gtp1qsvd4n9.png-20.9kB

四:Mybatis 的架构

image_1cjueoh2k120f1a2tcehke1ulo1g.png-42.8kB

MyBatis-Plus

      MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。愿景我们的愿景是成为 MyBatis 好搭档,就像 魂斗罗 中的 1P、2P,搭配,效率翻倍

1212.png

特性

        无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑

        损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作

        强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操

        作,更有强大的条件构造器,满足各类使用需求

        支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错

        支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、

        SQLServer2005、SQLServer 等多种数据库

        支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,优秀

        解决主键问题

        支持 XML 热加载:Mapper 对应的 XML 支持热加载,对于简单的 CRUD 操作,甚至可以无 XML 启动

        支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD

        操作

        支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )

        支持关键词自动转义:支持数据库关键词(order、key......)自动转义,还可自定义关键词

        内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代

        码,支持模板引擎,更有超多自定义配置等您来使用

        内置分页插件:基于 MyBatis 物理分页,研发者无需关心具体操作,配置好插件之后,写分页等同于普通

        List 查询

        内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询

        内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

        内置 Sql 注入剥离器:支持 Sql 注入剥离,有效预防 Sql 注入

一、SpringData的简绍

SpringData是Spring的一个子项目 
主要用于: 
1、简化数据库的访问、使数据库的操作更加快

2、支持NoSQL(MongoDB文档数据库、Redis键/值存储、Hbase列族数据库..等

3、支持关系型数据存储技术(JDBC、JPA)


我们下面使用JPA和SpringData整合


二、JPA SpringData的简绍

JPA Spring Data :

1、便于减少数据访问(DAO)层 的开发量 对于研发者要做的、就是声明持久层的接口、其他的都交给 Spring Data JPA 来完成

2、增删该查以及分页条件查询都可以使用SpringData 来完成

一、JPA的简绍

1、JAVA怎么调用数据库数据

1、之前是Java程序直接调用数据库但是不方面程序员开发 
2、后来由SUN公司提供了规范接口(JDBC)程序员直接调用SUN公司提供的接口 
3、而SUN让数据库提供实现类(jar包) 
image_1c28q9itbkg61qjo1r4d1ec4lhp20.png-51.9kB

二、JPA是什么

JAVA对象持久化API 
JAVAEE 5.0标准ORM规范,让应用程序统一使用一种方式访问持久层

1、之前是Java程序调用ORM框架,但是ROM框架非常多不便于程序员开发 
2、后来SUN公司提供了一套标准(JPA),让程序直接调用这套标准(JPA) 
但是ROM框架非常多,每个框架都需要实现,每个框架实现的方式和标准不一样 
image_1c28remvp1dko1vkl8k26813ao2d.png-56.3kB


展开更多
发布
头像

{{ item.user.nick_name }} {{ EROLE_NAME[item.user.identity] }}

置顶笔记
讨论图
{{ item.create_time }}回复
  • 删除

    是否确认删除?

    确认
    取消
  • {{ item.is_top == 1 ? '取消置顶' : '置顶'}}

    已有置顶的讨论,是否替换已有的置顶?

    确认
    取消
{{ tag.text}}
头像
{{ subitem.user.nick_name }}{{ EROLE_NAME[subitem.user.identity] }}
{{ subitem.create_time }}回复
删除

是否确认删除?

确认
取消
发布
{{pageType === 'video' ? '讨论区抢占沙发,可获得双倍学分' :'讨论区空空如也,你来讲两句~'}}
发布
{{tips.text}}
{{ noteHeaderTitle }} 笔记{{ hasMyNote ? '我的笔记' : '记笔记' }}
{{ hasMyNote ? '我的笔记' : '记笔记' }}
优质笔记
更新于:{{ $dayjs.formate('YYYY-MM-DD HH:mm:ss', item.last_uptime*1000) }}
头像
{{ detail.username }}

公开笔记对他人可见,有机会被管理员评为“优质笔记”

{{ noteEditor.content.length }}/2000

公开笔记
保存
提问

讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。

记录时间点
记录提问时视频播放的时间点,便于后续查看
公开提问
提交