servlet操作数据库

2016-12-02  本文已影响0人  曦晨峰

1. close(),  关闭该数据库连接

 2. commit(), 提交所有更改内容并释放该Connection对象锁定的资源 

3. createStatement(), 基于本Connection对象,创建Statement对象

 4. getAutoCommit(),  获取当前是否是自动提交模式

 5. getMetaData(), 获取本连接相关的数据库元数据

 6. isClosed(), 返回当前连接对象是否已经被关闭 

7. preparedStatement(), 基于本连接对象,创建PreparedStatement对象 

8. rollback(), 取消本轮事务中前面已经提交的更改 

9. setAutoCommmit(), 设置是否自动提交  

public int add(Building building) throws SQLException{ 

//sql语句 

String sql = "insert t_building values ('"+building.getId()+"','"+ building.getCompany()+"','"+building.getPhone() + "','" + building.getDescription() + "','" +building.getStatus()+ "')";

 System.out.println(sql);

 //获取连接

 connection = DBConn.getConnection();

statement = connection.createStatement(); 

//获取结果码

 int result = statement.executeUpdate(sql); 

connection.commit();

 //关闭连接

 statement.close();

 connection.close();

 return result; 

 }  

public int  update(Building  building) throws SQLException {

 String sql="UPDATE T_building SET Company=?,Phone =?,"+"Description=?, Status=? WHERE Id=?"; 

 connection=DBConn.getConnection();

 preparedStatement = connection.prepareStatement(sql); 

 preparedStatement.setString(1,  building.getCompany()); 

 preparedStatement.setString(2,  building.getPhone());

 preparedStatement.setString(3,  building.getDescription()); 

 preparedStatement.setString(4,  building.getStatus()); 

 preparedStatement.setString(5,  building.getId());

 int count=preparedStatement.executeUpdate();

 connection.commit(); preparedStatement.close(); 

 connection.close(); 

 return count;   

1、创建 Statement 对象  建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句。Statement 对象用 Connection 的方法createStatement 创建,如下列代码段中所示:  Connection con = DriverManager.getConnection(url, "sunny",""); Statement stmt = con.createStatement();  为了执行 Statement 对象,被发送到数据库的 SQL 语句将被作为参数提供给 Statement 的方法:  ResultSet rs = stmt.executeQuery("SELECT a, b, c FROMTable2"); 

 2、使用 Statement 对象执行语句  Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和execute。使用哪一个方法由 SQL 语句所产生的内容决定。

  方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。  方法 executeUpdate 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQLDDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE语句的效果是修改表中零行或多行中的一列或多列。

executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

方法 execute用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能,所以本概述后面将在单独一节中对其进行介绍。

  执行语句的所有方法都将关闭所调用的 Statement 对象的当前打开结果集(如果存在)。这意味着在重新执行 Statement对象之前,需要完成对当前 ResultSet 对象的处理。 

 应注意,继承了 Statement 接口中所有方法的 PreparedStatement 接口都有自己的executeQuery、executeUpdate 和 execute 方法。

Statement 对象本身不包含 SQL语句,因而必须给 Statement.execute 方法提供 SQL 语句作为参数。PreparedStatement 对象并 不将SQL 语句作为参数提供给这些方法,因为它们已经包含预编译 SQL 语句。CallableStatement 对象继承这些方法的PreparedStatement 形式。对于这些方法的 PreparedStatement 或 CallableStatement版本,使用查询参数将抛出 SQLException。

  3、语句完成  

当连接处于自动提交模式时,其中所执 行的语句在完成时将自动提交或还原。语句在已执行且所有结果返回时,即认为已完成。对于返回一个结果集的executeQuery 方法,在检索完 ResultSet 对象的所有行时该语句完成。对于方法executeUpdate,当它执行时语句即完成。

但在少数调用方法 execute的情况中,在检索所有结果集或它生成的更新计数之后语句才完成。 statement-相关概述 Statement 对象用于将 SQL 语句发送到数据库中。

实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL语句的包容器:Statement、PreparedStatement(它从 Statement 继承而来)和CallableStatement(它从 PreparedStatement 继承而来)。它们都专用于发送特定类型的 SQL 语句:Statement 对象用于执行不带参数的简单 SQL 语句;

PreparedStatement 对象用于执行带或不带 IN参数的预编译 SQL 语句;

CallableStatement 对象用于执行对数据库已存储过程的调用。  

Statement 接口提供了执行语句和获取结果的基本方法。

PreparedStatement 接口添加了处理 IN 参数的方法;而CallableStatement 添加了处理 OUT 参数的方法。  

有些 DBMS将已存储过程中的每条语句视为独立的语句;而另外一些则将整个过程视为一个复合语句。在启用自动提交时,这种差别就变得非常重要,因为它影响什么时候调用commit 方法。在前一种情况中,每条语句单独提交;在后一种情况中,所有语句同时提交。 

 4、关闭 Statement 对象  

Statement 对象将由 Java 垃圾收集程序自动关闭。而作为一种好的编程风格,应在不需要 Statement对象时显式地关闭它们。这将立即释放 DBMS 资源,有助于避免潜在的内存问题。

链接:http://blog.csdn.net/yejin191258966/article/details/8453909

上一篇下一篇

猜你喜欢

热点阅读