java+sqlserver實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
前提:
1.建立了與sqlserver
數(shù)據(jù)庫的連接
(JTDS連接sqlserver
數(shù)據(jù)庫的包jtds-1.2.7.jar)
2. 了解JDBC執(zhí)行SQL的語法
一.實(shí)現(xiàn)效果
二.實(shí)現(xiàn)代碼
1.DBUtil.java
說明:直接復(fù)制必然出錯。
因?yàn)橐B接自己的數(shù)據(jù)庫,其中部分?jǐn)?shù)據(jù)說明:
Connection conn = getSQLConnection("192.168.223.1", "admin", "123123", "物流寄存"); //本機(jī)V8 ip 192.168.223.1 //在數(shù)據(jù)庫中建立的一個登錄名 admin //登錄名admin 的密碼 123123 //要連接的數(shù)據(jù)庫 物流寄存 (因?yàn)槭桥R時作業(yè)就先隨便找個數(shù)據(jù)庫放了)
DBUtil.java
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.text.SimpleDateFormat; import java.util.Date; public class DBUtil { //連接數(shù)據(jù)庫 private static Connection getSQLConnection(String ip, String user, String pwd, String db) { Connection con = null; try { Class.forName("net.sourceforge.jtds.jdbc.Driver"); //con = DriverManager.getConnection("jdbc:jtds:sqlserver://" + ip + ":1433/" + db + ";charset=utf8", user, pwd); //jdbc:jtds:sqlserver://localhost:1433/dbname //解決輸出中文亂碼 con = DriverManager.getConnection("jdbc:jtds:sqlserver://" + ip + ":1433/" + db , user, pwd); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return con; } //查詢 public static String QuerySQL() { String result = ""; try { //10.0.2.2 android ip //本機(jī)V8 ip 192.168.223.1 Connection conn = getSQLConnection("192.168.223.1", "admin", "123123", "物流寄存"); String sql = "select * from 學(xué)生信息表"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); //System.out.println(rs); while (rs.next()) {//學(xué)號、姓名、班級、性別、專業(yè)、學(xué)院 String s1 = rs.getString("學(xué)號").trim(); String s2 = rs.getString("姓名").trim(); String s3 = rs.getString("班級").trim(); String s4 = rs.getString("性別").trim(); String s5 = rs.getString("專業(yè)").trim(); String s6 = rs.getString("學(xué)院").trim(); result += s1 + " " + s2 + " " + s3 + " " + s4+ " " + s5+" "+s6+"\n"; // System.out.println(s1 + " - " + s2); } rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); result += "查詢數(shù)據(jù)異常!" + e.getMessage(); } return result; } //插入學(xué)生信息 public static String insert_student(String sno,String name,String banji,String sex,String shuanye,String xueyuan) {//學(xué)號、姓名、班級、性別、專業(yè)、學(xué)院 String result = ""; try { //10.0.2.2 android ip //本機(jī)V8 ip 192.168.223.1 Connection conn = getSQLConnection("192.168.223.1", "admin", "123123", "物流寄存"); String sql = "insert into 學(xué)生信息表 values ('"+sno+"','"+name+"','"+banji+"','"+sex+"','"+shuanye+"','"+xueyuan+"');"; Statement stmt = conn.createStatement(); stmt.executeUpdate(sql); stmt.close(); conn.close(); result+="插入成功"; } catch (SQLException e) { e.printStackTrace(); result += "查詢數(shù)據(jù)異常!" + e.getMessage(); } return result; } //刪除學(xué)生信息 public static String delete_student(String sno) {//學(xué)號、姓名、班級、性別、專業(yè)、學(xué)院 String result = ""; try { //10.0.2.2 android ip //本機(jī)V8 ip 192.168.223.1 Connection conn = getSQLConnection("192.168.223.1", "admin", "123123", "物流寄存"); String sql = "delete 學(xué)生信息表 where 學(xué)號 = " + sno; Statement stmt = conn.createStatement(); stmt.executeUpdate(sql); stmt.close(); conn.close(); result+="刪除成功"; } catch (SQLException e) { e.printStackTrace(); result += "查詢數(shù)據(jù)異常!" + e.getMessage(); } return result; } //按學(xué)號查詢 public static String QuerySQL_sno(String sno) { String result = ""; try { //10.0.2.2 android ip //本機(jī)V8 ip 192.168.223.1 171.120.157.130 Connection conn = getSQLConnection("192.168.223.1", "admin", "123123", "物流寄存"); String sql = "select * from 學(xué)生信息表 where 學(xué)號 = '"+ sno+"';"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) {//學(xué)號、姓名、班級、性別、專業(yè)、學(xué)院 String s1 = rs.getString("學(xué)號").trim(); String s2 = rs.getString("姓名").trim(); String s3 = rs.getString("班級").trim(); String s4 = rs.getString("性別").trim(); String s5 = rs.getString("專業(yè)").trim(); String s6 = rs.getString("學(xué)院").trim(); result += s1 + " " + s2 + " " + s3 + " " + s4+ " " + s5+" "+s6+"\n"; // System.out.println(s1 + " - " + s2); } rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); result += "查詢數(shù)據(jù)異常!" + e.getMessage(); } return result; } //按性別查詢 public static String QuerySQL_sex(String sex) { String result = ""; try { //10.0.2.2 android ip //本機(jī)V8 ip 192.168.223.1 171.120.157.130 Connection conn = getSQLConnection("192.168.223.1", "admin", "123123", "物流寄存"); String sql = "select * from 學(xué)生信息表 where 性別 = '"+sex+"';"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) {//學(xué)號、姓名、班級、性別、專業(yè)、學(xué)院 String s1 = rs.getString("學(xué)號").trim(); String s2 = rs.getString("姓名").trim(); String s3 = rs.getString("班級").trim(); String s4 = rs.getString("性別").trim(); String s5 = rs.getString("專業(yè)").trim(); String s6 = rs.getString("學(xué)院").trim(); result += s1 + " " + s2 + " " + s3 + " " + s4+ " " + s5+" "+s6+"\n"; // System.out.println(s1 + " - " + s2); } rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); result += "查詢數(shù)據(jù)異常!" + e.getMessage(); } return result; } //按學(xué)院查詢 public static String QuerySQL_xueyuan(String xueyuan) { String result = ""; try { //10.0.2.2 android ip //本機(jī)V8 ip 192.168.223.1 171.120.157.130 Connection conn = getSQLConnection("192.168.223.1", "admin", "123123", "物流寄存"); String sql = "select * from 學(xué)生信息表 where 學(xué)院 = '"+ xueyuan +"';"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); //System.out.println(rs); while (rs.next()) {//學(xué)號、姓名、班級、性別、專業(yè)、學(xué)院 String s1 = rs.getString("學(xué)號").trim(); String s2 = rs.getString("姓名").trim(); String s3 = rs.getString("班級").trim(); String s4 = rs.getString("性別").trim(); String s5 = rs.getString("專業(yè)").trim(); String s6 = rs.getString("學(xué)院").trim(); result += s1 + " " + s2 + " " + s3 + " " + s4+ " " + s5+" "+s6+"\n"; // System.out.println(s1 + " - " + s2); } rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); result += "查詢數(shù)據(jù)異常!" + e.getMessage(); } return result; } public static void main(String[] args) { QuerySQL(); } }
2.操作程序test.java
說明:只要DBUtil.java
無錯誤,并且可以利用DBUtil.java
操作數(shù)據(jù)庫,則這個test.java可以直接復(fù)制
import java.util.*; public class test { public static void main(String[] args){ Scanner in = new Scanner(System.in); int flag = 0; String sno = "", name = " ", banji = " ", sex = " ", shuanye = " ", xueyuan = " "; System.out.println(" 學(xué)生信息管理程序 "); System.out.println(" 0.查看控制面板 "); System.out.println(" 1.查詢?nèi)w學(xué)生信息 "); System.out.println(" 2.插入學(xué)生信息 "); System.out.println(" 3.刪除學(xué)生 "); System.out.println(" 4.修改學(xué)生信息 "); System.out.println(" 5.查詢相關(guān)信息 "); System.out.println(" 6.退出 "); while(true) { System.out.println(" 輸入要繼續(xù)執(zhí)行的操作:"); flag = in.nextInt(); in.nextLine(); if(flag == 6) break; else { switch (flag) { case 0: System.out.println(" 0.查看控制面板 "); System.out.println(" 1.查詢?nèi)w學(xué)生信息 "); System.out.println(" 2.插入學(xué)生信息 "); System.out.println(" 3.刪除學(xué)生 "); System.out.println(" 4.修改學(xué)生信息 "); System.out.println(" 5.查詢相關(guān)信息 "); System.out.println(" 6.退出 "); break; case 1://查詢?nèi)? System.out.println("查詢?nèi)w學(xué)生信息:"); System.out.print(DBUtil.QuerySQL()); break; case 2://插入信息 System.out.println("請輸入要插入的學(xué)生的信息(以空格隔開):"); String str = in.nextLine(); String[] S = str.split(" "); sno = S[0]; name = S[1]; banji = S[2]; sex = S[3]; shuanye = S[4]; xueyuan = S[5]; System.out.print(DBUtil.insert_student(sno, name, banji, sex, shuanye, xueyuan)); break; case 3://刪除學(xué)生信息 System.out.println("請輸入要刪除的學(xué)生的學(xué)號:"); sno = in.nextLine(); System.out.print(DBUtil.delete_student(sno)); break; case 4://修改學(xué)生信息 System.out.println("請輸入要修改的學(xué)生的學(xué)號:"); sno = in.nextLine(); DBUtil.delete_student(sno); System.out.println("請輸入要修改的學(xué)生的信息以空格隔開(學(xué)號不可修改):"); String str2 = in.nextLine(); String[] S2 = str2.split(" "); name = S2[0]; banji = S2[1]; sex = S2[2]; shuanye = S2[3]; xueyuan = S2[4]; DBUtil.insert_student(sno, name, banji, sex, shuanye, xueyuan); System.out.println("修改之后的數(shù)據(jù):"); break; case 5://查詢相關(guān)信息 System.out.println(" 1.按學(xué)院查詢 "); System.out.println(" 2.按學(xué)號查詢 "); System.out.println(" 3.按性別查詢 "); int FLG = Integer.parseInt(in.nextLine()); //in.nextInt(); switch(FLG){ case 1 ://按學(xué)院查詢 System.out.println("要查詢的學(xué)院:"); String temp_xueyuan = in.nextLine(); System.out.print(DBUtil.QuerySQL_xueyuan(temp_xueyuan)); break; case 2 ://按學(xué)號查詢 System.out.println("要查詢學(xué)生的學(xué)號:"); String temp_sno = in.nextLine(); System.out.print(DBUtil.QuerySQL_sno(temp_sno)); break; case 3://按性別查詢 System.out.println("要查詢的性別:"); String temp_sex = in.nextLine(); System.out.print(DBUtil.QuerySQL_sex(temp_sex)); break; } break; }//switch }//else } } }
相關(guān)文章
Java程序圖形用戶界面設(shè)計(jì)之容器JFrame
圖形界面(簡稱GUI)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對于用戶來說在視覺上更易于接受,本篇精講Java語言中關(guān)于圖形用戶界面的基本容器JFrame2022-02-02Java8通過Function獲取字段名的方法(獲取實(shí)體類的字段名稱)
Java8通過Function獲取字段名。不用再硬編碼,效果類似于mybatis-plus的LambdaQueryWrapper,對Java8通過Function獲取字段名相關(guān)知識感興趣的朋友一起看看吧2021-09-09mybatis if傳入字符串?dāng)?shù)字踩坑記錄及解決
這篇文章主要介紹了mybatis if傳入字符串?dāng)?shù)字踩坑記錄及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02JAVA實(shí)現(xiàn)多線程的兩種方法實(shí)例分享
這篇文章介紹了JAVA實(shí)現(xiàn)多線程的兩種方法實(shí)例分享,有需要的朋友可以參考一下2013-08-08JAVA設(shè)計(jì)模式之調(diào)停者模式詳解
這篇文章主要介紹了JAVA設(shè)計(jì)模式之調(diào)停者模式詳解,調(diào)停者模式是對象的行為模式,調(diào)停者模式包裝了一系列對象相互作用的方式,使得這些對象不必相互明顯引用,從而使它們可以較松散地耦合,需要的朋友可以參考下2015-04-04淺談spring使用策略模式實(shí)現(xiàn)多種場景登錄方式
本文主要介紹了spring使用策略模式實(shí)現(xiàn)多種場景登錄方式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12SpringBoot項(xiàng)目部署到阿里云服務(wù)器的實(shí)現(xiàn)步驟
本文主要介紹了SpringBoot項(xiàng)目部署到阿里云服務(wù)器的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06