16-1-27---JDBC复习(01)
JDBC数据库连接学习
用jdbc连接数据库
1.加载驱动
Class.forName("");
用注册的方式会使内存中存在两个对象,而用上边的方法内存中仅存在一个驱动不需要依赖具体的API程序灵活性更高
2.得到连接
Connection conn = DriverManager();
3.创建sql对象
PreparedStatement
CallableStatement
Statement statement = conn.createStatement();
4.通过statement向数据库发送sql指令
statement.executeUpdate(sql); //执行 dml(update insert delete)
statement.executeQuery(sql); //执行
5.关闭资源(先开后闭,后开先闭)
Connection 他代表数据库的连接。客户端与数据库所有交互都通过connection对象完成。
createStatement(); 创建数据库发送sql的statement对象
prepareStatement(sql); 创建向数据库发送预编译sql的PerpareStatement对象。可以防止sql注入
prepare(sql); 创建执行存储过程中的callableStatement对象
什么时候需要吧setAutoCommit设为false,setAutoCommit(boolean autoCommit); 设置事务是否自动提交,把一组dml语句一起提交时,使用事务管理,设置成false(相当于做成原子性吧,我这样理解);
commit();
rollback();
ResultSet对象调用next() 方法最后一个返回false;注意是false不是null
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet中的静态常量
CLOSE_CURSORS_AT_COMMIT 该常量指示提交当前事务时,具有此可保存性的打开的 ResultSet 对象将被关闭。
CONCUR_READ_ONLY 该常量指示不可以更新的 ResultSet 对象的并发模式。
CONCUR_UPDATABLE 该常量指示可以更新的 ResultSet 对象的并发模式。
FETCH_FORWARD 该常量指示将按正向(即从第一个到最后一个)处理结果集中的行。
FETCH_REVERSE
FETCH_UNKNOWN
HOLD_CURSORS_OVER_COMMIT
TYPE_FORWARD_ONLY
TYPE_SCROLL_INSENSITIVE 该常量指示可滚动但通常不受 ResultSet 底层数据更改影响的 ResultSet 对象的类型。
TYPE_SCROLL_SENSITIVE 该常量指示可滚动并且通常受 ResultSet 底层数据更改影响的 ResultSet 对象的类型。
ResultSet rs = stmt.executeQuery("SELECT a, b FROM table");
ResultSet 在默认情况下,我们的rs结果集,只能向前移动,这样rs结果集就不能复用。
我们可以这样做
statement = ct.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs.beforeFirst(); //我们希望重新使用结果集,
rs.next(); //移动到下一行
rs.Previous(); //移动到前一行
rs.absolute(row); //移动到指定行
rs.afterLast(); //移动到resultSet的最后面
!!提问如果数据库中列的类型是varchar2,获取该列的数据调用什么方?Int类型呢?bigInt类型呢?Boolean类型呢?
MySQL数据库JDBC对应类型数据表
MySQL的连接并发,最大连接量13000
即时关闭资源,一个资源不关也会出现问题。
Connection连接尽可能晚连接,尽可能早释放,如果不能处理好Connection就极可能出现宕机。
关闭资源的代码一定要放在finally
SqlHelper类的编写
1、访问数据库很平凡、有并发量时,不要把Connection设定成static
2、加载驱动就需要一次
16-1-27---JDBC复习(01)的更多相关文章
- JDBC复习
-----------------------------------------JDBC复习----------------------------------------- 1.JDBC (Jav ...
- Bone Collector(复习01背包)
传送门 题目大意:01背包裸题. 复习01背包: 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总 ...
- JDBC复习2
前面复习了一些基础知识以及如何抽取一些常用的代码,接下来就结合junit4做一个增删改查的小demo 重点是这么几个步骤:1.创建连接 2.编写sql语句 3.编写sql语句的载体 4.如果是Prep ...
- mybatis复习01
1.mybatis的历史: mybatis是apache的一个开源项目,2010被google收购,转移到google code. mybatis是一个优秀的持久层框架,对jdbc操作进行了封装,是操 ...
- JDBC 复习2 存取mysql 大数据
大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据 mysql的大数据分为2种 blob 和 text ,没有cl ...
- JDBC 复习1 DBUtil
package dbex; import java.io.Closeable; import java.io.IOException; import java.io.InputStream; impo ...
- java数据结构复习01
1.数组 package javaDataStruct.array01; public class MyArray { private int[] arr; // 表示有效数据的长度 private ...
- nodejs复习01
console 格式化 console.log("%s:%s", "a", "b") //字符串 console.log("%d. ...
- JDBC复习1
1.什么是JDBC JDBC是java数据库连接技术的简称(Java DataBase Connectivity) jdbc是接口,jdbc驱动才是接口的实现,负责连接各种不同的数据库.jdbc的AP ...
- codevs 2837 考前复习——01背包
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description Aiden马上要考试了,可他还没怎么复习,于是他 ...
随机推荐
- UI第十八节——UITableView
在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,基本大部分应用都有UITableView.当然它的广泛使用自然离不开它强大的功能,今天就针对U ...
- canvas的save与restore方法的作用
网上搜罗了一堆资料,最后总结一下. save:用来保存Canvas的状态.save之后,可以调用Canvas的平移.放缩.旋转.错切.裁剪等操作. restore:用来恢复Canvas之前保存的状态. ...
- 安装 sublime2 (包括插件)
1.下载地址:http://www.sublimetext.com/2,注意选择不同的平台: 2.安装后,打开sublime,在菜单栏 help -- enter license 打开一个窗口,复制 ...
- 静态界面传值javascript
一:JavaScript静态页面值传递之URL篇能过URL进行传值.把要传递的信息接在URL上.Post.htm 复制代码代码如下: <input type="text" n ...
- MySQL 优化数据库对象
一.考虑是用 procedure analyse() 函数对当前应用的表进行分析.字段类型是否可优化. 二.通过拆分提高表的访问效率. (A) 针对MyISAM表,有两种拆分方法: 垂直拆分:主码和某 ...
- Visual Studio 默认保存为UTF8编码
Visual Studio (中文版)默认保存的文本文件是GB2312编码(代码页936)的,默认的行尾(End of line)是CRLF的. 如果仅仅是在windows下开发问题也不大,但是涉及到 ...
- [SHOI2008]堵塞的交通traffic
我是萌萌的传送门 这题说白了就是一个支持加边和删边的图连通性维护,不过鉴于图的特殊性,可以直接线段树(听说标算就是这个--). 然而我人比较懒,不想思考怎么线段树,于是乎写了一发分治并查集,1A我真是 ...
- 执行ssh-add时出现Could not open a connection to your authentication agent
若执行ssh-add /path/to/xxx.pem是出现这个错误:Could not open a connection to your authentication agent,则先执行如下命令 ...
- php关于ob_start('ob_gzhandler')启用GZIP压缩的bug
如果使用ob_start("ob_gzhandler"); 则ob_clean()后面的输出将不显示,这是个bug,可以用ob_end_clean();ob_start(" ...
- Thread Safety线程安全
Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分 如果disabled就选择nts(php_stomp-1.0.9-5.5-nts-vc11-x86.zi ...