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 ...
随机推荐
- lamp环境搭建之配置apache与fpm方式的php
配置apache-2.4.9与fpm方式的php-5.4.26 一.apache.MySQL的安装参考<编译安装lamp环境> http://blog.csdn.net/reblue520 ...
- [译]bootstrap-select (selectpicker)方法
方法 .selectpicker('val') 您可以通过调用val元素上的方法来设置所选值. $('.selectpicker').selectpicker('val', 'Mustard'); $ ...
- Go语言规格说明书 之 select语句(Select statements)
go version go1.11 windows/amd64 本文为阅读Go语言中文官网的规则说明书(https://golang.google.cn/ref/spec)而做的笔记,介绍Go语言的 ...
- PYTHON-模块定义 搜索路径
模块是什么: ***** 模块 是一系列功能的集合体 一个py文件就是一个模块 一个函数就是一个功能 例如 A.py 文件名A.py 模块名 A 模块有哪些来源 内置 第三方 自定义 模块有四种通用的 ...
- 从LeNet-5到DenseNet
一篇不错的总结:https://zhuanlan.zhihu.com/p/31006686
- java多线程快速入门(七)
什么是守护线程 守护线程是为用户线程服务的这么一个线程,主线程结束,守护线程也结束 package com.cppdy; class MyThread3 extends Thread{ @Overri ...
- eclipse安装properties插件
点击“Help”--> Install New Software Name:propertiesLocation:http://propedit.sourceforge.jp/eclipse/u ...
- python接口自动化测试十三:url编码与解码
# url编码与解码 from urllib import parse url = 'http://zzk.cnblogs.com/s/blogpost?Keywords=中文' a = '中文' b ...
- 《剑指offer》-和为S的正整数序列
双指针问题.似曾相识. /* 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括 ...
- IntelliJ IDEA快捷键:Ctrl+Shift+空格
The smart type code completion may be used after the new keyword,to instantiate an object of the exp ...