MyBatis

Mybatis

一世执手 提交于 2020-05-04 21:11:42
Mybatis工作原理 1.通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件中构建出SqlSessionFactory。 2.SqlSessionFactory开启一个SqlSession,通过SqlSession实例获得Mapper对象并且运行Mapper映射的Sql语句。 3.完成数据库的CRUD操作和事务提交,关闭SqlSession。 什么是Mybatis的接口绑定,有什么好处? Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。 Mybatis的好处 把Sql语句从Java中独立出来。 封装了底层的JDBC,API的调用,并且能够将结果集自动转换成JavaBean对象,简化了Java数据库编程的重复工作。 自己编写Sql语句,更加的灵活。 MyBatis框架的缺点 (1)SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。 (2)SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。 Mybatis如何分页,分页原理 RowBounds对象分页 在Sql内直接书写,带有物理分页 Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页

【mybatis xml】数据层框架应用--Mybatis(三)关系映射之一对一关系映射

扶醉桌前 提交于 2020-05-04 13:44:31
实际的开发中,对数据库的操作常常会涉及到多张表,这在面向对象中就涉及到了对象与对象之间的关联关系。 针对多表之间的操作,MyBatis提供了关联映射,通过关联映射就可以很好的处理对象与对象之间的关联关系。 目录 你需要了解的知识点 1、关联关系种类 数据库: java 2、关联查询方式 使用 1、创建实体类 2、创建SQL映射的XML文件 3、注册SQL映射的XML文件 4、创建表格 5、测试一对一关联映射 你可能会出现的问题 问题一:提示缺少构造函数 写在最后 你需要了解的知识点 1、关联关系种类 数据库: 在关系型数据库中,多表之间存在着三种关联关系,分别为 一对一 、 一对多 和 多对多 一对一:在任意一方引入对方主键作为外键; 一对多:在“多”的一方,添加“一”的一方的主键作为外键; 多对多:产生中间关系表,引入两张表的主键作为外键,两个主键成为联合主键或使用新的字段作为主键。 java 一对一:在本类中定义对方类型的对象,如A类中定义B类类型的属性b,B类中定义A类类型的属性a;(双向一对一) 一对多:一个A类类型对应多个B类类型的情况,需要在A类中以集合的方式引入B类类型的对象,在B类中定义A类类型的属性a; 多对多:在A类中定义B类类型的集合,在B类中定义A类类型的集合。 2、关联查询方式 MyBatis加载关联关系对象主要通过两种方式: 嵌套查询 和 嵌套结果 。

jdbc,mybatis,hibernate各自有优缺点以及区别

孤人 提交于 2020-05-04 10:16:25
JDBC: 我们平时使用jdbc进行编程,大致需要下面几个步骤: 1,使用jdbc编程需要连接数据库,注册驱动和数据库信息 2,操作Connection,打开Statement对象 3,通过Statement对象执行SQL,返回结果到ResultSet对象 4,使用ResultSet读取数据,然后通过代码转化为具体的POJO对象 5,关闭数据库相关的资源 jdbc的缺点: 一:工作量比较大,需要连接,然后处理jdbc底层事务,处理数据类型,还需要操作Connection,Statement对象和ResultSet对象去拿数据并关闭他们。 二:我们对jdbc编程可能产生的异常进行捕捉处理并正确关闭资源 由于JDBC存在的缺陷,在实际工作中我们很少直接使用jdbc进行编程,用的更多的是ORM对象关系模型来操作数据库,Hibernate就是一个ORM模型 Hibernate:   Hibernate是建立在若干POJO通过xml映射文件(或注解)提供的规则映射到数据库表上的。我们可以通过POJO直接操作数据库的数据,他提供的是一种全表映射的模型。相对而言,Hibernate对JDBC的封装程度还是比较高的,我们已经不需要写SQL,只要使用HQL语言就可以了。 使用Hibernate进行编程有以下好处: 1,消除了代码的映射规则,它全部分离到了xml或者注解里面去配置。 2

jdbc,mybatis,hibernate各自优缺点及区别

≡放荡痞女 提交于 2020-05-04 09:09:01
JDBC: 我们平时使用jdbc进行编程,大致需要下面几个步骤: 1,使用jdbc编程需要连接数据库,注册驱动和数据库信息 2,操作Connection,打开Statement对象 3,通过Statement对象执行SQL,返回结果到ResultSet对象 4,使用ResultSet读取数据,然后通过代码转化为具体的POJO对象 5,关闭数据库相关的资源 jdbc的缺点: 一:工作量比较大,需要连接,然后处理jdbc底层事务,处理数据类型,还需要操作Connection,Statement对象和ResultSet对象去拿数据并关闭他们。 二:我们对jdbc编程可能产生的异常进行捕捉处理并正确关闭资源。 由于JDBC存在的缺陷,在实际工作中我们很少直接使用jdbc进行编程,用的更多的是ORM对象关系模型来操作数据库,Hibernate就是一个ORM模型。 Hibernate: Hibernate是建立在若干POJO通过xml映射文件(或注解)提供的规则映射到数据库表上的。我们可以通过POJO直接操作数据库的数据,他提供的是一种全表映射的模型。相对而言,Hibernate对JDBC的封装程度还是比较高的,我们已经不需要写SQL,只要使用HQL语言就可以了。 使用Hibernate进行编程有以下好处: 1,消除了代码的映射规则,它全部分离到了xml或者注解里面去配置。 2

Jdbc、Mybatis、Hibernate各自优缺点及区别

微笑、不失礼 提交于 2020-05-04 09:06:54
文章出处: Jdbc,Mybatis,Hibernate各自优缺点及区别 先比较下jdbc编程和hibernate编程各自的优缺点。 1、JDBC 我们平时使用jdbc进行编程,大致需要下面几个步骤: 1、使用jdbc编程需要连接数据库,注册驱动和数据库信息; 2、操作Connection,打开Statement对象; 3、通过Statement对象执行SQL,返回结果到ResultSet对象; 4、使用ResultSet读取数据,然后通过代码转化为具体的POJO对象; 5、关闭数据库相关的资源。 Jdbc的缺点: 1、工作量比较大,需要连接,然后处理jdbc底层事务,处理数据类型,还需要操作Connection,Statement对象和ResultSet对象去拿数据并关闭他们。 2、我们对jdbc编程可能产生的异常进行捕捉处理并正确关闭资源。 由于JDBC存在的缺陷,在实际工作中我们很少直接使用jdbc进行编程,用的更多的是ORM对象关系模型来操作数据库,Hibernate就是一个ORM模型。 2、Hibernate Hibernate是建立在若干POJO通过xml映射文件(或注解)提供的规则映射到数据库表上的。我们可以通过POJO直接操作数据库的数据,他提供的是一种全表映射的模型。相对而言,Hibernate对JDBC的封装程度还是比较高的,我们已经不需要写SQL

最新Idea超实用告别996插件,都是免费

青春壹個敷衍的年華 提交于 2020-05-04 08:21:34
Idea告别996插件 在IntelliJ IDEA中,秉着IDEA自带能实现的快捷方式就不用插件的原则,少用些插件,运行性能也提升一些,虽然很少,哈哈。分享下我个人常用的插件,希望对大家有些帮助。插件不胜在多,其实不少插件功能是重复的,通过以下插件我很少切换其他页面,都是IDEA里完成,并大大提升编码效率。 1.UID生成器 对于序列化对象,我们常要生成UID,不少童鞋是使用GenerateSerialVerionUID这个插件,其实IDEA其实就自带有实现的了。 在Preferences->Inspections->Serialization issues->Serialization class without 'serialVersionUID'勾选上,或者在Inspections里直接搜UID就能看到。 image-20200501133533163 然后我们新建一个javabean,例如User类并实现Serializable,光标移动到类名称上或者F2,然后按下alt+enter键就会自动生成UID了。 image-20200501133814496 2.Grep console 一款和IDEA Console相关的插件,可以通过expression表达式过滤日志,给不同级别的日志或者给不同的pattern日志加上背景颜色和上层颜色,其实嘛,也就是为了眼睛看得舒服点

JDBC、MyBatis、Hibernate的区别

六月ゝ 毕业季﹏ 提交于 2020-05-04 08:13:28
JDBC 1.使用JDBC编程需要链接数据库,注册驱动和数据库信息。 2.操作Connection,打开Statement对象。 3.通过Statement执行SQL语句,返回结果放到ResultSet对象。 4.使用ResultSet读取数据。 5.关闭数据库相关的资源。 JDBC缺点: 工作量比较大,需要连接,然后处理jdbc底层事务,处理数据类型,还需要操作Connection,Statement对象和ResultSet对象去拿数据并关闭他们 没有使用框架的时候 sql语句是和java语句一起写在dao层 耦合度高,维护不易而且实际开发中sql是会变的,需要频繁修改 当你要替换某个sql代码的时候 ,需要对整个项目 进行操作,极不方便。 JDBC优点: 接近底层,理论上效率最高 MyBatis 半自动化的持久层框架 半自动 轻量级 1.SQLSessionFactoryBuilder(构造器):它会根据配置信息或者代码生成SqlSessionFactory。 2.SqlSessionFactory(工厂接口):依靠工厂生成SqlSession。 3.SqlSession(会话):是一个既可以发送SQL去执行并且返回结果,也可以获取Mapper接口。 4.SQL Mapper:是由一个JAVA接口和XML文件(或注解)构成,需要给出对应的SQL和映射规则

spring框架ioc(控制反转)第一讲

痴心易碎 提交于 2020-05-04 06:02:56
今天带来的是框架的学习,从今天开始,将会和以前的项目有所不同,从分层和实现类上更加的规范,在将框架之前,首先要了解一下crm系统技术架构: CRM即客户关系管理,是指企业用CRM技术来管理与客户之间的关系。 1、应用业务集成。将独立的市场管理, 销售管理 与售后服务进行集成,提供统一的运作平台。将多渠道来源的数据进行整合,实现 业务 数据的集成与共享。 这一环节的实现, 使系统使用者可以在系统内得到各类数据的忠实记录,代表真实发生的业务状况。 CRM功能 2、业务数据分析。对 CRM系统 中的数据进行加工、处理与分析将使企业受益匪浅。对数据的分析可以采用OLAP的方式进行,生成各类报告;也可以采用业务数据仓库(Business Information Warehouse)的处理手段,对数据做进一步的加工与 数据挖掘 ,分析各数据指标间的关联关系,建立关联性的数据模型用于模拟和预测。这一步所取得的结果将是非常重要的,它不单反映业务现实状况同时也对未来业务计划的调整起到指导作用。 3、决策执行。依据数据分析所提供的可预见性的分析报告,企业可以将在业务过程中所学到的知识加以总结利用,对业务过程和业务 计划 等做出调整。通过调整达到增强与客户之间的联系,使业务运作更适应市场要求的目的。 在实施CRM时,企业应根据CRM实施失败的原因,将CRM实施过程分成进入学习、熟悉应用和熟练改进三个阶段

Java程序员不同层次的薪资对照,你在哪个档口?

不羁岁月 提交于 2020-05-04 01:56:15
java程序员这个职业赚钱吗?能赚多少钱?有很多即将进入这个行业的年轻朋友都很想问这个问题,我想说“三百六十行,行行出状元”想拿高薪不一定非要做程序员,只是相对而言程序员这个职业起薪更高,机会也更多,当然不同层次程序员薪资也不一样,我们来了解一下程序员的修炼三层境界: 第一层境界:剑指四方,试问天下谁与争锋 修炼第一层境界的程序员,对Java开发技术尽数掌握,开发工具掌握的也较为娴熟。可以将第二层次程序员交给的任务完成的很出色,可以按要求独立完成类,接口和算法的开发。注重技巧,对具体的编程语言非常熟悉。 希望在自己开发的所有项目中,能用上的技术全用上,目的只有一个,就是尽可能多的获得实践机会,满口都在谈,什么框架是最优秀的,C#和Java的优劣,满脑子想着如何将一个程序编写的更复杂。热衷于探讨技术问题,甚至有可能因为一个开发观点而和别人争论的面红耳赤。 在编码中,经常可以看到他们会这样写程序代码: 他们非常想证明自己掌握技术的娴熟程度,没错,他知道这个知识,在这里可以省略大括号。工作具有活力,常常因为一个技术细节加班到深夜,大多属于拼命三郎型。如果项目不能让他们学到他们想要的东西,他们会放弃这些项目,去投靠别的公司,跳槽对于他们来说很平常。 第一层境界特征: 工作时间:三年内 工作任务:按要求编写类和接口的具体实现代码 工作内容:编写具体的代码 开发目标:无所不能 开发特点

Mybatis-Plus学习.,简化你的开发,提升开发效率.

元气小坏坏 提交于 2020-05-03 23:23:42
<!-- TOC --> Mybatis-Plus学习以及实践 简介 参考网址 开发环境 开始开发 - 配置pom.xml - Dao/Service/Entity - 基本方法 - 查询类 - 更新类 分页插件 - pom.xml - 代码示例 生成代码 - pom.xml - 代码 乐观锁插件 - 配置 - 说明 Demo <!-- /TOC --> Mybatis-Plus学习以及实践 简介 即对Mybatis进行了增强,结合了Hiberante的类型,封装了一些单表的操作,可以对进行单表的操作不需要写一些sql,直接上手开发,加快了开发效率,不过同时也会造成访问数据库的代码混杂的情况,有利有弊. 参考网址 官网文档 ,官方文档. 开发环境 Eclipse java8 SpringBoot + maven 开始开发 这里只是配置运行一下简单的Mybatis-plus项目,试验的对象只有一张表,完成对齐的CURD. 初始化一个SpringBoot或者复制SpringBoot项目,初始化的时候可以去springBoot提供的网址进行初始化 Spring Initializr 配置pom.xml <!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus