MyBatis

javaweb各种框架组合案例(八):springboot+mybatis-plus+restful

こ雲淡風輕ζ 提交于 2020-04-25 22:26:01
一、介绍 1. springboot是spring项目的总结+整合   当我们搭smm,ssh,ssjdbc等组合框架时,各种配置不胜其烦,不仅是配置问题,在添加各种依赖时也是让人头疼,关键有些jar包之间还会出现冲突,让你的项目出现难以解决的问题。基于这种情况,springboot横空出世,在考虑到Struts控制层框架有漏洞,springboot放弃(大多数企业同样如此)了Struts,转而代之是springMVC,不过,springboot是自动集成springMVC的,不需要任何配置,不需要任何依赖,直接使用各种控制层注解。springboot是springcloud的基础,是开启微服务时代的钥匙。 2. mybatis-plus   mybatis-plus是国内大佬基于mybatis基础上的一个增强版,且只做增强,不做减少,其核心是BaseMapper,这是一个通用版的dao接口,有着比较完善的CRUD操作,使用时只需将自己的dao接口继承BaseMapper即可,类似于之前 【demo】 中的核心dao思想。 3.对比mybatis优点    不需要mapper.xml文件,dao直接继承BaseMapper<T> 即可使用。 二、新建springboot工程 1. 使用idea2019新建project,选择spring Initializr,next 2.

【IDEA】IDEA使用教程+技巧

馋奶兔 提交于 2020-04-25 17:51:48
一、Intellij IDEA 中文教程 · GitBook https://legacy.gitbook.com/book/dancon/intellij-idea/details 注:一般来说参考上面的教程即可,超级详细,看一遍几乎没有你不能解决的问题了。 可以说这本电子书构建了我对整个IDEA使用的基础,建议收藏,多观看。 如果上述访问太慢,就用这个版本吧,真心快多了。不是一般的多,害我白花了那么长时间。 介绍 - IntelliJ IDEA 使用教程 - 极客学院Wiki http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/introduce.html 附1、官方引导教程 https://www.jetbrains.com/help/idea/meet-intellij-idea.html 注:官方教程,不过是纯英文,可能有阅读难度。不过资料最全最原始。 附2、快捷键手册PDF文档: https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf 附三:常见JAVA类型图标和文件类型图标介绍: 常见文件类型的图标介绍 - IntelliJ IDEA 使用教程 - 极客学院

带着新人学springboot的应用08(springboot+jpa的整合)

試著忘記壹切 提交于 2020-04-25 17:05:05
  这一节的内容比较简单,是springboot和jpa的简单整合,jpa默认使用hibernate,所以本质就是springboot和hibernate的整合。   说实话,听别人都说spring data jpa很简化操作,不用写多少代码,今天我们就来看看。   顺便一提的是,传统大公司用hibernate比较多,互联网公司用mybatis比较多。 1.大概说一下jpa的好处(熟悉的话可以跳过)   前面说过springboot和mybatis的整合,用mybatis的最大优点就是可以看得见sql语句,我们想改就改,想怎么优化就怎么优化。   但是用过hibernate的小伙伴应该知道,hibernate几乎是看不见sql语句的,因为hibernate底层自动生成,但是前提是你要配置好数据库表和一个javabean的映射关系,也比较麻烦,所以就有了jpa,jpa是一个规范,不是框架(这么说很抽象,你可以把jpa当成一个接口,而hibernate是其中的一个实现类),那么我们使用jpa,那么间接的就使用了hibernate。   那为什么这么麻烦呢?直接使用hibernate不就好了吗?   举个很简单的例子,接口Animal,两个实现类Dog、Cat;假如有个项目我们要使用Dog里的crud方法,直接Animal animal = new Dog();然后animal.xx()

seata demo之springcloud-eureka-feign-mybatis-seata

南笙酒味 提交于 2020-04-25 17:01:57
说明 这篇文章主要将seata 提供的demo中 seata-samples\springcloud-eureka-feign-mybatis-seata项目运行起来 seata 一个高性能的分布式事务解决方案,易于和微服务架构整合 github https://github.com/seata/seata 中文wiki https://github.com/seata/seata/wiki/Home_Chinese seata-server运行 下载 https://github.com/seata/seata/releases/download/v0.9.0/seata-server-0.9.0.zip https://github.com/seata/seata/releases/download/v0.9.0/seata-server-0.9.0.tar.gz seata-server搭建可以参考别人的这篇博客 https://www.cnblogs.com/wintersoft/p/10548177.html seata-server建表SQL seata-server-0.9.0\seata\conf\db_store.sql seata-server-0.9.0\seata\conf\db_undo_log.sql 修改数据库名 账号密码 seata-server-0

开发六年mybatisplus使用小结

主宰稳场 提交于 2020-04-25 16:42:21
最近在项目里用到了一个第三方库,叫mybatisplus,是一个mybatis的增强库,简单来说就是增强了mybatis的功能,让mybatis更好用,mybatisplus给的官方定义是Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。http://mp.baomidou.com/#/这是mybatisplus的网站,有兴趣的可以自己看一下. 使用前需要增加maven的以来配置下面就简单说下他具体有哪些好用的功能 com.baomidou mybatis-plus 2.1.9 com.baomidou mybatisplus-spring-boot-starter 1.0.5 下面就简单说下他具体有哪些好用的功能. 1.BaseMapper集成单表crud功能 假如有一个实体类User,要使用mybatis实现增删改查需要写很多的xml配置文件来实现,但是用mybatisplus之后直接继承BaseMapper接口即可实现,无需编写任何的xml文件,代码如下 publicinterfaceUserMapperextendsBaseMapper{ }//继承之后即可直接使用BaseMapper中的增删改查方法,例如userMapper.selectById(id); userMapper

mybatis入门教程之错误收集

被刻印的时光 ゝ 提交于 2020-04-25 16:26:24
mybatis错误一: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 解决方法: 把mybatis的Mapper.java 和 Mapper.xml 和Mapper.xml中得,namespace 保持一致, 简单的说: 把Mapper.java 和Mapper.xml放入到同一个包中,然后XML中得namespace=Mapper.java的全类名 就 OK了 mybatis 错误二: is not known to the MapperRegistry 解决方法: mapper.xml中得namespace配置错误,不是借口的全限定名(包名.类名) mybatis错误三: org.apache.ibatis.cache.CacheException: Error serializing object. Cause: java.io.NotSerializableException: 解决方法: 采用二级缓存的实体类要实现可序列化接口:implements Serializable mybatis 错误四: mybatis 使用二级缓存,但是如果前一个sqlSession不提交 .commit(); 那么就不能使用二级缓存。 解决方法: 未解决 mybatis 错误五

此刻你还在为跳槽而纠结、烦心吗?这篇1000道BATJava面试题分享你,看你掌握多少,有无资本跳槽

耗尽温柔 提交于 2020-04-25 13:47:26
前言唠叨唠叨: 近段时间总是有人私信我说,现在适合裸辞吗,公司待不下去了....... 我.......................懂我这欲言又止的意思吧!!!!! 兄弟我只想说,今年啥情况啊,外面很多人找不到工作,你还想着裸辞,珍惜 这还真是应验了我们近期讨论的那句话:“上班的人不想上班,没工作的想上班” 当然如果发现公司形势不好,那你也确实可以考虑下. 但是你得具备以下条件: 具备很强的专业知识,牛逼,有信心快速找到下一家适合你的公司. 然后有一定存款,可以保证当下辞职后,生活方面不愁 当然学习是很重要的,不努力提升自己,加强自己的专业知识,后面就算是跳槽成功也是很容 易被PASS掉,现实是残酷的,可千万不要因为找到新工作就放松警惕,做咸鱼. 那今天给你们分享这千道面试题,希望在找工作或者是想要跳槽的朋友都可以刷刷,准备充 足,随时应战,顺利拿offer !!!! 面试题 文末福利,如果觉得文章对你有帮助的话,记得点赞、关注、评论给个支持.谢谢 MyBatis 面试题 什么是 Mybatis? Mybaits 的优点: MyBatis 框架的缺点: MyBatis 框架适用场合: MyBatis 与 Hibernate 有哪些不同? #{}和${}的区别是什么? 当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 模糊查询 like 语句该怎么写? 通常一个 Xml

Java对象为啥要实现Serializable接口

风流意气都作罢 提交于 2020-04-25 08:33:30
Serializable接口概述 Serializable是java.io包中定义的、用于实现Java类的序列化操作而提供的一个语义级别的接口。Serializable序列化接口没有任何方法或者字段,只是用于标识可序列化的语义。实现了Serializable接口的类可以被ObjectOutputStream转换为字节流,同时也可以通过ObjectInputStream再将其解析为对象。例如,我们可以将序列化对象写入文件后,再次从文件中读取它并反序列化成对象,也就是说,可以使用表示对象及其数据的类型信息和字节在内存中重新创建对象。 而这一点对于面向对象的编程语言来说是非常重要的,因为无论什么编程语言,其底层涉及IO操作的部分还是由操作系统其帮其完成的,而底层IO操作都是以字节流的方式进行的,所以写操作都涉及将编程语言数据类型转换为字节流,而读操作则又涉及将字节流转化为编程语言类型的特定数据类型。而Java作为一门面向对象的编程语言,对象作为其主要数据的类型载体,为了完成对象数据的读写操作,也就需要一种方式来让JVM知道在进行IO操作时如何将对象数据转换为字节流,以及如何将字节流数据转换为特定的对象,而Serializable接口就承担了这样一个角色。 下面我们可以通过例子来实现将序列化的对象存储到文件,然后再将其从文件中反序列化为对象,代码示例如下: 先定义一个序列化对象User:

2019最新初级JAVA面试问题

ε祈祈猫儿з 提交于 2020-04-24 18:01:00
首先我们需要明白一个事实,招聘的一个很关键的因素 是在给自己找未来的同事,同级别下要找比自己优秀的人,面试是一个双向选择的过程,也是一个将心比心去沟通的过程。 就像我们有的人感觉自己很牛逼,但是拿不到offer,而其他的人菜的一笔,却可以拿到offer,我们称之为玄学offer,遇到这种情况大家也不要感觉到有什么不可描述的心情,一切随缘即可! 小编这里可是有Java面试题参考答案的哟,需要各位小伙伴下来逐一学习 ! 一、开场白 简单的介绍一下自己的工作经历与职责,在校或者工作中主要的工作内容,主要负责的内容;( 你的信息一清二白的写在简历上,能答出来的最好写在上面,模棱两可不是很清楚的最好不要写,否则会被问的很尴尬) 介绍下自己最满意的,有技术亮点的项目或平台,重点介绍下自己负责那部分的技术细节;(主要对自己做过的事情是否有清晰的描述 ) 二、Java基础 什么是字符串常量池? String为什么是不可变的? String s = new String("xyz");究竟产生了几个对象,从JVM角度谈谈? String拼接字符串效率低,你知道原因吗? 你真的了解String的常见API吗? Java中的subString()真的会引起内存泄露么? 浅析Java中的final关键字? 浅析Java中的static关键字? 你对Java中的volatile关键字了解多少? i+

14 微服务电商【黑马乐优商城】:day02-springcloud(理论篇二:知道什么是SpringCloud)

心不动则不痛 提交于 2020-04-24 17:57:34
本项目的笔记和资料的Download,请点击这一句话自行获取。 day01-springboot(理论篇) ; day01-springboot(实践篇) day02-springcloud( 理论篇一:HttpClient的简单使用 ) ; day02-springcloud(理论篇二:知道什么是SpringCloud) ; day02-springcloud(理论篇三:搭建Eureka注册中心) 14 微服务电商【黑马乐优商城】:day02-springcloud 0.学习目标 了解系统架构的演变 了解RPC与Http的区别 掌握HttpClient的简单使用 知道什么是SpringCloud 独立搭建Eureka注册中心 独立配置Robbin负载均衡 4.初识SpringCloud 微服务是一种架构方式,最终肯定需要技术架构去实施。 微服务的实现方式很多,但是最火的莫过于Spring Cloud了。为什么? 后台硬:作为Spring家族的一员,有整个Spring全家桶靠山,背景十分强大。 技术强:Spring作为Java领域的前辈,可以说是功力深厚。有强力的技术团队支撑,一般人还真比不了。 群众基础好:可以说大多数程序员的成长都伴随着Spring框架,试问:现在有几家公司开发不用Spring?SpringCloud与Spring的各个框架无缝整合,对大家来说一切都是熟悉的感觉