package test;
import java.sql.*;
import java.util.Scanner;
public class testSql002_StudentTest {
/**
* 获得数据库连接的
* @return 数据库连接对象
* @throws Exception
*/
static Scanner input = new Scanner(System.in);
public static Connection getCon() throws Exception{
String qudong = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/studentdb";
String name = "root";
String pwd = "123";
//加载驱动 java和数据库的桥梁搭建好了
Class.forName(qudong);
//获得数据库连接 可以通过api连接数据库对数据库进行操作了
Connection con = DriverManager.getConnection(url,name,pwd);
return con;
}
/*显示学员的详细信息*/
public static void showStu() throws Exception{
Connection con = getCon();
//显示stu表中的学号,姓名,地址????
Statement st = con.createStatement();//执行sql语句
String sql = "select * from stu";
//st.executeQuery(sql) //执行select 语句的 ResultSet
//st.executeUpdate(sql) //执行 insert update delete语句 int 受影响的行数
ResultSet rs = st.executeQuery(sql);//执行查询语句获得结果
while(rs.next()){//读取下一行记录 读到数据返回 true没有数据false
String stuid = rs.getString(1); //索引值 列名 读取列的信息
String stuname = rs.getString(2);
String stuaddress = rs.getString("stuaddress");
System.out.println(stuid+"\t"+stuname+"\t"+stuaddress);//控制台显示
}
con.close();//关闭数据库连接
//问题:读取所有行 的数据 while(rs.next())
}
/*添加数据*/
public static void addStu() throws Exception{
Connection con = getCon();//获得数据库连接对象
//向表中添加一行数据
Statement st = con.createStatement();//工具 执行sql
//用户输入数据,把控制台输入的数据添加到数据库中
System.out.print("请输入学号:");
int sno = input.nextInt();
System.out.print("请输入java成绩:");
int sjava = input.nextInt();
System.out.print("请输入html成绩:");
int shtml = input.nextInt();
System.out.print("请输入sql成绩:");
int smysql = input.nextInt();
// String sql = "insert score values("+sno+","+sjava+","+smysql+")";
// %s %f %c %d 格式化字符串,变量列表
String sql = String.format("insert score values(%d,%d,%d,%d)",sno,sjava,shtml,smysql);
int n = st.executeUpdate(sql);// 1
if(n>0){
System.out.println("添加成功");
}else{
System.out.println("添加失败");
}
con.close();
}
/*修改数据*/
private static void updateStu() throws Exception {
Connection con = getCon();
Statement st = con.createStatement();
System.out.println("请输入学员的住址:");
String stuaddress = input.next();
String sql =String.format("UPDATE stu SET stuaddress = '%s' WHERE stuaddress ='%s'", stuaddress,"北京");
System.out.println(sql);
int n = st.executeUpdate(sql);
if(n>0){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
con.close();
}
/*删除学员信息*/
private static void deleteStu() throws Exception {
Connection con = getCon();
Statement st = con.createStatement();
System.out.println("请输入要删除学员的编号:");
int sid = input.nextInt();
String sql =String.format("DELETE FROM stu WHERE sid =%d", sid);
System.out.println(sql);
int n = st.executeUpdate(sql);
if(n>0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
con.close();
}
public static void main(String[] args) throws Exception{
System.out.println("********学员管理系统菜单**********");
System.out.println("* 1.查询学员数据; ");
System.out.println("* 2.添加学员成绩信息;");
System.out.println("* 3.修改学员信息;");
System.out.println("* 4.删除学员信息;");
System.out.println("*********************************");
Scanner input = new Scanner(System.in);
int n = 0;
System.out.print("---请输入选择:");
n = input.nextInt();
switch(n){
case 1:showStu();break;
case 2:addStu();break;
case 3: updateStu();break;//修改学员信息
case 4: deleteStu();break;//删除学员信息
default:System.out.println("选择错误!");break;
}
}
}