executeupdate()用法,ps.executeUpdate(); 是什么意思?
executeupdate()用法,ps.executeUpdate(); 是什么意思?详细介绍
本文目录一览: executeupdate()和executeUpdate(sql)用法区别 主要是参数和返回值的区别
方法executeUpdate
用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和
DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate
的返回值是一个整数(int),指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE
等不操作行的语句,executeUpdate 的返回值总为零。
如:
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//使用DriverManager获取数据库连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","1234");
//使用Connection来创建一个Statment对象
Statement stmt = conn.createStatement();//执行DML语句,返回受影响的记录条数
return stmt.executeUpdate(sql);
>方法execute:
可用于执行任何SQL语句,返回一个boolean值,表明执行该SQL语句是否返回了ResultSet。如果执行后第一个结果是
ResultSet,则返回true,否则返回false。但它执行SQL语句时比较麻烦,通常我们没有必要使用execute方法来执行SQL语句,而
是使用executeQuery或executeUpdate更适合,但如果在不清楚SQL语句的类型时则只能使用execute方法来执行该SQL语句
了。
如: //加载驱动
Class.forName(driver);
//获取数据库连接
conn = DriverManager.getConnection(url , user , pass);//使用Connection来创建一个Statment对象
stmt = conn.createStatement();
//执行SQL,返回boolean值表示是否包含ResultSetboolean hasResultSet = stmt.execute(sql);//如果执行后有ResultSet结果集
if (hasResultSet)
{
//获取结果集
rs = stmt.getResultSet();
//ResultSetMetaData是用于分析结果集的元数据接口ResultSetMetaData rsmd = rs.getMetaData();int columnCount = rsmd.getColumnCount();
//迭代输出ResultSet对象
while (rs.next())
{//依次输出每列的值
for (int i = 0 ; i < columnCount ; i++ )
{
System.out.print(rs.getString(i + 1) + "/t");}
System.out.print("/n");
}}
else{
System.out.println("该SQL语句影响的记录有" + stmt.getUpdateCount() + "条");}
两者区别具体表现:
execute方法执行返回的都是布尔值。
executeupdate返回的都是int整数类型。
execute方法在执行SQL语句的时候比较麻烦,而executeupdate比较方便。
我不是答的高质量,怎么老是把我归到高质量呢
java execute,executeQuery和executeUpdate之间的区别
从他们的返回类型基本可以看出它们之间的区别
execute返回boolean类型,查询结果是resultset且有值则返回true,其他都返回false
executeQuery返回结果集ResultSet。主要针对查询语句,返回查询结果
executeUpdate返回int类型。更新、删除等操作影响的数目
1. ResultSet executeQuery(String sql); 执行SQL查询,并返回ResultSet 对象。
2.int executeUpdate(String sql); 可执行增,删,改,返回执行受到影响的行数。
3. boolean execute(String sql); 可执行任何SQL语句,返回一个布尔值,表示是否返回ResultSet 。
execute是executeQuery和executeUpdate的综合.
-----
executeUpdate() 这是 PreparedStatement 接口中的方法
executeUpdate(String sql) 这是 PreparedStatement 从父接口 Statement 中继承过来的方法
executeUpdate() 中执行 SQL 语句需要在创建 PerparedStatement 时通过 Connection 的 prepareStatement(String sql) 方法中写出,因为 PerparedStatement 中的 SQL 语句数据库需要进行预编译和缓存,因此要在创建 PerparedStatement 对象时给出 SQL 语句。
而 executeUpdate(String sql) 是 Statement 中的方法,参数中的 SQL 语句只是提交给数据库去执行,并不需要预编译。
如果 SQL 语句中有 ? 占位符,那么在设置好占位符中的值后,必须使用 executeUpdate() 执行。而 executeUpdate(String sql) 只是提交一个 SQL 语句,且这个语句中不能带有 ? 占位符。
executeQuery()是执行查询,execute()是执行insert,update,delete等操作
java中execute,executeQuery和executeUpdate之间的区别如下:
1、总的概括如下:
executeQuery()—直接从数据库中获取数据,只能执行select语句
executeUpdate()—对数据库进行insert,delete或者update
execute()—所有对数据库的操作都可以使用此方法
2、具体区别如下:
executeQuery() :通常用于读取数据库的内容。以结果集的形式输出数据。一般使用于SELECT语句。
executeUpdate() — 通常用于改变数据库。一般来说DROP TABLE或数据库,插入到表,更新表,从TABLE语句删除将在此使用。输出将在INT的形式。此int值表示受到查询的行数。
execute() — 如果用户不知道要用于执行SQL语句该方法,可以使用这种方法。这将返回一个布尔值。 TRUE表示结果是一个ResultSet,FALSE表示它有它表示受查询的行数的int值。
ps.executeUpdate(); 是什么意思?
代码不全,我猜ps是数据库的操作,你可以给ps设置SQL语句,然后ps.executeUpdate(); 是执行了这条SQL语句。返回值int是你更新了数据库中几条记录。
方法executeUpdate
用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
是当成功插入数据到数据库时候,这个会返回一个大于1的数字,来表明数据成功插入库之中
方法executequery
这个方法被用来执行
select
语句,它几乎是使用最多的
sql
语句。
方法executeupdate
用于执行
insert、update
或
delete
语句以及
sql
ddl(数据定义语言)语句,例如
create
table
和
drop
table。insert、update
或
delete
语句的效果是修改表中零行或多行中的一列或多列。executeupdate
的返回值是一个整数,指示受影响的行数(即更新计数)。对于
create
table
或
drop
table
等不操作行的语句,executeupdate
的返回值总为零。
方法execute:
用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能
是当成功插入数据到数据库时候,这个会返回一个大于1的数字,来表明数据成功插入库之中
sql注入发生的时间,sql注入发生的阶段在sql预编译阶段,当编译完成的sql不会产生sql注入,采用jdbc操作数据时候,preparedStatement 预编译对象会对传入sql进行预编译。
那么当传入id 字符串为 "update ft_proposal set id = 3;drop table ft_proposal;" 这种情况下就会导致sql注入删除ft_proposal这张表。
预编译语句
处理使用预编译语句之外,另一种实现方式可以采用存储过程,存储过程其实也是预编译的,存储过程是sql语句的集合,将所有预编译的sql语句编译完成后,存储在数据库上。
当传入的参数为3;drop table user;当执行时可以看见打印的sql语句为:select name from usre where id = ?;不管输入何种参数时,都可以防止sql注入,因为mybatis底层实现了预编译。
executeQuery();和addBatch();executeBatch();除了执行单个和批量处理的不同外,还有什么不同?
方法executeQuery
用于产生单个结果集的语句,例如 SELECT 语句。 被使用最多的执行 SQL 语句的方法是 executeQuery。这个方法被用来执行 SELECT 语句,它几乎是使用最多的 SQL 语句。
方法executeUpdate
用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
在压力不是特别大.数据量不的特别大的时候是看不出差异的..(大概数据量上升到百万级别的时候就有明显区别了)......但是既然这么设计了,我想最好还是把多条相似语句放到一起执行.
executeQuery()是专门用来执行DQL(就是数据查询语句SELECT)语句的;
而addBatch()和executeUpdate()是用来执行数据插入的,不同就是一个批量,一个单个插入。这两个不要一起使用,那样addBatch()就和没写一样。addBatch()是用来缓存数据的,将多条sql语句缓存起来,再通过executeBatch()方法一次性发给数据库,大大提高执行效率。executeUpdate()注重的及时性,每写一条sql语句就发送给数据库保存起来,没有缓存,这样频繁操作数据库效率非常低。
还有一点需要注意的是:使用addBatch()缓存数据时要在循环中设置条件,当循环达到指定次数后执行executeBatch(),将缓存中的sql全部发给数据库,然后执行clearBatch()清楚缓存,否则数据过大是会出现OutOfMemory(内存不足)。
在Java中如何使用execute()、executeQuery()、executeUpdate()三个方法
execute(String sql)
执行给定的 SQL 语句,该语句可能返回多个结果。
executeQuery(String sql)
执行给定的 SQL 语句,该语句返回单个 ResultSet 对象
executeUpdate(String sql)
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)
头2种一般在查询中使用
最后一个在插入、更新、删除时使用
java 两个mysql数据库之间复制表 如何使用executeUpdate
stmt2.executeUpdate("INSERT INTO ldDB users('"+ext +"','"+pass +'")");
这样就可以了,不过一般建议后台写两个类,使用其对象来存储一下数据
请我用Update()更新,为什么返回值为
executeUpdate(sql)的返回值是更新的条数(更新的记录数量)。返回值是一个整数。
对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为0。
executeUpdate
用于执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。
例如 :CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。
使用executeUpdate方法是因为在 createTableCoffees 中的 SQL 语句是 DDL (数据定义语言)语句。创建表,改变表,删除表都是 DDL 语句的例子,要用 executeUpdate 方法来执行。
也可以从它的名字里看出,方法 executeUpdate 也被用于执行更新表 SQL 语句。实际上,相对于创建表来说,executeUpdate 用于更新表的时间更多,因为表只需要创建一次,但经常被更新。
update的时候sqlca有一个属性为sqlerrtext,你可是看看返回的sqlerrtext,这对你找出问题的所在可能会有帮助
jsp中通过executeUpdate实现数据库的添加时引号怎么用呀
当插入的值是字符串的时候才需要使用到引号。
如果你插入的值全是字符串类型的,那么你下面的这种写法就没有错,如果不全是字符串类型的,有些就不能加上引号的。(我使用Oracle是这样的)
我建议你先用一个String sql = ”insert into ....”;这样的语句将sql写出来 ,然后打印出来拿到数据库中去执行以下这条语句,你就能知道哪些地方出错了。
希望我的回答对你有所帮助。
少了几个"+"号,应为——
ss.executeUpdate("insert into manainfor values('" + manano + "'" + "," + "'" + mananame + "'" + "," + "'" + manasex + "'" + "," + "'" + manaposi + "'" + "," + "'" + manalevel + "'" + "," + "'" + manaphon + "'" + "," + "'" + manatele + "'" + "," + "'" + manapere + "'" + ")");
简练点——
ss.executeUpdate("insert into manainfor values ('" + manano + "','" + nananame + "','" + manasex + "','" + manaposi + "','" + manalevel + "','" + manaphon + "','" + manatele + "','" +manapere + "')" );
建议这样的sql文用PreparedStatement构建,比之普通的Statement不仅效率更高,而且sql文构建也不容易出这样的错,如——
int manano;
String nananame;
String manasex;
String manaposi;
String manalevel;
String manaphon;
String manatele;
String manapere;
Connection conn = null;
PreparedStatement pstmt = null;
String sql = "insert into manainfor values (?, ?, ?, ?, ?, ?, ?, ?)";
try {
conn = XXXXXXXXXXXX;
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, manano);
pstmt.setString(2, nananame);
pstmt.setString(3, manasex);
pstmt.setString(4, manaposi);
pstmt.setString(5, manalevel);
pstmt.setString(6, manaphon);
pstmt.setString(7, manatele);
pstmt.setString(8, manapere);
pstmt.executeUpdate();
} catch (SQLException e) {
xxxxxxxxxx;
} finally {
xxxxxxxxxxx;
}
如何使用JDBC PreparedStatement对象批量处理更新和插入Oracle数据
如果成批地处理插入和更新操作,就能够显著地减少它们所需要的时间。Oracle提供的Statement和 CallableStatement并不真正地支持批处理,只有PreparedStatement对象才真正地支持批处理。我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理,或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的批处理机制,可以以如下所示的方式调用setExecuteBatch():
PreparedStatement pstmt3D null;
try {
((OraclePreparedStatement)
pstmt).setExecuteBatch(30);
...
pstmt.executeUpdate();
}