MyBatis

Java Web从前端到后台常用框架介绍

拜拜、爱过 提交于 2020-12-26 19:06:12
一、SpringMVC Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。 模型(Model ) 封装了应用程序的数据和一般他们会组成的POJO。 视图(View) 是负责呈现模型数据和一般它生成的HTML输出,客户端的浏览器能够解释。 控制器(Controller ) 负责处理用户的请求,并建立适当的模型,并把它传递给视图渲染。 Spring的web模型 - 视图 - 控制器(MVC)框架是围绕着处理所有的HTTP请求和响应的DispatcherServlet的设计。 Spring Web MVC处理请求的流程 具体执行步骤如下 : 1、 首先用户发送请求————>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图2-1中的1、2步骤; 2、 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView

Java面试 32个核心必考点完全解析

别来无恙 提交于 2020-12-25 18:37:18
[TOC] 这是一份来自哔哩哔哩的Java面试 Java面试 32个核心必考点完全解析(完) 课程预习 1.1 课程内容分为三个模块 基础模块 : 技术岗位与面试 计算机基础 JVM原理 多线程 设计模式 数据结构与算法 应用模块 : 常用工具集 常用框架 缓存 队列 数据库 综合模块 : 系统架构设计 微服务架构 容器化 1.2 换工作面临问题 能力不错,却总被忽略 不知道简历怎么准备 工作年限 美观度 多分简历 不知道面试官考什么 社交门户侧重于大规模并发场景的应用和架构能力 OTO行业侧重于综合能力考察 金融更喜欢逻辑缜密,对高可用安全领域有经验的候选人 校招更多对基础知识和逻辑思维方面的考察,以培养潜力考察为主 初中级工程师则需要多关注知识的广度,基础知识的应用 高级资深工程师需要深入理解基本原理,以综合能力考察为主 没有get到面试官的考察意图。如:问到是否使用某框架,实际是是问该框架的使用场景,有什么特点,和同类可框架对比一系列的问题。 不知道如何提升晋级? 学习首先有个框架 1.3 课程特色 全盘汇总:Java知识体现精细梳理 特近实战:面试官亲自教你拿Offer 潜规则:揭秘技术面试加分&潜规则 权威性:拉勾40W技术岗位大数据支持 课时1:技术人职业发展路径 1.1 工程师发展路径 技术序列 :技术攻坚、架构知识、专业知识 工程师 高级工程师 资深工程师 技术专家

spring+mybatis+spring-mvc详细配置介绍

和自甴很熟 提交于 2020-12-25 10:41:30
spring集成mybatis配置方法 1.准备数据库的配置文件jdbc.properties 2.配置applicationContext.xml <!--1.加载配置文件--> < context: property-placeholder location = " classpath:jdbc.properties " /> <!-- 2.将连接池对象交给Spring去管理 --> < bean id = " dataSource " class = " org.apache.commons.dbcp.BasicDataSource " > < property name = " driverClassName " value = " ${jdbc.driverClassName} " > </ property > < property name = " url " value = " ${jdbc.url} " > </ property > < property name = " username " value = " ${jdbc.username} " > </ property > < property name = " password " value = " ${jdbc.password} " > </ property > </ bean >

如何快速安全的插入千万条数据?

 ̄綄美尐妖づ 提交于 2020-12-24 21:20:27
点击上方 蓝色字体 ,选择“设置星标” 优质文章,第一时间送达 作者:ksfzhaohui 来源: https://urlify.cn/im2uAz 前言 最近有个需求解析一个订单文件,并且说明文件可达到千万条数据,每条数据大概在20个字段左右,每个字段使用逗号分隔,需要尽量在半小时内入库。 思路 1.估算文件大小 因为告诉文件有千万条,同时每条记录大概在20个字段左右,所以可以大致估算一下整个订单文件的大小,方法也很简单使用FileWriter往文件中插入一千万条数据,查看文件大小,经测试大概在1.5G左右; 2.如何批量插入 由上可知文件比较大,一次性读取内存肯定不行,方法是每次从当前订单文件中截取一部分数据,然后进行批量插入,如何批次插入可以使用 insert(...)values(...),(...) 的方式,经测试这种方式效率还是挺高的; 3.数据的完整性 截取数据的时候需要注意,需要保证数据的完整性,每条记录最后都是一个换行符,需要根据这个标识保证每次截取都是整条数,不要出现半条数据这种情况; 4.数据库是否支持批次数据 因为需要进行批次数据的插入,数据库是否支持大量数据写入,比如这边使用的mysql,可以通过设置max_allowed_packet来保证批次提交的数据量; 5.中途出错的情况 因为是大文件解析,如果中途出现错误,比如数据刚好插入到900w的时候

Java 程序员必须掌握的 4 大开源框架!

对着背影说爱祢 提交于 2020-12-24 19:35:37
对于开发来说,我们在工作中普遍都会用到各个开源框架,比如最基础的 Spring,使开发网络编程变得特别简单的 Netty 框架,还有成为目前微服务框架首选的 Spring Cloud 等。在多个框架之上,我们仅需使用几行代码,即可实现业务需要的复杂功能,大大减少了工作量。 也正因如此, 不少人只会用框架,看不懂源码,不了解其底层机制与实现原理,成了一名只会搬运源码库的开发 。 说白了,就是真正牛逼的技术不属于你。 可了解框架中的很多知识和代码,对解决开发中的类似问题是极其有帮助的。 因为它们是经过时间验证和优化过的,如:MyBatis 的架构设计、Dubbo 的服务发现机制、Spring 的设计模式等。 所以,对源码和开源库的学习,成了 Java 开发者提升技能的必经之路。 想给大家看一张图 「开源框架学习知识图」 ,包含了 Java 工程师一定要花时间学会的 四大开源框架--MyBatis、Spring、Spring MVC、Spring Boot,清晰了解学习每个框架所需要的知识点。 (ps:有兴趣的可以直接拉到文章末尾,领取高清版图谱) 梳理了详细的知识点,下面再根据自身的实际经历+对框架源码的理解, 详细为大家整理了一份资料,内含手绘图解、代码注解、视频资料等 ,希望能帮助大家查漏补缺,快速深入框架底层。 一、MyBatis 框架 MyBatis 是一个优秀的持久层 ORM

Java中高级核心知识全面解析——Redis(简介、基本数据结构、跳跃表【简介、实现】)上

丶灬走出姿态 提交于 2020-12-24 15:57:59
目录 一、5种基本数据结构 1.Redis简介 1)Redis 的优点 2)Redis 的安装 3) 测试本地 Redis 性能 2.Redis五种基本数据结构 1)字符串 string ①、SDS 与 C 字符串的区别 ②、对字符串的基本操作 ③、设置和获取键值对 ④、批量设置键值对 ⑤、过期和 SET 命令扩展 ⑥、计数 ⑦、返回原值的 GETSET 命令 2)列表list ①、链表的基本操作 ②、list 实现队列 ③、list 实现栈 3)字典 hash ①、渐进式 rehash ②、扩缩容的条件 ③、字典的基本操作 4)集合 set ①、集合 set 的基本使用 5)有序列表 zset ①、有序列表 zset 基础操作 二、跳跃表 1.跳跃表简介 1)为什么使用跳跃表 2)本质是解决查找问题 3)更进一步的跳跃表 2.跳跃表的实现 1)随机层数 2)创建跳跃表 3)插入节点实现 第一部分:声明需要存储的变量 第二部分:搜索当前节点插入位置 第三部分:生成插入节点 第四部分:重排前向指针 第五部分:重排后向指针并返回 4)节点删除实现 5)节点更新实现 6)元素排名的实现 一、5种基本数据结构 1.Redis简介 “ Redis is an open source (BSD licensed), in-memory data structure store, used as

新技能 MyBatis 千万数据表,快速分页!

雨燕双飞 提交于 2020-12-24 14:43:55
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨捏造的信仰 来源: https://segmentfault.com/a/1190000022478915 基本概念 流式查询指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果。流式查询的好处是能够降低内存使用。 如果没有流式查询,我们想要从数据库取 1000 万条记录而又没有足够的内存时,就不得不分页查询,而分页查询效率取决于表设计,如果设计的不好,就无法执行高效的分页查询。因此流式查询是一个数据库访问框架必须具备的功能。 流式查询的过程当中,数据库连接是保持打开状态的,因此要注意的是:执行一个流式查询后,数据库访问框架就不负责关闭数据库连接了,需要应用在取完数据后自己关闭。 MyBatis 流式查询接口 MyBatis 提供了一个叫 org.apache.ibatis.cursor.Cursor 的接口类用于流式查询,这个接口继承了 java.io.Closeable 和 java.lang.Iterable 接口,由此可知: Cursor 是可关闭的; Cursor 是可遍历的。 除此之外,Cursor 还提供了三个方法: isOpen():用于在取数据之前判断 Cursor

mybatis之The expression ‘oredCriteria‘ evaluated to a null value的解决方法

戏子无情 提交于 2020-12-24 10:28:55
mybatis之The expression 'oredCriteria' evaluated to a null value的解决方法 参考文章: (1)mybatis之The expression 'oredCriteria' evaluated to a null value的解决方法 (2)https://www.cnblogs.com/spacewalk/p/3975415.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4313107/blog/4836407

【分页工具-spring boot】Mybatis PageHelper 集成Spring boot

試著忘記壹切 提交于 2020-12-24 06:32:22
官方文档: https://github.com/pagehelper/pagehelper-spring-boot 1、引入包,测试过以下版本兼容性还是比较好的 <!--Mybatis-SpringBoot集成--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!--mapper--> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.3-beta1</version> </dependency> 2、配置插件,直接贴application.yml 文件内容: spring: datasource: name: mydb type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://127.0.0.1:3306/mar?useUnicode=true&characterEncoding=UTF-8

自动化接口测试(java)

偶尔善良 提交于 2020-12-24 02:35:28
githup地址:https://github.com/SailFan/autoTestMock 包结构: common包 ExtentTestNGIReporterListener.java 为测试报告的监听器 GeneratorSqlmap.java 为mybatis逆向工程的生成类, mybatis可以使用接口的方式直接调用, 也可以通过mapper映射文件(推荐使用), mybatis可以使用手写的方式手写maaper映射文件, 实体, 接口,(灵活, 要什么写什么) 也可以通过mybatis逆向工程的方式来生成mapper, entity, interface, 这样会更方便, 而且错误会更少, 缺少什么映射关系手动补上去就行。 HttpClientTool.java HttpClient工具封装类, 上传文件的post方法未测试, 其他方法测试已通过 MybatisUtil.java mybatis工具类, 用来获取mybatis的session工厂,获取session dao包 mapper的接口以及映射文件 entity包 实体类 loadurl包 里面是用来读取测试url的工具类, 其实可以放到coomon包的, 不过啦, 包不包的无所谓了,反正也懒得改了, 放哪儿都一样 moco包 其实在程序中更应该使用moco api方法的, 像我这种moco