![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java 数据库
Cssembly
这个作者很懒,什么都没留下…
展开
-
MySQL优化
有索引不走,如上。原创 2022-09-12 19:12:02 · 167 阅读 · 0 评论 -
Mybatis 二级缓存
补充:配置文件中,datasource的type类型如果设置成pooled,则是默认使用mybatis自带的连接池。一级缓存和二级缓存,一级缓存默认开启,以会话为单位,会话一旦关闭缓存也就会释放。 开启二级缓存,在mapper文件中设置LFU算法,最近最少使用...原创 2022-06-05 21:08:55 · 68 阅读 · 0 评论 -
Mybatis SelectKey和UseGeneratedKey的区别
useGeneratedKey只支持支持自增主键的数据库。 oracle只能使用selectKey原创 2022-06-05 08:58:53 · 264 阅读 · 0 评论 -
java JDBC 连接池
阿里巴巴Druid连接池的配置与使用配置文件:使用:其实,连接池不是什么很高深的概念。web服务器和数据库服务器之间的通信也要经过套接字。如果每次操作数据库时都要新建tcp连接太费时间,而且还要经过数据库用户和权限认证的过程。不如先把连接建好,并为数据库服务器端的套接字创建负责读写它的线程。这样,如果web服务器的某个线程需要和数据库服务器通信,直接向web服务端的一个已建好连接的套接字写东西或读东西就行了,数据库那端的线程会负责处理的。另外,DataSource类的官方描述是物理数据源的工厂,原创 2022-06-03 16:36:45 · 126 阅读 · 0 评论 -
java JDBC 批处理
如果不使用批处理的话,就要创建n个PreparedStatement对象,每执行一次增删改操作都要向数据库服务器发送一次数据,包括sql语句和参数,数据库收到sql和参数后会解析并执行。如果使用批处理,就只要想数据库服务器一次性发送一次数据,包括一条sql语句个n列参数,数据库服务器也只要解析一次sql语句,会大大提升效率。这里我们也可以看出来,PreparedStatement执行execute相关方法时,才会向套接字内写数据发送给数据库。在这里,我认为,批处理会把sql语句和参数都拼接起来,拼成一原创 2022-06-03 15:01:38 · 275 阅读 · 0 评论 -
java JDBC 事务
执行一次增删改查的操作前事务是自动开启的,jdbc 默认自动提交,即执行每条sql语句后都会提交一次。可以关闭自动提交,手动控制提交时机。原创 2022-06-03 13:32:51 · 311 阅读 · 0 评论 -
java JDBC 封装工具类
封装工具类:写入数据: 更新:删除:原创 2022-06-03 09:59:13 · 144 阅读 · 0 评论 -
java JDBC Sql注入攻击
查询:sql注入攻击和PreparedStatement: 其实本质就是PreparedStatement会对参数中的特殊字符进行转义处理,而不是直接拼接。它使用一个?占位,代表一个参数。在设置参数时,如果参数是字符串,拼接sql语句时会自动为字符串加上引号以此表明这是一个字符串,同时对参数内自带的特殊符号会进行转义处理。...原创 2022-06-03 08:59:30 · 285 阅读 · 0 评论 -
java JDBC 基础五步骤
web服务器会为每一个客户端连接创建一个线程。当客户请求需要进行对数据库的操作时,就需要建立和数据库服务器的连接。这个连接也是使用TCP/IP协议,因为它也是一种网络传输。这个物理连接在Java中就对应了一个java.sql.Connection接口的实现类的对象。显然,数据库服务器肯定也是多线程的,它应该也会为每一个web服务器线程发起的连接创建一个线程。这样一个Connection对象就对应了一个web服务器线程和一个数据库服务器线程之间的连接。一个数据库服务器线程服务于一个web服务器线程,而一个w原创 2022-06-02 15:18:49 · 434 阅读 · 0 评论