![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 92
_Rick
这个作者很懒,什么都没留下…
展开
-
MySQL的COUNT语句暗藏玄机
前言: 关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT 但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会被虐。不信的话请尝试回答下以下问题: 1、COUNT有几种用法? 2、COUNT(字段名)和COUNT( * )的查询结果有什么不同? 3、COUNT(1)和COUNT( * )之间有什么不同? 4、COUNT(1)和COUNT( * )之间的效率哪个更高? 5、为什么《阿里巴巴Java开发手册》建议使用COUNT(原创 2021-02-24 17:15:26 · 218 阅读 · 0 评论 -
30条书写高质量SQL的建议
30条书写高质量SQL的建议 ##1、查询 SQL 尽量不要使用 select *,而是 select 具体字段 反例子: select * from employee; 正例子: select id,name from employee; 理由如下: 只取需要的字段,节省资源、减少网络开销。 select * 进行查询时,很可能就不会使用到覆盖索引了,就会造成回表查询。 2、如果知道查询结果只有一条或者只要最大/最小一条记录,建议用 limit 1 正例: select id,na原创 2020-11-12 15:23:21 · 106 阅读 · 0 评论 -
线程与同步(锁):创建方式及其案例(卖火车票)
实现线程一:继承Thread类 创建线程的步骤: 1.定义一个类继承Thread。 2.重写run方法。 3.创建子类对象,就是创建线程对象。 4.调用start方法,开启线程并让线程执行,同时还会告诉jvm去调用run方法 public class MyThread extends Thread { @Override public void run() { ...原创 2019-03-18 22:38:15 · 268 阅读 · 0 评论 -
自定义Mybatis持久层框架
自定义持久层框架 1.回顾JDBC 创建自定义持久层框架前,让我们先来回顾一下,JDBC的操作: public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { //加载数据库驱动原创 2020-07-14 16:01:47 · 320 阅读 · 0 评论 -
C3P0和DBCP的区别
原创 2019-05-12 21:57:41 · 619 阅读 · 0 评论 -
Spring的JDBC的使用(配置和CRUD)
导包: Spring的JDBC模板的使用 一、默认连接池 创建数据库 create database spring4; use spring4; create table account(id int primary key auto_increment,name varchar(20),money double); 使用JDBC模板保存数据 创建一个测试类 pa...原创 2019-05-12 20:38:07 · 484 阅读 · 0 评论 -
DBUtils模版CRUD
准备:导包 1.创建c3p0-config.xml配置文件放在src下 <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!-- default-config 默认的配置, --> <default-config> <property name="driver...原创 2019-04-03 16:02:19 · 192 阅读 · 0 评论 -
C3P0模板
1.创建c3p0-config.xml配置文件放在src下 <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!-- default-config 默认的配置, --> <default-config> <property name="driverClass"...原创 2019-04-03 15:04:53 · 173 阅读 · 0 评论 -
数据库连接池C3P0的使用
一、直接使用代码链接(一般企业开发不会用到。大多数用方法二) 1.导入jar 2.新建JDBCUtil import java.io.FileInputStream; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Resu...原创 2019-04-03 14:11:05 · 229 阅读 · 0 评论 -
数据库连接池DBCP的使用
一、直接使用代码链接(一般企业开发不用这种方式) 1.导入JAR 把jar包拷贝到lib文件夹里面然后右击 build path一下 2.建一个jdbc.proprtties文件 driverClass=com.mysql.jdbc.Driver url=jdbc:mysql://localhost/mydb name=root password=xxxxxx 3.新建JDBCUt...原创 2019-04-03 09:05:20 · 173 阅读 · 0 评论 -
事务&事务的安全隐患
事务 Transaction 其实指的一组操作,里面包含许多个单一的逻辑。只要有一个逻辑没有执行成功,那么都算失败。 所有的数据都回归到最初的状态(回滚) 为什么要有事务? 为了确保逻辑的成功。 例子: 银行的转账。 使用命令行方式演示事务。 开启事务 start transaction; 提交或者回滚事务 commit; 提交事务, 数据将会写到磁盘上的数据库 rollba...原创 2019-03-31 22:24:53 · 357 阅读 · 0 评论 -
通用增删改(问号可变)
@Test public void testUpdate(){ // update("insert into account values(null , ?,?)" , "aa",10); // update("delete from account where id = ?" ,14); // update("update account set money = ? whe...原创 2019-04-04 18:02:56 · 157 阅读 · 0 评论 -
JDBC模板CRUD
创建一个Util工具类 创建工具类为了方便后期管理,例如对数据库做出修改的时候只需要在工具类里修改一处即可! import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLEx...原创 2019-03-03 23:35:16 · 330 阅读 · 0 评论 -
JDBC事务
事物 准备:导入数据库Utils 1.简单的一般回滚操作 package demo2; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Test { public s...原创 2019-03-04 20:31:11 · 247 阅读 · 0 评论 -
JDBC批处理方法
每次新建Connection的时候相当于建了一座桥,每次一辆车(PreparedStatement)运送货物(ResultSet)成本太高! 每次都建立网络连接的时间远远大于本地的时间,为了处理大量的数据 所以将数据打包,然后发送 static void createBatch() throws SQLException { Connection conn = null; Pre...原创 2019-03-04 22:39:20 · 331 阅读 · 0 评论