1.executeQuery(String sql); 执行sql,实现查询,并返回ResultSet 对象。
2. executeUpdate(String sql); 执行sql语句,可实现增添,修改,删除,返回执行受到影响的行数,因而不能执行查询操作。
代码如下
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
public class StuOpe {
/* 创建Connection,ResultSet,Statement接口的成员变量*/
private static Connection con=null;
private static ResultSet res=null;
private static Statement sta=null;
private static String sql=null;
/*创建释放对象占用的数据库和JDBC资源的方法
*try catch语句多catch语句时顺序执行
执行第一个与异常类匹配的catch语句,其后catch被忽略*/
private static void closeOPE(Connection con,ResultSet res,Statement sta) {
try {
if (res!=null) {
res.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if (sta!=null) {
sta.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if (con!=null) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}//end of closeOPE()
public static void main(String[] args) {
welcome();
while(true) {
menu();
}
} //end of main()
static void welcome() {
System.out.println("****************************************");
System.out.println("*\t\t\t\t\t*");
System.out.println("*\t欢迎使用用户注册管理系统\t\t*");
System.out.println("*\t\t\t\t\t*");
System.out.println("****************************************");
} //end of welcome()
static void menu() {
System.out.println("1.添加 2.修改 3.删除 4.查询");
System.out.println("请输入操作,以Enter键结束");
Scanner sc=new Scanner(System.in); //创建扫描器
int operation=sc.nextInt();
try {
Class.forName("com.mysql.jdbc.Driver"); //加载mysql数据库驱动类
con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","root"); //获取数据库连接对象
sta=con.createStatement(); //使用连接数据库对象con的createStatement()方法创建Statement对象
} catch (Exception e) {
e.printStackTrace();
}
switch(operation) {
case 1: //添加
System.out.println("请输入学生的id,姓名,手机号,地址 用空格间隔,enter键结束");
String id=sc.next();
String name=sc.next();
String mobile=sc.next();
String address=sc.next();
try {
sql="select * from user_ope where id='"+id+"'";
res=sta.executeQuery(sql); //executeQuery()执行SQL查询,并返回ResultSet 对象。
while(res.next()) { //next()指针下移一行,为空返回false
System.out.println("id"+id+"存在,添加失败");
return;
}
sql="insert into user_ope(id,name,mobile,address) values('"+id+"','"+name+"','"+mobile+"','"+address+"')";
if(sta.executeUpdate(sql)>0) { //executeUpdate()方法执行了sql对象中的添加语句,返回int类型,表示受影响数据条数,>0即添加操作成功
System.out.println("id="+id+"name="+name+"添加成功");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
closeOPE(con,res,sta);
}
break;
case 2: //修改
System.out.println("请输入要修改的id,修改后姓名,手机号,地址 用 空格间隔,enter键结束");
id=sc.next();
name=sc.next();
mobile=sc.next();
address=sc.next();
try {
sql="update user_ope set name='"+name+"',address='"+address+"',mobile='"+mobile+"' where id='"+id+"'";
if(sta.executeUpdate(sql)>0) { //executeUpdate()方法执行了sql对象中的修改语句,返回int类型,表示受影响数据条数,>0即添加操作成功
System.out.println("id="+id+"修改成功");
}else {
System.out.println(id+"不存在");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
closeOPE(con,res,sta);
}
break;
case 3: //删除
System.out.println("请输入要删除的id enter键结束");
id=sc.next();
try {
sql="delete from user_ope where id='"+id+"'";
if(sta.executeUpdate(sql)>0) { //executeUpdate()方法执行了sql对象中的删除语句,返回int类型,表示受影响数据条数,>0即添加操作成功
System.out.println("id="+id+"删除成功");
}else {
System.out.println(id+"不存在");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
closeOPE(con,res,sta);
}
break;
case 4: //查询
System.out.println("请输入要查询的id enter键结束");
id=sc.next();
try {
sql="select * from user_ope where id='"+id+"'";
res=sta.executeQuery(sql);
while(res.next()) {
id=res.getString("id");
name=res.getString("name");
mobile=res.getString("mobile");
address=res.getString("address");
System.out.println("id="+id+",name="+name+",mobile="+mobile+"address="+address);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
closeOPE(con,res,sta);
}
break;
default:
System.out.println("无效输入");
}//end of switch
} //end of menu()
} //end of class