MyBatis

JAVA架构师成长之路

半城伤御伤魂 提交于 2020-11-06 05:45:03
不努力,和咸鱼有什么区别!!! gpvip性能调优之mysql https://pan.baidu.com/s/145fjs1BFswp4fFIvRDvlQA vip 享学课堂vip之mysql https://pan.baidu.com/s/1r0N1oFghU--bCbm9rse4aw mysql系列精品VIP视频 https://pan.baidu.com/s/1Y9pzr29ByR8m9FnXao3Y8w Mysql从入门到精通系列视频 https://pan.baidu.com/s/1uUCE2egHvfCYCY_Zrya-Vw gpvip性能调优之tomcat https://pan.baidu.com/s/1vpHmyWkOVZB9_JbvI-rB2w ◆◆ gpvip之activeMQ ◆◆ https://pan.baidu.com/s/1RFkx8CqdkWQS-P_vRoNqIA gpvip之docker从入门到精通 https://pan.baidu.com/s/1af8d7BDttvYKdYMIt3jbNw vip课程之docker https://pan.baidu.com/s/1hfFclD6E_b_P-5ERSzBXlg 架构师成长之路之带你走进Docker的世界 https://pan.baidu.com/s/1oT7ZM

Java技术栈

落花浮王杯 提交于 2020-11-05 12:37:48
第一步:打基础 后端知识: 1.1 JAVA语言:找一本JAVA基础书把上面的知识点过一遍,侧重面向对象、文件IO、集合类、多线程;一周后写一个相对复杂的业务逻辑,比如统计代码行(去掉注释)或者计算器(给一个复杂带括号的四则运算公式能给出结果),swing啥的别去学。 1.2数据库:先只学MySQL就可以,自己装一个MySQL用客户端登录进去操作,学习基础语法,初步达到效果建议如下。你构建一套学生成绩表,诸如学生信息、考试成绩、班级信息等;聚焦单表增、删、改、查;左右连接的跨表查询;简单查询,如某个成绩的平均分、超过某个分数的学生信息,班级成绩排名等; 前端知识: 1.3建议直接在W3Cschool网站上把HTML、CSS、JS的基础知识过一遍;你不用都记住,因为目标是后端工程师,有概念就行。 1.4把Jquery学一遍,学完后综合1.3的知识点,看能不能完成一个左数右表的常用管理后台界面框架; 第二步:WEB开发基础 2.1学习tomcat下用servlet+jsp+jdbc完成一个简单的管理系统。目标是有登录,登录进去后能够做一些常见的业务操作,比如结合你自己熟悉的工程项目管理。 备注:之所以不建议直接上框架,是建议你在这一步去了解所谓的web项目,从浏览器到HTTP请求到WEB服务器到数据库的本质是什么,这里会用到Ajax(必须的知识点)。 第三步:框架下的WEB开发 3

oracle插入CLOB类型超过4000个字符报ORA-01704错的解决方法及其它相关场景解决方案

荒凉一梦 提交于 2020-11-04 05:25:03
  最近有位朋友问我:开发中向CLOB字段存储string时报了ORA-01704的错误不知道怎么解决。首先造成这个问题的原因相信大家都明白,就是因为插入的字符串过长导致,因为oracle在插入CLOB的数据默认会以varchar2的类型插入,所以当超过4000个字符时就会报ORA-01704的错误了(varchar2类型的字符长度是4000,注意:oracle对汉字的存储占3个字符) 在这里我分享下对于这个问题解决方法(持久层基于mybatis开发): 创建库: create table test(   id varchar2(200),   text clob ); 创建JavaBean package cn.com; public class test{   private String id;   private String text;   .......//省略get/set方法 } 解决方式:使用变量,通过PL/SQL将数据赋予CLOB变量,通过引用变量将数据插入 mybatis具体XML内容如下: <insert id="insert" parameterType="cn.com.test">   DECLARE   V_LANG CLOB := #{text,jdbcType=CLOB};   BEGIN     INSERT INTO test(ID, TEXT

同事埋了个坑:Insert into select语句把生产服务器炸了

柔情痞子 提交于 2020-11-04 05:20:47
来源 | https://urlify.cn/2qmAju 前言 Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,他发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了。然后他就被开除了。 事故发生的经过 由于数据数据库中order_today数据量过大,当时好像有700W了并且每天在以30W的速度增加。所以上司命令xxx将order_today内的部分数据迁移到order_record中,并将order_today中的数据删除。这样来降低order_today表中的数据量。 由于考虑到会占用数据库I/O,为了不影响业务,计划是9:00以后开始迁移,但是xxx在8:00的时候,尝试迁移了少部分数据(1000条),觉得没啥问题,就开始考虑大批量迁移。 在迁移的过程中,应急群是先反应有小部分用户出现支付失败,随后反应大批用户出现支付失败的情况,以及初始化订单失败的情况,同时腾讯也开始报警。 然后xxx就慌了,立即停止了迁移。 本以为停止迁移就就可以恢复了,但是并没有。后面发生的你们可以脑补一下。

Spring整合Mybatis极简完整示例(结构清晰仅需一个xml系统配置文件!)

人走茶凉 提交于 2020-11-03 12:56:48
看网上的教程都是一堆xml配置文件,我今天出一个教程,除mybatis映射文件外,整个spring容器框架整合mybatis只需要一个xml配置文件即可完成, 无需 :mybatis-config.xml, db.properties,web.xml。 示例环境: spring5.2.9,下载地址: https://repo.spring.io/libs-release-local/org/springframework/spring/5.2.9.RELEASE/ Mybatis:3.5.6,下载地址: https://github.com/mybatis/mybatis-3/releases 以上包均为目前最新版本 1,User.java实体类 package com.sm.entity; public class User { private String loginid; private String loginname; private String sex; private String mobile; public String getLoginid() { return loginid; } public void setLoginid(String loginid) { this.loginid = loginid; } public String

使用SSM 或者 springboot +mybatis时,对数据库的认证信息(用户名,密码)进行加密。

假装没事ソ 提交于 2020-11-03 02:25:15
通常情况下,为了提高安全性,我们需要对数据库的认证信息进行加密操作,然后在启动项目的时候,会自动解密来核对信息是否正确。下面介绍在SSM和springboot项目中分别是怎样实现的。 无论是使用SSM还是springboot,首先我们需要一个加密工具,这里我采用的是AES 高级加密算法。 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /** * AES 高级加密算法,本项目中用于对数据库的验证信息进行加密 */ public class AESUtil { private static String key = "111" ; /** * 加密 * @param content * @param strKey * @return * @throws Exception */ public static byte [] encrypt(String content,String strKey ) throws Exception { SecretKeySpec skeySpec =

面试七家大厂Java岗石沉大海,最后面试官给了我些建议(附:java岗经验分享)

帅比萌擦擦* 提交于 2020-11-02 13:22:22
放年假对于程序员的我们应该是我们所期待的事,可去年的年假却让我让我慎得慌,感觉是回到了上学时的暑假。一放就是两个多月,这么长时间的闭门不出让瘦的像猴一样的我长了将近十公斤的膘,这个还是比较高兴的一件事 。可让我痛苦的是我突然的失去了工作,原因只有几点,我想具体是什么原因大家也应该能猜出来。时光飞逝 生活还的继续,在上个月都是不停的在面试,结果却都是回家等通知。 在我感到失望迷茫的时候却意外接到了美团人事的电话,让我带齐资料礼拜一去人事报道,更让我没有想到的是他顺便给我发了一些尚未整理的书籍资料 ,虽未整理内容却很全面。而我也如期的去了公司开始工作,最近利用了两个礼拜的时间才整理好那位好心面试官推荐的内容。好的东西就要分享。大致内容包括: ZooKeeper MyBatis Dubbo Redis MySQL Spring Spring Boot kafka java 并发编程 微服务 tomcat性能优化 以及开源框架 等等。 温馨提示:资料虽整理不易 可好的东西却不能私藏 必须学会分享 要让有需要的朋友大家一起进步 获取方式: 三连之后 后台私信【文档】或者查看下方即可免费获得 MyBatis 方面 什么是 Mybatis? Mybaits 的优点: MyBatis 框架的缺点: Mybaits框架适用场合: MyBatis 与 Hibernate 有哪些不同? #{}和${

Mybatis 解析配置文件的源码解析

女生的网名这么多〃 提交于 2020-11-02 06:21:46
前言 使用过Mybatis 的都知道,Mybatis 有个配置文件,用来配置数据源,别名,一些全局的设置如开启缓存之类的, 在 Mybatis 在初始化的时候,会加载该配置文件,会对该配置文件进行解析;它采用的是 DOM 的方式进行解析,它这把整个配置文件加载到内存中形成一种树形结构,之后使用 XPath 的方式可以从中获取我们到需要的值。下面来看下 Mybatis 是如何解析配置文件的。 XPath 在查看源码之前,先来看下 XPath 是什么东东,使用过 Python + selenium 进行过自动化的应该都知道,就是通过 XPath 来定位页面元素,如按钮等,之后添加事件来代替人工点击页面。简单点来说,XPath 就是用来定位 XML 元素的,它可用来在 XML 文档中对元素和属性进行遍历。XPath 有它自己的语法,具体的可以参考 W3School,XPath 教程 配置文件 Mybatis 的配置文件大概如下所示,源码分析通过它来进行分析: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

微服务海量日志怎么处理,推荐你试试这款工具....

天大地大妈咪最大 提交于 2020-11-02 05:43:52
作者: 非洲羚羊 cnblogs.com/dengbangpang/p/12961593.html 背景 在企业级的微服务环境中,跑着成百上千个服务都算是比较小的规模了。在生产环境上,日志扮演着很重要的角色,排查异常需要日志,性能优化需要日志,业务排查需要业务等等。然而在生产上跑着成百上千个服务,每个服务都只会简单的本地化存储,当需要日志协助排查问题时,很难找到日志所在的节点。也很难挖掘业务日志的数据价值。 那么将日志统一输出到一个地方集中管理,然后将日志处理化,把结果输出成运维、研发可用的数据是解决日志管理、协助运维的可行方案,也是企业迫切解决日志的需求。 我们的解决方案 通过上面的需求我们推出了日志监控系统。 日志统一收集、过滤清洗。 生成可视化界面、监控,告警,日志搜索。 功能流程概览 在每个服务节点上埋点,实时采集相关日志。 统一日志收集服务、过滤、清洗日志后生成可视化界面、告警功能。 我们的架构 1、日志文件采集端我们使用filebeat,运维通过我们的后台管理界面化配置,每个机器对应一个filebeat,每个filebeat日志对应的topic可以是一对一、多对一,根据日常的日志量配置不同的策略。 除了采集业务服务日志外,我们还收集了mysql的慢查询日志和错误日志,还有别的第三方服务日志,如:nginx等。最后结合我们的自动化发布平台

开发工具:Mybatis.Plus.插件三种方式的逆向工程

北战南征 提交于 2020-11-01 19:13:19
本文源码: GitHub·点这里 || GitEE·点这里 一、逆向工程简介 在Java开发中,持久层最常用的框架就是mybatis,该框架需要编写sql语句,mybatis官方提供逆向工程,可以把数据表自动生成执行所需要的基础代码,例如:mapper接口,sql映射文件,pojo实体类等,避免基础代码维护的繁杂过程。 在实际的使用中,常用的逆向工程方式如上,mybatis框架,mybatis-plus框架,插件方式。 二、Mybatis方式 1、基础描述 基于xml配置的方式,生成mybatis基础代码,包括mapper接口,Mapper映射文件,pojo实体类,PojoExample条件工具类。 2、配置文件 注意这里的targetProject需要配置自定义路径位置。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <context id="testTables"