Statement:

用于执行SQL语句的对象

通过Connection的createStatement()方法得到一个Statement对象

只有在获得了Statement对象之后才能执行SQL对象

Statement常用的方法:

->ResultSet executeQuery() throws SQLException:用于执行查询语句,并返回查询结果对应的ResultSet,该方法只能用于执行查询语句。

->int executeUpdate(String sql) throws SQLException:用于执行DML语句,返回首影响的行数。

->Boolean execute(String sql) throws SQLException:可以执行任何SQL语句。

在执行结束之后必须要关闭Statement对象

executeUpdate:可以执行的SQL语句,可以是insert,update,delete,不可以是select。

执行SQL一般使用executeUpdate,execute使用的次数相对比较少

现在代码跑起来:

主要用于获取数据库的连接方法:

    public Connection getConnection() throws Exception{
Properties properties = new Properties();
InputStream in =
getClass().getClassLoader().getResourceAsStream("jdbc.properties");
properties.load(in);
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String jdbcUrl = properties.getProperty("jdbcUrl");
String driver = properties.getProperty("driver");
Class.forName(driver);
Connection connection = DriverManager.getConnection(jdbcUrl, user, password);
System.out.println(connection);
return connection;
}

执行executeUpdate(sql)方法

@Test
public void InsertStatementTestJdbc() throws Exception{ //1.获取数据库的连接
Connection conn = getConnection();
//2.准备的sql语句
String sql = "insert into student(sname,sclass)" +
"values('MrChengs','1111')"//3.执行插入操作
//4.获取操作SQL语句的Statement对象
//调用Connection的createStatement()方法来获取
Statement statement = (Statement) conn.createStatement();
//5.调用Statement对象的executeUpdate(sql)执行SQL语句的插入
statement.executeUpdate(sql); //6.关闭Statement对象
statement.close();
//7.关闭连接
conn.close();
}

会发现这个程序有点问题,关闭是不是应该放在finally?

此时程序会更加完美一点

    @Test
public void StatementTestInSert() throws Exception{
Connection conn = null;
Statement statement = null;
try {
conn = null;
conn = getConnection();
String sql = "insert into student(sname,sclass)" + "values('MrChengs','1111');";
statement = null;
statement = (Statement) conn.createStatement();
statement.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(statement !=null){
statement.close();
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(conn != null){
conn.close();
}
}
}
}

一般使用到的insert/delete/update

使用这个方法,我们一般要进行拼串

在拼串的时候,我们需要注意拼串的一些规范

防止在拼串的时候出错

//插入
//String sql = "insert into student(sname,sclass)" + "values('MrChengs','1111')"; //删除
//String sql = "DELETE From student where id=1"; //修改
String sql = "update student set sname = 'MrChengs' where id = 3";
statement = null;

简单的说一下:

execute()方法几乎可以执行所有的SQL语句,但是执行SQL语句时比较麻烦

所以一般不使用该方法。

这里基本上讲完了。

JDBC(2)Statement的更多相关文章

  1. JDBC(2)—Statement

    介绍: 获取到数据库连接之后,就可以对数据库进行一些增.删.改操作,但是却不能进行查询操作. 增删改操作是程序到数据库的一个操作过程,但是查询是程序到数据库--数据库返回到程序的一个过程. 步骤: 步 ...

  2. Java基础(三十二)JDBC(2)连接数据库

    一.连接数据库的过程 连接数据库的过程:加载数据库驱动程序,不过只需在第一次访问数据库时加载一次,然后在每次访问数据库时创建一个Connection实例,然后执行操作数据库的SQL语句,并返回执行结果 ...

  3. 跟着刚哥学习Spring框架--JDBC(六)

    Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要提供JDBC模板方式.关系数据库对象化方式.SimpleJdbc方式.事务管理来简 ...

  4. JDBC(一)之细说JDBC

    Properties info = new Properties();//要参考数据库文档 info.setProperty("user", "root"); ...

  5. JDBC(三)数据库连接池(DBCP、C3P0)

    前言 这段时间状态有一点浮躁,希望自己静下心来.还有特别多的东西还没有学懂.需要学习的东西非常的多,加油! 一.JDBC复习 Java Data Base Connectivity,java数据库连接 ...

  6. JAVA基础-JDBC(一)

    一.JDBC的简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,由与各种数据库都有着一套自己的规范,JAVA对其操 ...

  7. JDBC(四)

    1 Apache DBUtils框架 1.1 DBUtils简介 commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本非常低,并且使用db ...

  8. JDBC (三)

    1 数据库连接池的原理 应用程序直接获取Connection的缺点: 缺点:用户每次请求都需要向数据库获取连接,而数据库创建连接通常需要消耗相对较大的资源,创建的时间较长.如果一个网站一天访问量是10 ...

  9. JDBC (二)

    1 使用JDBC进行批处理 当需要向数据库发送一批SQL语句的时候,应该避免向数据库一条条的发送执行,而应该采用JDBC的批处理机制,以提高执行效率. 实现批处理的方式一: Statement.add ...

随机推荐

  1. Linux文件夹和文件创建删除命令

    Linux删除文件夹命令 linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可.直接rm就可以了,不过要加两个参数-rf 即:rm ...

  2. jquery 闭包

    jQuery 闭包结构 1 2 3 4 5 6 7 // 用一个函数域包起来,就是所谓的沙箱 // 在这里边 var 定义的变量,属于这个函数域内的局部变量,避免污染全局 // 把当前沙箱需要的外部变 ...

  3. Grunt项目构建-插件学习

    听说过Grunt也有两年了,用了也有两年了,然而都是在别人搭好的架子上做开发,当想要对前端工程化整体把控时就一脸懵逼了! Grunt是什么? Grunt是一套web前端工程化构建工具.(ps:关于Gr ...

  4. java时间工具类

    在项目中,很多地方需要根据时间获取相应的数据,将时间格式化,或者时间比较等相关操作.一个良好的工具类不仅可以减少代码冗余,还能促进业务处理,加快进度. /** * @author: lxw * @Da ...

  5. python4

    列表的常用操作     创建列表         1.创建空列表             列表变量 = []         2.创建单个数据的列表             列表变量 = [值]    ...

  6. java温故而知新(8)反射机制

    一.什么是反射机制  简单的来说,反射机制指的是程序在运行时能够获取自身的信息.在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息. 二.哪里用到反射机制  有些时候,我们用过 ...

  7. Java--详解WebService技术

    Java--详解WebService技术 一.什么是 webservice WebService是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓跨编程语言和跨操作平台,就是说服务端程序采用jav ...

  8. 中南oj 1213: 二叉树结点公共祖先

    1213: 二叉树结点公共祖先 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 159  Solved: 87 [Submit][Status][Web ...

  9. 第11章 Media Queries 与Responsive 设计

    Media Queries--媒体类型(一) 随着科学技术不断的向前发展,网页的浏览终端越来越多样化,用户可以通过:宽屏电视.台式电脑.笔记本电脑.平板电脑和智能手机来访问你的网站.尽管你无法保证一个 ...

  10. java IO流实现删除文件夹以及文件夹中的内容

    这篇主要是对IO文件流对文件常用处理中的删除文件夹,平时我们直接删除文件夹既可以删除里面的全部内容. 但是java在实现删除时,只能是文件才会被删除. 所以这里需要定义一个方法,来递归调用方法(递归调 ...