一、大结果集的分页(重点,难点)

1、分批次查询:分页

2、基于数据库的分页:依赖的是数据库的分页语句(不同数据库是不同的)

MySQL:每页显示10条。

select * from XXX limit M,N;

M:开始记录的索引。第一条记录的索引为0.

N:一次查询几条记录。

第一页:select * from CUSTOMERS limit 0,10;

第二页:select * from CUSTOMERS limit 10,10;

......

第n页:select * from CUSTOMERs limit (n-1)*10,10;

总页数:

select count(*) from customers %10==0?select count(*) from customers /10:select count(*) from customers /10+1;

二、批处理:batch(练一遍)

降低与数据库的交互次数,提升执行效率
public class BatchDemo {

	/*
create database day16;
use day16;
create table t1(
id int primary key,
name varchar(100)
);
*/ //向数据库中插入2条记录,再把第一条删除掉
//Statement可以批处理语句不同的。
@Test
public void test1() throws Exception{
Connection conn = JdbcUtil.getConnection();
Statement stmt = conn.createStatement();
String sql1 = "insert into t1 values(1,'aaa1')";
String sql2 = "insert into t1 values(2,'aaa2')";
String sql3 = "delete from t1 where id=1";
stmt.addBatch(sql1);//Statement实例内部有一个List,sql语句加到List中了
stmt.addBatch(sql2);
stmt.addBatch(sql3); int[] ii = stmt.executeBatch();//返回值是一个数组,数组的元素为每条语句影响到的行数
for(int i:ii)
System.out.println(i); JdbcUtil.release(null, stmt, conn); } //插入10条记录。PreparedStatement 适合语句相同,只是参数不通的情况
@Test
public void test2() throws Exception{
Connection conn = JdbcUtil.getConnection();
PreparedStatement stmt = conn.prepareStatement("insert into t1 values (?,?)");
for(int i=0;i<10;i++){
stmt.setInt(1, i+1);
stmt.setString(2, "aaaa"+(i+1));
stmt.addBatch();
} stmt.executeBatch();
JdbcUtil.release(null, stmt, conn);
} //插入1000001条记录。PreparedStatement 适合语句相同,只是参数不通的情况
@Test
public void test3() throws Exception{
Connection conn = JdbcUtil.getConnection();
PreparedStatement stmt = conn.prepareStatement("insert into t1 values (?,?)");
for(int i=0;i<1000001;i++){
stmt.setInt(1, i+1);
stmt.setString(2, "aaaa"+(i+1));
stmt.addBatch();
if(i%1000==0){
stmt.executeBatch();
stmt.clearBatch();//清理缓存
}
} stmt.executeBatch();
JdbcUtil.release(null, stmt, conn);
}
}

三、Clob、Blob的读写(练一遍):文件上传

LOB:Large Object

Clob:Character Large Object字符(小说)

Blob:Binary Large Object二进制

//大数据的存取
public class LobDemo {
/*
create table t2(
id int,
content longtext
);
*/
@Test
public void test1() throws Exception{
Connection conn = JdbcUtil.getConnection();
PreparedStatement stmt = conn.prepareStatement("insert into t2 values (?,?)");
stmt.setInt(1, 1);
//以流的方式
File file = new File("src/jpm.txt");
Reader reader = new FileReader(file);
stmt.setCharacterStream(2, reader, (int)file.length());//PreparedStatement的实现是由数据库驱动提供的
//MySQL:setCharacterStream(int,Reader,long);根本没有实现。
//MySQL根本不支持那么大的数据。
stmt.executeUpdate();
JdbcUtil.release(null, stmt, conn);
} //取大文本数据
@Test
public void test2() throws Exception{
Connection conn = JdbcUtil.getConnection();
PreparedStatement stmt = conn.prepareStatement("select * from t2 where id=1");
ResultSet rs = stmt.executeQuery();
if(rs.next()){
Reader r = rs.getCharacterStream("content");
//内容保存D盘的1.txt文件中
Writer w = new FileWriter("d:/1.txt");
int len = -1;
char c[] = new char[1024];
while((len=r.read(c))!=-1){
w.write(new String(c), 0, len);
}
r.close();
w.close();
}
JdbcUtil.release(rs, stmt, conn);
} /*
create table t3(
id int,
content longblob
);
*/
@Test
public void test3() throws Exception{
Connection conn = JdbcUtil.getConnection();
PreparedStatement stmt = conn.prepareStatement("insert into t3 values (?,?)");
stmt.setInt(1, 1);
//以流的方式
InputStream in = new FileInputStream("src/26.jpg"); stmt.setBinaryStream(2, in, in.available());
stmt.executeUpdate();
JdbcUtil.release(null, stmt, conn);
}
@Test
public void test4() throws Exception{
Connection conn = JdbcUtil.getConnection();
PreparedStatement stmt = conn.prepareStatement("select * from t3 where id=1");
ResultSet rs = stmt.executeQuery();
if(rs.next()){
InputStream in = rs.getBinaryStream("content");
OutputStream out = new FileOutputStream("d:/wife.jpg"); int len = -1;
byte b[] = new byte[1024];
while((len=in.read(b))!=-1){
out.write(b,0,len);
}
in.close();
out.close();
}
JdbcUtil.release(null, stmt, conn);
}
}

四、如何调用存储过程

aaarticlea/png;base64,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" alt="" />

/*
delimiter $$ CREATE PROCEDURE demoSp(IN inputParam VARCHAR(255), INOUT inOutParam varchar(255))
BEGIN
SELECT CONCAT('zyxw---', inputParam) into inOutParam;
END $$ delimiter ;
*/ //如何调用已经存在的存储过程
public class CallableDemo {
@Test
public void test1() throws Exception{
Connection conn = JdbcUtil.getConnection();
CallableStatement stmt = conn.prepareCall("{call demoSp(?,?)}");
//输入参数:设置值
//输出参数:注册数据类型即可
stmt.setString(1, "YY");
stmt.registerOutParameter(2, Types.VARCHAR); stmt.execute();
//打印执行的结果
System.out.println(stmt.getString(2));
JdbcUtil.release(null, stmt, conn);
}
}

五、事务入门(重点)

1、MySQL:每一条语句都属于独立事务,默认自动管理的。

2、开启事务:start transaction;   日后的语句都会处于同一个事务之中。

提交事务:commit;

回滚事务:rollback;

3、JDBC如何控制事务

//事务控制案例
/* create table account(
id int primary key auto_increment,
name varchar(40),
money float
)character set utf8 collate utf8_general_ci; insert into account(name,money) values('aaa',1000);
insert into account(name,money) values('bbb',1000);
insert into account(name,money) values('ccc',1000); */
public class TxDemo {
@Test
public void test1(){
Connection conn = null;
PreparedStatement stmt = null;
try{
conn = JdbcUtil.getConnection();
conn.setAutoCommit(false);//相当于start transaction stmt = conn.prepareStatement("update account set money=money-100 where name='bbb'");
stmt.executeUpdate(); // int i=1/0; stmt = conn.prepareStatement("update account set money=money+100 where name='aaa'");
stmt.executeUpdate(); conn.commit();// 提交事务
}catch(Exception e){
// if(conn!=null){
// try {
// conn.rollback();
// } catch (SQLException e1) {
// e1.printStackTrace();
// }
// }
throw new RuntimeException(e);
}finally{
JdbcUtil.release(null, stmt, conn);
}
}
}

六、事务的特性(重点。面试)

1、事务的特性:

原子性:处于事务中的多条语句是不可分割的。

一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如:转账,转账前A+B=2000,转账后A+B=2000

隔离性:多线程并发。一个事务不能被其他线程中的事务所打扰。

持久性:事务一旦提交,永久保存起来。

2、事务的隔离级别:属于事务的。都已开启了事务为前提。

不考虑事务的隔离级别,会出现以下情况(是错的)

l  脏读:一个线程中的事务读到了另外一个线程中未提交的数据。

l  不可重复读:一个线程中的事务读到了另外一个线程中已经提交的update的数据。

l  虚读:一个线程中的事务读到了另外一个线程中已经提交的insert的数据。

要想避免以上现象,通过更改事务的隔离级别来避免:

l  READ UNCOMMITTED 脏读、不可重复读、虚读有可能发生。

l  READ COMMITTED 避免脏读的发生,不可重复读、虚读有可能发生。

l  REPEATABLE READ 避免脏读、不可重复读的发生,虚读有可能发生。

l  SERIALIZABLE 避免脏读、不可重复读、虚读的发生。

级别依次升高,效率依次降低。

MySQL:默认REPEATABLE READ

ORACLE:默认READ COMMITTED

MySQL:

select @@tx_isolation;//查看当前的隔离级别

set transaction isolation level 级别;// 设置当前的事务隔离级别

练习:read uncommitted;

时间

T1

T2

说明

t1

start transaction

t2

select * from account where name='aaa';

有1000块

t3

start transaction

t4

update account set money=money+100 where name='aaa';

t5

select * from account where name='aaa';

有1100块

读到了另外一个线程中未提交的数据:脏读

t6

commit;

t7

select * from account where name='aaa';

有1100块

读到了另外一个线程中提交的update数据:不可重复读

t8

select count(*) from account;

有3条记录

t9

insert into account values(4,'ddd',1000);

t10

select count(*) from account;

有4条记录

读到了另外一个线程中提交的insert数据:虚读(幻读)

t11

commit;

//设置隔离级别
public class IsolationLevelDemo {
@Test
public void test1() throws Exception{
Connection conn = JdbcUtil.getConnection();
//一定要在开启事务前更改隔离级别
conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
conn.setAutoCommit(false); // ....
conn.commit();
}
}

JavaWeb 后端 <九> 之 JDBC加强的更多相关文章

  1. JavaWeb 后端 <八> 之 JDBC基礎(全)

    一.JDBC简介 1.JDBC是SUN公司为了简化操作数据推出一套规范.数据库厂商的驱动就是对JDBC的实现. 2.Java Data Base Connectivity(java数据库连接),它主要 ...

  2. JavaWeb后端jsp之增删改查

    今日主题:JavaWeb后端jsp之增删改查 实体类: Student.java: package cn.itcast.model.entity; public class Student { pri ...

  3. JavaWeb后端

    JavaWeb后端 我们学习JavaWeb的最终目的是为了搭建一个网站,并且让用户能访问我们的网站并在我们的网站上做一些事情. 计算机网络基础 在计算机网络(谢希仁 第七版 第264页)中,是这样描述 ...

  4. JavaWEB后端支付银联,支付宝,微信对接

    注:本文来源于:<  JavaWEB后端支付银联,支付宝,微信对接  > JavaWEB后端支付银联,支付宝,微信对接 标签(空格分隔): java 项目概述 最近项目需要后端打通支付,所 ...

  5. 2018.10.3 MianShiBaoDian JavaWeb后端部分

    MSBD 四.JavaWeb后端部分 1.Tomcat的优化经验 去掉对web.xml的监控,吧jsp提前编写成servlet,由于物理内存的情况,加大Tomcat使用的jvm的内存 2.HTTP请求 ...

  6. JavaWeb学习总结(九)--JDBC入门

    一.什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库.原来我们操作数据库是在控制台使用SQL语句来操作数据库 ...

  7. JavaWeb 后端 <一> 之 Tomcat服务器 - Http协议 学习笔记

    1.Web开发概述 1.1服务器上的资源分类: a.静态资源:指web页面中供人们浏览的数据始终是不变.html css js 图片 多媒体 b.动态资源:指web页面中供人们浏览的数据是由程序产生的 ...

  8. javaWeb后端学习记录

    java后端学习重点: 1.java语言特性: 基础知识,集合,多线程,并发,JVM,NIO,网络编程,设计模式.  (★★★★★) jdk源码中有大量的数据结构与java语言细节.jdk源码着重看c ...

  9. javaweb(三十三)——使用JDBC对数据库进行CRUD

    一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这个对象向数据库发送增删改查语句即可. Statement对象的exe ...

随机推荐

  1. 关于List<T> 的排序

    /** * @author hjn * @entity Student * @date 2017年5月23日15:22:18 */ public class Student { private Str ...

  2. HTTP权威指南-HTTP概述

    1.web服务器(HTTP服务器)使用的是HTTP协议,存储了因特网中的数据,当客户端发出请求时,服务器提供相应的数据.HTTP客户端和HTTP服务器共同构成了万维网的基本组件. 2.资源:Web服务 ...

  3. [原创]CentOS实现智能DNS

    一.       环境: Centos-6.6-x64位操作系统,IP地址:210.38.248.7 二.       安装和配置bind服务: 1.      命令:yum install bind ...

  4. R绘图字体解决方案(转)

    COS论坛里面经常会遇到的一个问题就是绘图时中文字体怎么解决.最初,一个流行的方法是使用family = "GB1",但一般这样做出来的图比较难看,而且并没有完全解决问题.后来发现 ...

  5. iOS安全攻防之结构体保护使用

    Objective-C 代码很容易被 hook,因此需要对一些重要的业务逻辑进行保护,可以改用结构体的形式,把函数名隐藏在结构体里,以函数指针成员的形式存储.这样编译后只留了下地址,去掉了名字和参数表 ...

  6. 一天搞定CSS: overflow--14

    overflow:针对超出父级的内容如何显示 代码演示 <!DOCTYPE html> <html> <head> <meta charset="U ...

  7. 克隆 CentOS 后系统启动问题解析

    问题背景: 虚拟机:VMware Workstation. 操作系统:CentOS,是Linux发行版之一. 问题: 原因:虚拟机的服务没有开启(虚拟机开启一般比较占内存,所有多数人都设置成手动开启) ...

  8. js扩展父类方法

    在网上找了很多一直没找到关于JS扩展父类的方法,让我很是郁闷啊~要是真的开发组遇到了该咋整,于是乎自己手写了一些测试代码,没想到通过了……(难道是人品太好了?)废话不多说了直接上代码看看~ <s ...

  9. 两个HTML,CSS布局实例

    今天首先仿照某公司页面只做了一个几乎一模一样,连距离都相同的页面. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...

  10. javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...