MySQL-第十一篇JDBC典型用法
1、JDBC常用方式
1》DriverManager:管理JDBC驱动的服务类。主要用于获取Connection。其主要包含的方法:
public static synchronized Connection getConnection(String url,String user,String pass) throws SQLException。
2》Connection:代表数据库连接对象,每个Connection代表一个物理连接会话。Connection常用的方法:
1>Statement createStatement() throws SQLException:返回一个Statement对象。
2>PreparedStatement prepareStatement(String sql) throws SQLException:返回预编译的Statement对象,即将SQL提交到数据库预编译。
3>CallableStatement prepareCall(String sql) throws SQLException:返回CallableStatement对象,该对象用于调用存储过程。
上面3个方法都返回用于执行SQL语句的Statement对象,PrepareStatement、CallableStatement是Statement的子类,只有获得了Statement之后才可以执行SQL语句。
Connection还有以下用于控制事务的方法:
4>Savepoint setSavepoint():创建一个保存点。
5>Savepoint setSavepoint(String name):指定名字来创建一个保存点。
6>void setTransactionIsolation(int level):设置事务的隔离级别。
7>void rollback():回滚事务。
8>void rollback(Savepoint savepoint):将事务回滚到指定的保存点。
9>void setAutoCommit(boolean autoCommit):关闭自动提交,打开事务。
10>void commit():提交事务。
使用哪一种执行SQL的方式:
3》Satatement:用于执行SQL语句的工具接口。可用于执行DDL、DCL、DML语句、SQL查询,执行SQL查询时,返回查询到的结果集。常用的方法如下。
1>ResultSet executeQuery(String sql) throws SQLException:该方法用于执行查询语句,并返回查询结果对应的ResultSet对象。只能用于执行查询语句。
2>int executeUpdate(String sql) throws SQLException:用于执行DML语句,并返回受影响的行数;也可以执行DDL语句,将返回0。
3>boolean execute(String sql) throws SQLException:可以执行任何SQL语句。如果执行后第一个结果为ResultSet对象,则返回true;如果执行后第一个结果为受影响的行数或没有任何结果,则返回false。
4>ResultSet getResultSet():获取Statement执行查询语句所返回的ResultSet对象。
5>int getUpdateCount():获取Statement执行DML语句所影响的记录行数。
4》PrepareStatement:Statement的子接口。预编译的Statement对象,它允许数据库预编译SQL语句。比Statement多出的方法如下。
1>void setXxx(int parameterIndex,Xxx value):该方法根据传入参数值的类型不同,需要使用不同的方法。传入的值根据索引传给SQL语句中指定位置的参数。
2>void setObject():如果程序不清楚预编译SQL语句中个参数的类型,则使用该方法来传入参数,由PreparedStatement来负责类型转换。
PreparedStatement与Statement相比较的优点:
1>PrepareStatement比Statement高效。
2>SQL语句无需拼接SQL字符串,可以防止SQL注入。
5》CallableStatement:Statement的子接口。
delimiter //
create procedure add_pro(a int,b int,out sum int)
begin
set sum=a+b;
end;
//
上面的SQL语句将MySQL的语句结束符改为双斜线(//),这样就可以在创建存储过程中使用分号作为分隔符(MySQL默认使用分号作为语句结束符)。
调用存储过程的格式:
{call 过程名(?,?,?...)}
//使用CallableStatement调用存储过程
cstamt=conn.prepareCall("{call add_pro(?,?,?)}");
通过CallableStatement的setXxx()方法为传入参数设值;使用registerOutParameter注册输出参数。使用getXxx(int index)获取输出参数。
下面处理结果集:
6》ResultSet:结果集对象。该对象包含访问查询结果的方法,ResultSet可以通过列索引或列名获得列数据。包含的移动记录指针方法有。
1>void close():释放ResultSet对象。
2>boolean absolute(int row):将结果集的记录指针移动到第row行,如果row是负数,则移动到倒数第row行。如果移动后记录指针指向一条有效记录,则该方法返回true。
3>void beforeFirst():将ResultSet的记录指针定位到首行之前,这是ResultSet结果集记录指针的初始状态,记录指针的起始位置位于第一行之前。
4>boolean first():将ResultSet的记录指针定位到首行。如果移动后的记录指针指向一条有效记录,则该方法返回true。
5>boolean previous():将ResultSet的记录指针定位到上一行。如果移动后的记录指针指向一条有效记录,则该方法返回true。
6>boolean next():将ResultSet的记录指针定位到下一行。如果移动后的记录指针指向一条有效记录,则该方法返回true。
7>boolean last():将ResultSet的记录指针定位到最后一行。如果移动后的记录指针指向一条有效记录,则该方法返回true。
8>void afterLast():将ResultSet的记录指针定位到最后一行之后。
当把记录指针移动到指定行之后,ResultSet可通过getXxx(int columnIndex)或getXxx(String columnLabel)方法来获取当前行、指定列的值。前者根据列索引获取值,后者根据列名获取值。
MySQL-第十一篇JDBC典型用法的更多相关文章
- 第十一篇:Mysql系列
Python开发基础之路 第十一篇:Mysql系列 Python-数据库 基本SQL语句 Python-数据类型 主键auto_increment Python-多表关联 外键 级联 Python-s ...
- mysql的优化_第十一篇(查询计划篇)
Mysql优化(出自官方文档) - 第十一篇(查询计划篇) 目录 Mysql优化(出自官方文档) - 第十一篇(查询计划篇) 1 EXPLAIN Output Format EXPLAIN Join ...
- MYSQL(进阶篇)——一篇文章带你深入掌握MYSQL
MYSQL(进阶篇)--一篇文章带你深入掌握MYSQL 我们在上篇文章中已经学习了MYSQL的基本语法和概念 在这篇文章中我们将讲解底层结构和一些新的语法帮助你更好的运用MYSQL 温馨提醒:该文章大 ...
- MySQL数据库扫盲篇
MySQL数据库扫盲篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL概述 1>.什么是MySQL MySQL是瑞典的MySQL AB公司开发的一个可用于各 ...
- Python开发【第二十一篇】:Web框架之Django【基础】
Python开发[第二十一篇]:Web框架之Django[基础] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5237704.html Python之 ...
- mysql 开发进阶篇系列 42 逻辑备份与恢复(mysqldump 的完全恢复)
一.概述 在作何数据库里,备份与恢复都是非常重要的.好的备份方法和备份策略将会使得数据库中的数据更加高效和安全.对于DBA来说,进行备份或恢复操作时要考虑的因素大概有如下: (1) 确定要备份的表的存 ...
- 跟我学SpringCloud | 第十一篇:使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪
SpringCloud系列教程 | 第十一篇:使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪 Springboot: 2.1.6.RELEASE SpringCloud: ...
- Python 中 -m 的典型用法、原理解析与发展演变
在命令行中使用 Python 时,它可以接收大约 20 个选项(option),语法格式如下: python [-bBdEhiIOqsSuvVWx?] [-c command | -m module- ...
- mysql 中合并查询结果union用法 or、in与union all 的查询效率
mysql 中合并查询结果union用法 or.in与union all 的查询效率 (2016-05-09 11:18:23) 转载▼ 标签: mysql union or in 分类: mysql ...
随机推荐
- SpringCloud创建Eureka
Eureka是什么 Eureka是Netflix的一 个子模块,也是核心模块之一- .Eureka是一 个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对于微服务 ...
- hihocode 1584 : Bounce (找规律)(2017 北京网络赛G)
题目链接 比赛时随便找了个规律,然后队友过了.不过那个规律具体细节还挺烦的.刚刚偶然看到Q巨在群里提到的他的一个思路,妙啊,很好理解,而且公式写起来也容易.OrzQ巨 #include<bits ...
- [CF1177B]Digits Sequence (Hard Edition)题解
一个简单的模拟,首先先计算当前是几位数,然后根据几位数推断当前的数是什么,然后求出该位即可 #include <cstdio> int main(){ long long k; scanf ...
- Kohana重写接收不到get参数问题
.htaccess,不需要重启apache # Turn on URL rewriting RewriteEngine On # Installation directory RewriteBase ...
- 笨办法学Python(learn python the hard way)--练习36-37
练习37 1.Keywords(关键字) anddel fromnotwhileaselifglobal orwithassert elseifpass yield break except impo ...
- window下启动redis服务
---恢复内容开始--- 在windows环境下启动redis服务,前提是你安装好了,启动如下: 一,进入redis的安装目录下,在地址栏输入“cmd”,回车 二,然后会进入cmd界面,直接运行命令r ...
- view组件
view标签的属性值: hover-class:按下的点击态 属性值:字符串 如果:hover-class="none" 按下就没有点击态 hover-stop-pro ...
- Window7系统安装Ubuntu16双系统
在电脑上插入ubuntu系统启动盘,之前做好的u盘启动盘,重启计算机,进入BIOS设置界面,设置系统启动为u盘启动,保存后退出.之后进入ubuntu系统安装界面. 在安装界面中选择系统语言,选择安装u ...
- p2619 [国家集训队2]Tree I [wqs二分学习]
分析 https://www.cnblogs.com/CreeperLKF/p/9045491.html 反正这个博客看起来很nb就对了 但是不知道他在说啥 实际上wqs二分就是原来的值dp[x]表示 ...
- DAY 4 下午
一些图论的知识(主要补充一下之前不了解的和比较重要) 竞赛图:完全图上的边加方向 仙人掌:每一条边至多属于一个环 前序:中左右 中序:左中右 后序:左右中 先加进去无向边 把每一个联通块看成一个大点 ...