1. java中如何获取Statement的执行sql
//创建Statement对象
Statement stmt = conn.createStatement();//只读的结果集
//Statement stmt2 = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);//可更新的结果集
//执行操作(增删改查)
ResultSet rs = stmt.executeQuery("select * from stt");
//处理结果
while(rs.next()){
System.out.println(rs.getString("1"));
}
---------------------------------------------------------------//创建prepareStatement对象perstmt = con.prepareStatement("insert into tb_name (col1,col2,col2,col4) values (?,?,?,?)");
perstmt.setString(1,var1);
perstmt.setString(2,var2);
perstmt.setString(3,var3);
perstmt.setString(4,var4);
perstmt.executeUpdate();
你看看行不行?希望能帮到你。
2. java statement到底是怎样执行查询的
java statement在查询的时候 ,就是用连接对象调用方法execute...执行sql语句,而sql语句就是查询数据最核心最关键的一段代码, 建议楼主先看看Statement语句, 然后再去看看PrepareStatement语句,后者相比于前者,有四个优点,分别是:
1, 可读性好----写的sql看起来简单明了, 易于读取和维护
2. 维护性好 ---前面这两个点是很只观的一个感受, 比如你自己分别用这两种语句,去写一条更新数据库的sql, 这个时候你一眼就能感受到PrepareStatement的可读性与维护性
3. 性能更好---由于PrepareStatement里面有一个类似缓冲区的设计, 就是会把相同的sql语句存放在里面, 当以后再遇到同样的sql语句, 它在内部就省去了很多对sql语句进行语法等判断的过程, 所以性能上优于Statement
4. 安全性好,可以防止一般的sql注入攻击, 有这个有点主要是由于前者的sql语句在拼接的过程中 很可能会出现歧义 具体的楼主可以在网上搜一下sql注入式攻击的情况.
说了这么多 不知道楼主是否能看懂, 如果有问题 随时可以交流
3. java中执行sql插入语句怎么弄
1、Connection conn = DriverManager.getConnection(URL,数据库登录名,数据库登录密码);//获得数据库连接。
2、Statement statement = con.createStatement(); //访问数据库。
3、ResultSet resultSet = statement.executeQuery(sql);//执行SQL语句。
4. preparestatement执行sql如何判断是否有数据
可以查看执行结果。执行sql以后,会在sql控制台中显示执行结果的。可以根据具体的sql以及实际反馈的执行结果进行判断是否有数据的。
5. 在执行sql时,statement与preparedstatement有什么区别
执行静态SQL语句。通常通过Statement实例实现。
执行动态SQL语句。通常通过PreparedStatement实例实现。
Statement
每次执行sql语句,数据库都要执行sql语句的编译
,最好用于仅执行一次查询并返回结果的情形,效率高于PreparedStatement
6. statement的Statement
Statement 使用案例
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 FROM Table2);
2、使用 Statement 对象执行语句
Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。
方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。
方法 executeUpdate 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 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 对象将由 Java 垃圾收集程序自动关闭。而作为一种好的编程风格,应在不需要 Statement 对象时显式地关闭它们。这将立即释放 DBMS 资源,有助于避免潜在的内存问题。