admin 管理员组

文章数量: 887032

execute,executeQuery和executeUpdate的区别

在jdbc中有3种执行sql的语句分别是execute,executeQuery和executeUpdate

execute执行增删改查操作

execute返回的结果是个boolean型,当返回的是true的时候,表明有ResultSet结果集,通常是执行了select操作,当返回的是false时,通常是执行了insert、update、delete等操作。execute通常用于执行不明确的sql语句。


executeQuery执行查询操作

executeQuery返回的是ResultSet结果集,通常是执行了select操作。


executeUpdate执行增删改操作

executeUpdate返回的是int型,表明受影响的行数,通常是执行了insert、update、delete等操作。



实例如下:

package javaTest;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;public class ConnDataBase {public static void main(String[] args) {execute();//增删改查
//		executeQuery();//excuteQuery 查
//		executeUpdate();//excuteUpdate 增删改}/*** 获取连接* @return 连接对象*/public static Connection getConnection(){Connection con = null;try {Class.forName("oracle.jdbc.OracleDriver");//获取oracle驱动con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "ssh1", "ssh1");///填入url,用户名,密码}catch(Exception e){e.printStackTrace();}return con;}/*** 用executeUpdate执行增删改操作*/public static void executeUpdate(){Connection con=null;try {con=getConnection();String sql="insert into student(s#,sname,sage,ssex) values('7','哈7','27','男')";
//			String sql="delete from student where s#='7'";
//			String sql="update student set sname='呵7' where s#='7'";Statement st=con.createStatement();//创建用于执行静态的statement对象int count=st.executeUpdate(sql);//执行sql插入(删除、更新)语句,返回插入的行数System.out.println("插入(删除、更新)"+count+"条数据");con.close();} catch (SQLException e) {e.printStackTrace();}}/*** 用executeUpdate执行查询操作*/public static void executeQuery(){Connection con = null;try {con = getConnection();String sql = "select * from Student";Statement st = con.createStatement();ResultSet rs = st.executeQuery(sql);while (rs.next()) {ResultSetMetaData rsmd = rs.getMetaData();//用于分析结果集的元数据接口int columnCount = rsmd.getColumnCount();//列数for(int i=0;i<columnCount;i++){System.out.print(rs.getString(i+1)+" ");     	}System.out.println();}con.close();} catch (Exception e) {e.printStackTrace();}}/*** 用execute执行增删改查操作*/public static void execute(){Connection con = null;try {con = getConnection();String sql = "select * from Student";
//			String sql="insert into student(s#,sname,sage,ssex) values('7','哈7','27','男')";
//			String sql="delete from student where s#='7'";
//			String sql="update student set sname='呵7' where s#='7'";Statement st = con.createStatement();boolean hasResultSet = st.execute(sql);if(hasResultSet){ResultSet rs=st.getResultSet();while (rs.next()) {ResultSetMetaData rsmd = rs.getMetaData();//用于分析结果集的元数据接口int columnCount = rsmd.getColumnCount();//列数for(int i=0;i<columnCount;i++){System.out.print(rs.getString(i+1)+" ");     	}System.out.println();}}else{int count=st.getUpdateCount();//受影响行数System.out.println("插入(删除、更新)"+count+"条数据");}con.close();} catch (Exception e) {e.printStackTrace();}}
}


本文标签: execute executeQuery和executeUpdate的区别