什么是SQL注入以及mybatis中#{}为什么能防止SQL注入而${}为什么不能防止SQL注入SQL注入是通过把SQL命令插入到web表单提交或通过页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL指令。  注入攻击的本质是把用户输入的数据当做代码执行。  举例如: 表单有两个用户需要填写的表单数据,用户名和密码,如果用户输入admin(用户名...

在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问Mysql等数据库。这样可以大大缓解数据库的压力。具体业务流程如下:        读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出...

java的线程是通过java.lang.Thread类来实现的。VM启动时会有一个由主方法所定义的线程。可以通过创建Thread的实例来创建新的线程。每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。通过调用Thread类的start()方法来启动一个线程。在Java当中,线程通常都有五种状态,创建...

「一辆车子多少钱?一个房子多少钱?」这问题在工程师或设计师的眼里就如「一辆车子多少钱?一个房子多少钱?」,这个问题实在空泛到一个让人无法言语的境界,这也是我最常被问到的问题「做一个网站多少钱?」。说真的我大概能了解提问人的想法,或许只要说出个大概就是他们要的答案,例如说个多少X千和多少X万之间,或许我的职业病,我实在没有办法容忍这种不明确的答案。为何我...

有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:MySQL: CONCAT()Oracle: CONCAT(), ||SQL Server: +CONCAT() 的语法如下:CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。请注意,Oracle的CONCAT(...

本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念:概念:VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object)...

一、创建分支   a.在合并之前,我们先建立一个自己的分支,如图所示,点击右下角的git状态栏,然后选择New Branch,设置一个分支的名称。b.填写分支的名称。c.由于上面的对话框中勾选了checkout branch,所以默认创建分支就切换到分支了,最新版本直接创建好默认切换到分支。d.然后在分支代码中改动一个文件用来演示效...