MySQL中的execute、executeQuery、executeUpdate的区别

最近作品写到了点击添加管理员功能,连接数据库后有点发懵用哪一个查询,所以查了并写了一下这三个的区别以及适用情况。

1. Execute(String sql)

boolean类型,是executeQuery和executeUpdate的总和;
当返回为true的时候,可通过getResultSet获取sql语句查询的结果集;
当返回为false的时候,可通过getUpdateCount获取更新数量;

2. executeQuery(String sql)

返回值为结果集对象(result set),用于查询获取结果集;

public static void main(String[] args) { 
  
 Connection conn = null; 
 Statement stm = null; 
 ResultSet rs = null; 
 try { 
  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
  conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Test;user=sa;password=sasa"); 
  stm = conn.createStatement(); 
  boolean ret = stm.execute("select * from stuinfo"); 
  if(ret){ 
  rs = stm.getResultSet(); 
  while(rs.next()){ 
   System.out.println("姓名:"+rs.getString("stuName")+"\t年龄:"+rs.getString("stuScore")); 
  } 
  } 
  ret = stm.execute("update stuinfo set stuScore=62 where stuname='张三'"); 
  int count = stm.getUpdateCount(); 
  if(!ret){ 
  System.out.println(count+"条数据修改成功!"); 
  } 
 } catch (ClassNotFoundException e) { 
  e.printStackTrace(); 
 } catch (SQLException e) { 
  e.printStackTrace(); 
 }  
 } 
3. executeUpdate(String sql)

返回值为int类型,返回的是修改更新(INSERT、UPDATE 或 DELETE)的数据数量。

public void addManager(Manager m){
        Statement stmt = null;
        try {
            Connection conn = Util.getConnection();
            stmt = conn.createStatement();
            String sql = "insert into manager(manager_name,manager_sex,manager_tel,secret,manager_kind,manager_num) values(?,?,?,?,?,?)";
            PreparedStatement ptmt = conn.prepareStatement(sql);//对sql语句进行一次编译
            ptmt.setString(1,m.getManager_name());
            ptmt.setString(2,m.getManager_sex());
            ptmt.setString(3,m.getManager_tel());
            ptmt.setString(4,m.getSecret());
            ptmt.setString(5,m.getManager_kind());
            ptmt.setInt(6,m.getManager_num());
            ptmt.executeUpdate(sql);
        }catch (SQLException e){
            e.printStackTrace();
        }
    }

参考:https://www.jb51.net/article/113086.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值