真难……
数据库建立不会,中文编码不会,插入数据不会,删除不会……
Java读入数据不会……数据库连接不会……
你也好意思说自己是学计算机的啊魂淡……
我会慢慢写2.0,3.0版的……噗……
src/wenr/entity/Student.java
package wenr.entity; /** 数据库定义 CREATE TABLE Student ( sid CHAR(10) PRIMARY KEY, sname CHAR(20) NOT NULL, sc DOUBLE(5,2), sm DOUBLE(5,2), se DOUBLE(5,2), st DOUBLE(5,2) ); */ public class Student { private String id; private String name; private double scoreChinese; private double scoreMath; private double scoreEnglish; private double scoreTot; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getScoreChinese() { return scoreChinese; } public void setScoreChinese(double scoreChinese) { this.scoreChinese = scoreChinese; } public double getScoreMath() { return scoreMath; } public void setScoreMath(double scoreMath) { this.scoreMath = scoreMath; } public double getScoreEnglish() { return scoreEnglish; } public void setScoreEnglish(double scoreEnglish) { this.scoreEnglish = scoreEnglish; } public double getScoreTot() { return scoreTot; } public void setScoreTot(double scoreTot) { this.scoreTot = scoreTot; } }
src/wenr/oper/Mainpage.java
package wenr.oper; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; import wenr.db.DBClose; import wenr.db.DBConnection; import wenr.tool.InputNumber; public class Mainpage { static Statement statement = null; public static void main(String[] args) { Scanner in = new Scanner(System.in); int choose = 0; statement = DBConnection.getconnection(); do { System.out.println("===============================\n" + "\t学生成绩管理系统\n\n" + "\t1.查询个人信息\n" + "\t2.查询全部信息\n" + "\t3.添加信息\n" + "\t4.删除信息\n" + "\t0.退出\n" + "===============================\n"); choose = InputNumber.SimpleInteger(0, 4); if (choose == 1) { System.out.print("输入要查询的学号:"); String qid = in.next(); String result = query(qid); if (result.equals("")) { System.out.println("结果为空."); } else { System.out.println(result); } } else if (choose == 2) { System.out.println("1.按语文成绩排序\n2.按数学成绩排序\n3.按英语成绩排序\n4.按总成绩排序\n"); int qKind = InputNumber.SimpleInteger(1, 4); String result = queryAll(qKind); if (result.equals("")) { System.out.println("结果为空."); } else { System.out.println(result); } } else if (choose == 3) { add(); } else if (choose == 4){ delete(); } } while (choose != 0); System.out.println("Bye~"); in.close(); try { if (statement != null) statement.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static String query(String qid) { StringBuilder result = new StringBuilder(); String sql = "select * from student where sid = \‘" + qid + "\‘"; ResultSet resultSet = null; try { resultSet = statement.executeQuery(sql); if (resultSet.next()) { result.append("学号\t\t姓名\t语文\t数学\t英语\t 总成绩"); result.append("\n" + resultSet.getString("sid")); result.append("\t" + resultSet.getString("sname")); result.append("\t" + resultSet.getString("sc")); result.append("\t" + resultSet.getString("sm")); result.append("\t" + resultSet.getString("se")); result.append("\t" + resultSet.getString("st") + "\n"); } } catch (SQLException e) { e.printStackTrace(); } DBClose.close(resultSet); return result.toString(); } public static String queryAll(int qKind) { String sql = "select * from student order by "; if (qKind == 1) sql += "sc"; if (qKind == 2) sql += "sm"; if (qKind == 3) sql += "se"; if (qKind == 4) sql += "st"; StringBuilder result = new StringBuilder(); ResultSet resultSet = null; try { resultSet = statement.executeQuery(sql); boolean first = true; while (resultSet.next()) { if (first) { result.append("学号\t\t姓名\t语文\t数学\t英语\t 总成绩"); first = false; } result.append("\n" + resultSet.getString("sid")); result.append("\t" + resultSet.getString("sname")); result.append("\t" + resultSet.getString("sc")); result.append("\t" + resultSet.getString("sm")); result.append("\t" + resultSet.getString("se")); result.append("\t" + resultSet.getString("st")); } } catch (SQLException e) { e.printStackTrace(); } DBClose.close(resultSet); return result.toString(); } public static void add() { Scanner in = new Scanner(System.in); System.out.print("请输入学号(10个数字):"); String id = InputNumber.getId(); System.out.print("输入姓名:"); String name = in.next(); System.out.print("输入语文成绩:"); double sChinese = InputNumber.getScore(); System.out.print("输入数学成绩:"); double sMath = InputNumber.getScore(); System.out.print("输入英语成绩:"); double sEnglish = InputNumber.getScore(); double sTot = sChinese + sMath + sEnglish; String sql = "insert into student values(\‘" + id + "\‘,\‘" + name + "\‘, " + sChinese + "," + sMath + "," + sEnglish + "," + sTot + ")"; try { statement.executeUpdate(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void delete() { Scanner in = new Scanner(System.in); System.out.println("输入要删除的学号:"); String qid = in.next(); String result = query(qid); if ("".equals(result)) { System.out.println("不存在该学号."); } else { System.out.println(result); System.out.print("确认删除?(1确定,0返回):"); int choose = InputNumber.SimpleInteger(0, 1); if (choose == 1) { String sql = "delete from student where sid= \‘" + qid + "\‘"; System.out.println(sql); try { statement.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } System.out.println("已删除"); } } } }
src/wenr/tool/InputNumber.java
package wenr.tool; import java.util.Scanner; public class InputNumber { public static int SimpleInteger(int low, int high) { Scanner in = new Scanner(System.in); int result = -1; String input = null; System.out.print("请按提示输入单个数字:"); while (true) { input = in.next(); if (input.length() == 1 && Character.isDigit(input.charAt(0))){ result = Integer.parseInt(input); if (result <= high && result >= low) break; } System.out.print("输入错误.请按提示输入单个数字:"); } return result; } public static String getId() { Scanner in = new Scanner(System.in); String id = null; re: while (true) { id = in.next(); if (id.length() == 10) { for (int i = 0; i < 10; i++) { if (!Character.isDigit(id.charAt(i))) break; if (i == 9) break re; } } System.out.print("输入错误.请输入学号(10个数字):"); } return id; } public static double getScore() { Scanner in = new Scanner(System.in); String score = null; while (true) { score = in.next(); if (score.matches("\\d+(.\\d+)?")) break; System.out.print("输入成绩格式不正确,请重新输入:"); } double result = 0; try { result = Double.parseDouble(score); } catch (Exception e) { e.printStackTrace(); } return result; } }
src/wenr/db/DBConnection.java
package wenr.db; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; public class DBConnection { //MySQL JDBC驱动字符串 public static final String DRIVER_MYSQL = "com.mysql.jdbc.Driver"; //数据库Url,用来标识要连接的数据库,其中数据库名、用户名、密码是根据你自己的数据库情况设定 public static final String URL = "jdbc:mysql://localhost:3306/SSMS?" + "user=root&password=123456&useUnicode=true&characterEncoding=UTF-8"; public static Statement statement; public static Statement getconnection() { Connection connection = null; try { Class.forName(DRIVER_MYSQL); //加载JDBC驱动 connection = DriverManager.getConnection(URL); //创建数据库连接对象 statement = connection.createStatement(); //创建Statement对象 } catch (Exception e) { e.printStackTrace(); } return statement; } }
src/wenr/db/DBClose.java
package wenr.db; import java.sql.ResultSet; import java.sql.SQLException; public class DBClose { public static void close(ResultSet resultSet) { try { if (resultSet != null) { resultSet.close(); } } catch (SQLException e) { e.printStackTrace(); } } }
运行结果:
时间: 2024-10-21 11:06:06