真难……

数据库建立不会,中文编码不会,插入数据不会,删除不会……

Java读入数据不会……数据库连接不会……

你也好意思说自己是学计算机的啊魂淡……

我会慢慢写2.0,3.0版的……噗……

 

src/wenr/entity/Student.java

  1. package wenr.entity;
  2. /**
  3. 数据库定义
  4. CREATE TABLE Student (
  5. sid CHAR(10) PRIMARY KEY,
  6. sname CHAR(20) NOT NULL,
  7. sc DOUBLE(5,2),
  8. sm DOUBLE(5,2),
  9. se DOUBLE(5,2),
  10. st DOUBLE(5,2)
  11. );
  12. */
  13.  
  14. public class Student {
  15. private String id;
  16. private String name;
  17. private double scoreChinese;
  18. private double scoreMath;
  19. private double scoreEnglish;
  20. private double scoreTot;
  21. public String getId() {
  22. return id;
  23. }
  24. public void setId(String id) {
  25. this.id = id;
  26. }
  27. public String getName() {
  28. return name;
  29. }
  30. public void setName(String name) {
  31. this.name = name;
  32. }
  33. public double getScoreChinese() {
  34. return scoreChinese;
  35. }
  36. public void setScoreChinese(double scoreChinese) {
  37. this.scoreChinese = scoreChinese;
  38. }
  39. public double getScoreMath() {
  40. return scoreMath;
  41. }
  42. public void setScoreMath(double scoreMath) {
  43. this.scoreMath = scoreMath;
  44. }
  45. public double getScoreEnglish() {
  46. return scoreEnglish;
  47. }
  48. public void setScoreEnglish(double scoreEnglish) {
  49. this.scoreEnglish = scoreEnglish;
  50. }
  51. public double getScoreTot() {
  52. return scoreTot;
  53. }
  54. public void setScoreTot(double scoreTot) {
  55. this.scoreTot = scoreTot;
  56. }
  57. }

 

src/wenr/oper/Mainpage.java

  1. package wenr.oper;
  2. import java.sql.ResultSet;
  3. import java.sql.SQLException;
  4. import java.sql.Statement;
  5. import java.util.Scanner;
  6. import wenr.db.DBClose;
  7. import wenr.db.DBConnection;
  8. import wenr.tool.InputNumber;
  9. public class Mainpage {
  10. static Statement statement = null;
  11. public static void main(String[] args) {
  12. Scanner in = new Scanner(System.in);
  13. int choose = 0;
  14. statement = DBConnection.getconnection();
  15. do {
  16. System.out.println("===============================\n" +
  17. "\t学生成绩管理系统\n\n" +
  18. "\t1.查询个人信息\n" +
  19. "\t2.查询全部信息\n" +
  20. "\t3.添加信息\n" +
  21. "\t4.删除信息\n" +
  22. "\t0.退出\n" +
  23. "===============================\n");
  24. choose = InputNumber.SimpleInteger(0, 4);
  25. if (choose == 1) {
  26. System.out.print("输入要查询的学号:");
  27. String qid = in.next();
  28. String result = query(qid);
  29. if (result.equals("")) {
  30. System.out.println("结果为空.");
  31. } else {
  32. System.out.println(result);
  33. }
  34. } else if (choose == 2) {
  35. System.out.println("1.按语文成绩排序\n2.按数学成绩排序\n3.按英语成绩排序\n4.按总成绩排序\n");
  36. int qKind = InputNumber.SimpleInteger(1, 4);
  37. String result = queryAll(qKind);
  38. if (result.equals("")) {
  39. System.out.println("结果为空.");
  40. } else {
  41. System.out.println(result);
  42. }
  43. } else if (choose == 3) {
  44. add();
  45. } else if (choose == 4){
  46. delete();
  47. }
  48. } while (choose != 0);
  49. System.out.println("Bye~");
  50. in.close();
  51. try {
  52. if (statement != null)
  53. statement.close();
  54. } catch (SQLException e) {
  55. // TODO Auto-generated catch block
  56. e.printStackTrace();
  57. }
  58. }
  59. public static String query(String qid) {
  60. StringBuilder result = new StringBuilder();
  61. String sql = "select * from student where sid = \\'" + qid + "\\'";
  62. ResultSet resultSet = null;
  63. try {
  64. resultSet = statement.executeQuery(sql);
  65. if (resultSet.next()) {
  66. result.append("学号\t\t姓名\t语文\t数学\t英语\t 总成绩");
  67. result.append("\n" + resultSet.getString("sid"));
  68. result.append("\t" + resultSet.getString("sname"));
  69. result.append("\t" + resultSet.getString("sc"));
  70. result.append("\t" + resultSet.getString("sm"));
  71. result.append("\t" + resultSet.getString("se"));
  72. result.append("\t" + resultSet.getString("st") + "\n");
  73. }
  74. } catch (SQLException e) {
  75. e.printStackTrace();
  76. }
  77. DBClose.close(resultSet);
  78. return result.toString();
  79. }
  80. public static String queryAll(int qKind) {
  81. String sql = "select * from student order by ";
  82. if (qKind == 1) sql += "sc";
  83. if (qKind == 2) sql += "sm";
  84. if (qKind == 3) sql += "se";
  85. if (qKind == 4) sql += "st";
  86. StringBuilder result = new StringBuilder();
  87. ResultSet resultSet = null;
  88. try {
  89. resultSet = statement.executeQuery(sql);
  90. boolean first = true;
  91. while (resultSet.next()) {
  92. if (first) { result.append("学号\t\t姓名\t语文\t数学\t英语\t 总成绩"); first = false; }
  93. result.append("\n" + resultSet.getString("sid"));
  94. result.append("\t" + resultSet.getString("sname"));
  95. result.append("\t" + resultSet.getString("sc"));
  96. result.append("\t" + resultSet.getString("sm"));
  97. result.append("\t" + resultSet.getString("se"));
  98. result.append("\t" + resultSet.getString("st"));
  99. }
  100. } catch (SQLException e) {
  101. e.printStackTrace();
  102. }
  103. DBClose.close(resultSet);
  104. return result.toString();
  105. }
  106. public static void add() {
  107. Scanner in = new Scanner(System.in);
  108. System.out.print("请输入学号(10个数字):");
  109. String id = InputNumber.getId();
  110. System.out.print("输入姓名:");
  111. String name = in.next();
  112. System.out.print("输入语文成绩:");
  113. double sChinese = InputNumber.getScore();
  114. System.out.print("输入数学成绩:");
  115. double sMath = InputNumber.getScore();
  116. System.out.print("输入英语成绩:");
  117. double sEnglish = InputNumber.getScore();
  118. double sTot = sChinese + sMath + sEnglish;
  119. String sql = "insert into student values(\\'" + id + "\\',\\'" + name + "\\', "
  120. + sChinese + "," + sMath + "," + sEnglish + "," + sTot + ")";
  121. try {
  122. statement.executeUpdate(sql);
  123. } catch (SQLException e) {
  124. // TODO Auto-generated catch block
  125. e.printStackTrace();
  126. }
  127. }
  128. public static void delete() {
  129. Scanner in = new Scanner(System.in);
  130. System.out.println("输入要删除的学号:");
  131. String qid = in.next();
  132. String result = query(qid);
  133. if ("".equals(result)) {
  134. System.out.println("不存在该学号.");
  135. } else {
  136. System.out.println(result);
  137. System.out.print("确认删除?(1确定,0返回):");
  138. int choose = InputNumber.SimpleInteger(0, 1);
  139. if (choose == 1) {
  140. String sql = "delete from student where sid= \\'" + qid + "\\'";
  141. System.out.println(sql);
  142. try {
  143. statement.executeUpdate(sql);
  144. } catch (SQLException e) {
  145. e.printStackTrace();
  146. }
  147. System.out.println("已删除");
  148. }
  149. }
  150. }
  151. }

 

src/wenr/tool/InputNumber.java

  1. package wenr.tool;
  2. import java.util.Scanner;
  3. public class InputNumber {
  4. public static int SimpleInteger(int low, int high) {
  5. Scanner in = new Scanner(System.in);
  6. int result = -1;
  7. String input = null;
  8. System.out.print("请按提示输入单个数字:");
  9. while (true) {
  10. input = in.next();
  11. if (input.length() == 1 && Character.isDigit(input.charAt(0))){
  12. result = Integer.parseInt(input);
  13. if (result <= high && result >= low) break;
  14. }
  15. System.out.print("输入错误.请按提示输入单个数字:");
  16. }
  17. return result;
  18. }
  19. public static String getId() {
  20. Scanner in = new Scanner(System.in);
  21. String id = null;
  22. re:
  23. while (true) {
  24. id = in.next();
  25. if (id.length() == 10) {
  26. for (int i = 0; i < 10; i++) {
  27. if (!Character.isDigit(id.charAt(i))) break;
  28. if (i == 9) break re;
  29. }
  30. }
  31. System.out.print("输入错误.请输入学号(10个数字):");
  32. }
  33. return id;
  34. }
  35. public static double getScore() {
  36. Scanner in = new Scanner(System.in);
  37. String score = null;
  38. while (true) {
  39. score = in.next();
  40. if (score.matches("\\d+(.\\d+)?")) break;
  41. System.out.print("输入成绩格式不正确,请重新输入:");
  42. }
  43. double result = 0;
  44. try {
  45. result = Double.parseDouble(score);
  46. } catch (Exception e) {
  47. e.printStackTrace();
  48. }
  49. return result;
  50. }
  51. }

 

src/wenr/db/DBConnection.java

  1. package wenr.db;
  2. import java.sql.Statement;
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. public class DBConnection {
  6. //MySQL JDBC驱动字符串
  7. public static final String DRIVER_MYSQL = "com.mysql.jdbc.Driver";
  8. //数据库Url,用来标识要连接的数据库,其中数据库名、用户名、密码是根据你自己的数据库情况设定
  9. public static final String URL = "jdbc:mysql://localhost:3306/SSMS?"
  10. + "user=root&password=123456&useUnicode=true&characterEncoding=UTF-8";
  11. public static Statement statement;
  12. public static Statement getconnection() {
  13. Connection connection = null;
  14. try {
  15. Class.forName(DRIVER_MYSQL); //加载JDBC驱动
  16. connection = DriverManager.getConnection(URL); //创建数据库连接对象
  17. statement = connection.createStatement(); //创建Statement对象
  18. } catch (Exception e) {
  19. e.printStackTrace();
  20. }
  21. return statement;
  22. }
  23. }

 

src/wenr/db/DBClose.java

  1. package wenr.db;
  2. import java.sql.ResultSet;
  3. import java.sql.SQLException;
  4. public class DBClose {
  5. public static void close(ResultSet resultSet) {
  6. try {
  7. if (resultSet != null) {
  8. resultSet.close();
  9. }
  10. } catch (SQLException e) {
  11. e.printStackTrace();
  12. }
  13. }
  14. }

 

运行结果:

版权声明:本文为wenruo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wenruo/p/6028716.html