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