JDBC(2)—Statement
介绍:
获取到数据库连接之后,就可以对数据库进行一些增、删、改操作,但是却不能进行查询操作。
增删改操作是程序到数据库的一个操作过程,但是查询是程序到数据库——数据库返回到程序的一个过程。步骤:
- 步骤:
- 1.获取数据库连接
- 2.准备插入的语句
- 3.执行插入、删除、修改
- 3_1.获取操作SQL语句的Statement对象(通过Connection的createStatement()方法来获取)
- 3_2.调用Statement对象的executeUpdate(sql),执行SQL语句进行插入
- 4.关闭Statement对象
- 5.关闭数据库连接
- 注意:
- 1.Statement用于执行SQL语句的对象
- 1_1.通过Connection的createConnection()方法来获取
- 1_2.通过executeUpdate(sql),可以执行sql语句
- 1_3.传入的sql可以是INSERT、UPDATE、DELETE,但不能是SELECT
- 2.Connection、Statement都是应用程序和服务器的连接资源,使用后一定要关闭
- 3.关闭的顺序,先关闭后获取的,即:先Statement后Connection
- 实例:
例一
@Test
public void testStatement() throws Exception{
Connection conn = null;
Statement statement = null;
try {
//1.获取数据库连接
conn = connection_1.getDriverManager();
//2.准备插入的语句
//增
String sql = "INSERT INTO CUSTOMERS (NAME,AGE,BIRTH,address) " +
"VALUES ('张辽','13','2004-05-12','河北省')";
//删
String sql1 = "DELETE FROM CUSTOMERS WHERE id = 1 ";
//改
String sql2 = "UPDATE CUSTOMERS SET NAME = '张辽' WHERE id = '5'";
//3_1.获取操作SQL语句的Statement对象
statement = conn.createStatement();
//3_2.调用Statement对象的executeUpdate(sql)方法,执行SQL语句进行插入
statement.execute(sql);
} catch (Exception e) {
e.printStackTrace();
}finally{
if(statement != null){
//4.关闭statement对象
try {
statement.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(conn != null){
//5.关闭数据库连接
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
- 工具类TestTools中的一些获取结果集的方法
/**
* 2.操作数据库,包括增、删、改操作。
* 获取数据库链接(Connection)之后,使用(Statement)操作数据库,对数据库进行增删改操作。
*/
public static void getStatement(){
Connection conn = null;
Statement statement = null;
try {
//1.获取数据库连接
conn = TestTools.getConnection();
//2.准备插入的语句
//增
String sql1 = "INSERT INTO CUSTOMERS (NAME,AGE,BIRTH,address) " +
"VALUES ('王五','23','1995-05-12','河南省')";
//删
String sql2 = "DELETE FROM CUSTOMERS WHERE id = 1 ";
//改
String sql3 = "UPDATE CUSTOMERS SET NAME = '张辽' WHERE id = '5'";
//3_1.获取操作SQL语句的Statement对象
statement = conn.createStatement();
//3_2.调用Statement对象的executeUpdate(sql)方法,执行SQL语句进行插入
statement.execute(sql1);
} catch (Exception e) {
e.printStackTrace();
}finally{
//4.关闭连接
TestTools.release(statement, conn);
}
}
/**
* 2_1.通用方法,对2.方法进行了通用性的修改,功能不变包括增、删、改操作。使用Statement进行数据表更新,包括增、删、改操作,但不包括查询。
* 获取数据库链接(Connection)之后,使用(Statement)操作数据库,对数据库进行增删改操作。
*/
public static void update(String sql){
Connection conn = null;
Statement statement = null;
try {
//1.获取数据库连接
conn = TestTools.getConnection();
//2.获取操作SQL语句的Statement对象
statement = conn.createStatement();
//3.调用Statement对象的executeUpdate(sql)方法,执行SQL语句进行插入
statement.execute(sql);
} catch (Exception e) {
e.printStackTrace();
}finally{
//4.关闭连接
TestTools.release(statement, conn);
}
}
/**
* 2_2.通用方法,对2_1.方法进行了修改,功能不变包括增、删、改操作。使用PreparedStatement进行数据表更新。
* Object ... args:表示可变参数。
* preparedstatement.executeUpdate();该方法用于更新。
* preparedstatement.executeQuery();该方法用于查询。
*/
public static void update(String sql ,Object ... args){
//1.获取链接
Connection conn = null;
//2.获取Preparedtatement对象
PreparedStatement preparedstatement = null;
try {
conn = TestTools.getConnection();
preparedstatement = conn.prepareStatement(sql);
//3.由于是可变参数,所以使用for循环,设置sql语句的占位符
for(int i = 1; i < args.length; i++){
preparedstatement.setObject(i+1, args[i]);
}
//4.执行更新
preparedstatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
//5.关闭连接
TestTools.release(preparedstatement, conn);
}
}
JDBC(2)—Statement的更多相关文章
- JDBC(2)Statement
Statement: 用于执行SQL语句的对象 通过Connection的createStatement()方法得到一个Statement对象 只有在获得了Statement对象之后才能执行SQL对象 ...
- Java基础(三十二)JDBC(2)连接数据库
一.连接数据库的过程 连接数据库的过程:加载数据库驱动程序,不过只需在第一次访问数据库时加载一次,然后在每次访问数据库时创建一个Connection实例,然后执行操作数据库的SQL语句,并返回执行结果 ...
- 跟着刚哥学习Spring框架--JDBC(六)
Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要提供JDBC模板方式.关系数据库对象化方式.SimpleJdbc方式.事务管理来简 ...
- JDBC(一)之细说JDBC
Properties info = new Properties();//要参考数据库文档 info.setProperty("user", "root"); ...
- JDBC(三)数据库连接池(DBCP、C3P0)
前言 这段时间状态有一点浮躁,希望自己静下心来.还有特别多的东西还没有学懂.需要学习的东西非常的多,加油! 一.JDBC复习 Java Data Base Connectivity,java数据库连接 ...
- JAVA基础-JDBC(一)
一.JDBC的简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,由与各种数据库都有着一套自己的规范,JAVA对其操 ...
- JDBC(四)
1 Apache DBUtils框架 1.1 DBUtils简介 commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本非常低,并且使用db ...
- JDBC (三)
1 数据库连接池的原理 应用程序直接获取Connection的缺点: 缺点:用户每次请求都需要向数据库获取连接,而数据库创建连接通常需要消耗相对较大的资源,创建的时间较长.如果一个网站一天访问量是10 ...
- JDBC (二)
1 使用JDBC进行批处理 当需要向数据库发送一批SQL语句的时候,应该避免向数据库一条条的发送执行,而应该采用JDBC的批处理机制,以提高执行效率. 实现批处理的方式一: Statement.add ...
随机推荐
- 一个shell的面试题
5.写一个脚本,实现判断192.168.1.024网络里,当前在线的D有哪些,能ping通则认为在线,在线输出"TP地址UP",不在线输出TP地址DOWN",无其他输出. ...
- 火狐mozilla官方ftp站点获取旧版本火狐的下载地址
http://ftp.mozilla.org/pub/firefox/releases/
- 测试开发之Django——No7.Django模板中的过滤器
1.add 将参数添加到值. 例如: {{ value|add:"2" }} 如果value是4,那么输出将是6. 此过滤器将首先尝试将两个值强制转换为整数.如果失败,它将尝试将值 ...
- LeetCode(28): 实现strStr()
Easy! 题目描述: 实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0 ...
- 【ES】学习2-搜索
1.空搜索 返回所有索引下的所有文档 GET /_search 设置超时.timeout 不是停止执行查询,它仅仅是告知正在协调的节点返回到目前为止收集的结果并且关闭连接.在后台,其他的分片可能仍在执 ...
- 转换类型 totypeString
type.totypeString(variable) 其中front type is want to turn after type是你要转换成的类型 //: dsfsf/Literals. ...
- this和引用变量的地址值是同一个---------new后面的是构造方法
/*全局变量和构造方法及this和引用变量的关系 引用变量在栈里面对象在堆中this你可以理解为在堆里面this就是这个对象自己 */ public class Person {/* * 定义属性 ...
- bootstrap 文本对齐风格
Bootstrap通过定义四个类名来控制文本的对齐风格: ☑ .text-left:左对齐 ☑ .text-center:居中对齐 ☑ .text-right:右对齐 ☑ .text- ...
- Android 倒计时按钮,倒计时发送短信验证码…
Android基础之——CountDownTimer类,轻松实现倒计时功能https://www.cnblogs.com/yfceshi/p/6853746.html android中获取验证码后出现 ...
- width:100vh与min-height:calc(100vh + 51px)
vh:相对于视窗的高度,那么vw:则是相对于视窗的高度. “视区”所指为浏览器内部的可视区域大小,即window.innerWidth/window.innerHeight大小,不包含任务栏标题栏以及 ...