MyBatis

MyBatis~关联的嵌套Select查询和关联的嵌套结果映射(association元素的使用)、集合的嵌套Select查询和集合的嵌套结果映射(collection的使用)

北城以北 提交于 2020-11-01 13:53:55
文章目录 解决一对多数据问题 关联的嵌套 Select 查询 关联的嵌套结果映射 解决一对多问题 集合的嵌套Select查询 集合的嵌套结果映射 小结 解决一对多数据问题 在一对多的数据表结构中,比如一个老师教育着很多学生, 对于学生而言, 这就是一个一对多的问题 这个主要解决的就是如果我们的POJO对象的属性中,有一个是引用类型,不是基本类型或者String, 那么简单的sql语句肯定是解决不了的 学生类型 public class Student { private int id ; private String name ; private Teacher teacher ; } 老师类型 public class Teacher { private int id ; private String name ; } 比如我们现在有一个需求, 要查找数据库中所有的学生对象, 该如何做? 关联的嵌套 Select 查询 < select id = "selectStudent" resultMap = "studentTeacher" > select * from student ; < / select > < resultMap id = "studentTeacher" type = "student" > < association property =

同样都是Java开发3年,凭什么别人拿30k?你只拿10k?

给你一囗甜甜゛ 提交于 2020-11-01 13:53:03
目录 一、常见的框架源码分析 二、分布式框架 三、并发编程专题 四、性能调优 五、微服务系列 很多人做Java开发2,3年后,都会感觉自己遇到瓶颈。什么都会又什么都不会,如何改变困境? 很多人写了7,8年代码却还只是一个码农。如何突破自我?拿到更高的薪资? 很多程序员会有一个苦恼,工作了很久,在公司一味 的 增删改查,得不到技术的提高,在小企业温水煮青蛙,无缘底层代码,只会用却不知其原理!年龄大了不能熬了直接被劝退? 同样都是Java开发3年,凭什么别人拿30K,你只拿10K,为什么? 有人会会说:你技术没有别人高!人家有关系你没有!人家有后台! 在互联网的时代,公司的发展利益往往都是和项目挂钩的,难道就凭关系,后台不用技术了,没有技术的公司可以呆多久? 针对这些情况,小编看了很多文章和面试,最后总结了一个Java开发的程序员工作三年,想月薪3 0 K技术成长路线,这些也是目前身为一个程序员应该了解5大核心技术,那么接下来我们来详细看看。 一、常见的框架源码分析 1、应用框架Spring 2、ORM框架mybatis 3、应用框架Spring 想学习Java技术体系,这三个框架 师 必须需要了解的,编码必备的Spring5,做应用必不可少的框架mybatis。 二、分布式框架 1、初始分布式 2、分布式服务治理中间件(zookeeper,dubbo) 3、分布式消息中间件

代码怎么写才能被面试官看上?大佬教你下饭的操作。

生来就可爱ヽ(ⅴ<●) 提交于 2020-11-01 00:27:36
目录 一、MyBatis 不要为了多个查询条件而写 1 = 1 二、迭代entrySet() 获取Map 的key 和value 三、使用Collection.isEmpty() 检测空 四、初始化集合时尽量指定其大小 五、使用StringBuilder 拼接字符串 六、若需频繁调用Collection.contains 方法则使用Set 七、使用静态代码块实现赋值静态成员变量 八、删除未使用的局部变量、方法参数、私有方法、字段和多余的括号。 九、工具类中屏蔽构造函数 十、删除多余的异常捕获并跑出 工作了几个月,感觉自己代码很不规范,有很多冗余,比较乱,请问怎么针对性的改善代码规范? 下面分享一篇大佬的规范代码实操。 代码能够写成这样 666 啊,大佬收徒吗? 一、MyBatis 不要为了多个查询条件而写 1 = 1 当遇到多个查询条件,使用where 1=1 可以很方便的解决我们的问题,但是这样很可能会造成非常大的性能损失,因为添加了 “where 1=1 ”的过滤条件之后,数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描(即全表扫描) 以比较此行是否满足过滤条件,当表中的数据量较大时查询速度会非常慢;此外,还会存在SQL 注入的风险。 反例: <select id="queryBookInfo" parameterType="com.tjt

要去面试,先刷完这16道高频面试题,阿里,字节跳动,美团任你选

╄→гoц情女王★ 提交于 2020-10-31 07:29:48
1.JDK8 新特性 Lambda 表达式-也是函数编程的一种方式(将函数做为参数) 方法的应用,应用已有的java类对象的方法或者构造器。与Lambda表达式相结合,方法应用使得语言构造更加简洁,从而减少代码的冗余 默认方法,默认方法就是一个在接口里边有了一个实现的方法 新工具-新的编译工具,如:Nashorn引擎jjs,类依赖分析器jdeps Stream API - 把真正的函数式编程风格引入到Java中。 Date Time API - 加强对日期与时间的处理 Optional 类 - Optional 类已经成为Java 8 类库的一部分,用来解决空指针异常 Base64 Java8 内置了Base64 编码的编码器和解析器 2.hashMap 底层实现?当你put一个元素时,在底层结构是如何执行的? 首先需要知道在不同的JDK版本上面hashMap 的实现是有区别的: JDK8之前: 数组 + 链表 JDK8之后:数组 + 链表 + 红黑树 当你put元素时: 执行步骤: a.计算该元素的hashCode 值 b.通过计算它的hashCode 值去确定数组下标,数组的初始化16大小,增长因子为0.75 c.当存在哈希冲突是,相同的hashCode 值得到的数组下标就是会一样的,则单纯的数组则不满足,需要链表的支持 d.链表满足长度大于8时转成红黑树,那为啥8呢

二面快手,凉在SpringBoot上!

旧街凉风 提交于 2020-10-31 06:03:42
Java 圈内最近对“面试问 Spring” 的吐槽越来越多:不管大小 公司 o r 项 目,面试官都要跟 你扯一扯 Sprin g Boot、微服务 ,如果答不下来,大概率直接说拜拜! 不少互联网企业,像快手、美团、网易这些一线大厂都在用 Spring 来做敏捷开发。尤其有过不少项目经历的技术人,跟 Spring 相处的时间比跟对象相处的时间还要长。“SpringBoot、SSM 框架有什么好问的?”等类似的吐槽频频曝出。 的确, 作为Java 后端开发, 技术更新迭代是相当快, SpringBoot、SringCloud、Dubbo等各种开源框架 对于使用者来说十分友好,只要编程功底良好,较短的时间就能玩转。但如果仅仅止步于此,就有点陷入误区了。 以SpringBoot 为例,它 解决 的问题就是 Spring 依赖和自动配置的问题。 这 对初学者来说非常便捷 ,但一旦涉及到组件的细节配置,其他框架的整合、调优, 改起来就非常吃力,最后只能追源码。 因此,要想把一种技术吃透,仅限于会用是远远不够的。 如何提高代码性能?出现问题如何快速定位和排查?如何高效实现业务整合? 都是开发者需要考虑的问题。 这里分享一个十分干货的技术分享 《 SpringBoot 技术整合秘籍》,相信各位 从中学习到前辈优秀的高性能代码设计经验、调优配置技巧,总结出最优使用方案,绕过工作中遇到的很多坑

(二)spring cloud微服务分布式云架构

拟墨画扇 提交于 2020-10-30 10:26:12
spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下技术总结,希望可以帮助到大家: View: H5、Vue.js、Spring Tag、React、angularJs Spring Boot/Spring Cloud: Zuul、Ribbon、Feign、Turbine、Hystrix、Oauthor2、Sleuth、API Gateway、Spring Cloud、Config Eureka、SSO、Spring Cloud、 BUS、Turbine、Zipkin、Cache、Spring Cloud Admin、API Gateway、ELK Spring Cloud Security、 Spring Cloud Stream Component: RoketMQ、Kafka、MongoDB、OSS、Redis、Swagger、Zuul、Label、BASE、Charts、Utils DAO: Spring Data、Mybatis、OSS、 DTO Data Storage: RDBS DFS、NOSQL/Hadoop Infrastructure: LogBack、BUS、Jenkins、Zipkin、Druid

整合ssm框架

断了今生、忘了曾经 提交于 2020-10-30 08:19:00
连载于 https://www.cnblogs.com/gscq073240/articles/6298055.html 在写代码之前我们先了解一下这三个框架分别是干什么的? 相信大以前也看过不少这些概念,我这就用大白话来讲,如果之前有了解过可以跳过这一大段,直接看代码! SpringMVC:它用于web层,相当于controller(等价于传统的servlet和struts的action),用来处理用户请求。举个例子,用户在地址栏输入http://网站域名/login,那么springmvc就会拦截到这个请求,并且调用controller层中相应的方法,(中间可能包含验证用户名和密码的业务逻辑,以及查询数据库操作,但这些都不是springmvc的职责),最终把结果返回给用户,并且返回相应的页面(当然也可以只反馈josn/xml等格式数据)。springmvc就是做前面和后面过程的活,与用户打交道!! spring :太强大了,以至于我无法用一个词或一句话来概括它。但与我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们 Java 中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。另外spring的aop,事务管理等等都是我们经常用到的。 MyBatis

近期Java高级开发岗面试总结

六眼飞鱼酱① 提交于 2020-10-30 04:28:53
近期 Java高级开发岗 面试总结 哈喽大家好,我是walking,这是我的公众号:编程大道。 很久没和大家见面了,文章更新的速度略有延后。这个公众号断断续续的也维护了有三年了,其实实际开始专心维护的时间也就从1年多前开始的,总是忙于工作,没有太多的时间静下心来好好写,好在有400多个小伙伴关注着,不离不弃的,加油,继续努力。 上周抽空开放了一下招聘网站上的简历,抱着试一试的态度,主要是想检验一下自己这段时间学的怎么样,如果有好的工作机会还是会考虑一下的。 不一会儿就有十几个人打招呼,看有的是外包我就直接回绝了,有几个看着还行的就简单聊了几句发送了简历,其中有四个很快就安排了面试。面试如期而至,以下是几次面试的面试题,面完之后我记录下来了。 某移动通讯公司 1. java 三大特征,以及在代码方面的表现 2. 父类被那些访问修饰符修饰才能被继承? 3. S tring 能被继承吗? 4. 操作 S tring 最高效的方式 5. String 、 S tringbuffer 和 S tringbuilder 的区别 6. 内存溢出是怎么导致的? 7. 哪些对象是垃圾对象但是无法被回收 ? 8. 线程了解吗,创建线程的几种方式 9. 怎么去停止一个线程 ? 10. 创建线程池的方式 ? 11. 线程池都有哪些参数 ? 12. 什么时候要考虑设置最大线程数

Java程序员从阿里、京东、美团面试回来,这些面试题你会吗?

时光毁灭记忆、已成空白 提交于 2020-10-30 01:20:32
最近有很多朋友去目前主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴),面试回来之后会发给我一些面试题。有些朋友轻松过关,拿到offer,但是有一些是来询问我答案的。 其实本来真的没打算写这篇文章,主要是自己得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。 但是,最近问我的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了。 说实话,我只能隐约想起并发、JVM、分布式、TCP/IP协议这些个关键字,具体的问题真的是几乎都没记住。而且就算我记住了,也告诉你了,你也背会了,但我觉得,在面试中,你被问到一模一样问题的可能性依然很小。 甚至,就算你运气好被问到了,你也照着背下来了,也不一定就能对你的面试起到正面的作用,因为面试官万一多问一句,你可能就露馅了,那还不如干脆点说不会更好,在此给大家讲一下大型互联网企业面试题。 先来看下自己记录的面试材料: 一、阿里巴巴面试 第一个:阿里面试都问什么? :(55分钟) 1、开发中Java用了比较多的数据结构有哪些? 2谈谈你对HashMap的理解,底层原理的基本实现,HashMap怎么解决碰撞问题的? 这些数据结构中是线程安全的吗?假如你回答HashMap是线程安全的