JDBC實(shí)現(xiàn)學(xué)生管理系統(tǒng)
本文實(shí)例為大家分享了JDBC實(shí)現(xiàn)學(xué)生管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
1、學(xué)生類
package manage; import java.util.Date; /** * @author fanxf * @since 2018/4/27 17:01 */ public class Student { private int id; private int age; private String sex; private String name; private Date dateCreated; public int getId() { return id; } public void setId(int id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getDateCreated() { return dateCreated; } public void setDateCreated(Date dateCreated) { this.dateCreated = dateCreated; } public Student() { } public Student(int age, String sex, String name) { this.age = age; this.sex = sex; this.name = name; } public Student(int id, int age, String sex, String name) { this.id = id; this.age = age; this.sex = sex; this.name = name; } @Override public String toString() { return "Student{" + "id=" + id + ", age=" + age + ", sex='" + sex + '\'' + ", name='" + name + '\'' + ", dateCreated=" + dateCreated + '}'; } }
2、jdbc工具類
package manage; import java.io.IOException; import java.sql.*; import java.util.Properties; /** * @author fanxf * @since 2018/4/27 11:06 */ //數(shù)據(jù)庫(kù)的工具類 public class JdbcUtils { private static String driver = ""; private static String url = ""; private static String user = ""; private static String password = ""; static { Properties p = new Properties(); try { p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties")); } catch (IOException e) { e.printStackTrace(); } driver = p.getProperty("driver"); url = p.getProperty("url"); user = p.getProperty("user"); password = p.getProperty("password"); try { Class.forName(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection() { try { return DriverManager.getConnection(url, user, password); } catch (SQLException e) { e.printStackTrace(); } return null; } //釋放的時(shí)候要從小到大釋放 //Connection -> Statement --> Resultset public static void release(ResultSet rs, Statement stmt, Connection conn) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
3、代碼
package manage; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; /** * @author fanxf * @since 2018/4/27 17:06 */ public class ManageSystem { private static Connection conn = null; private static PreparedStatement ps = null; private static ResultSet rs = null; /** * 添加學(xué)生數(shù)據(jù) * * @param student * @return */ public static int addStudent(Student student) { conn = JdbcUtils.getConnection(); int result = 0; try { ps = conn.prepareStatement("INSERT INTO student (age, sex, `name`, dateCreated) VALUES (?, ?, ?, now())"); ps.setInt(1, student.getAge()); //設(shè)置第一個(gè)參數(shù) ps.setString(2, student.getSex()); //設(shè)置第二個(gè)參數(shù) ps.setString(3, student.getName()); //設(shè)置第三個(gè)參數(shù) result = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { JdbcUtils.release(null, ps, conn); //關(guān)閉連接 } return result; } public void add() { Scanner scan = new Scanner(System.in); System.out.println("請(qǐng)輸入學(xué)生年齡"); int age = scan.nextInt(); System.out.println("請(qǐng)輸入學(xué)生性別"); String sex = scan.next(); System.out.println("請(qǐng)輸入學(xué)生姓名"); String name = scan.next(); Student s = new Student(age, sex, name); int flag = addStudent(s); if (flag > 0) { System.out.println("添加成功"); } else { System.out.println("添加失敗"); } } /** * 修改 * * @param student * @return */ public static int updateStudent(Student student) { conn = JdbcUtils.getConnection(); int result = 0; try { ps = conn.prepareStatement("UPDATE student SET age = ?, sex = ?, `name` = ? WHERE id = ?"); ps.setInt(1, student.getAge()); //設(shè)置第一個(gè)參數(shù) ps.setString(2, student.getSex()); //設(shè)置第二個(gè)參數(shù) ps.setString(3, student.getName()); //設(shè)置第三個(gè)參數(shù) ps.setInt(4, student.getId()); result = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { JdbcUtils.release(null, ps, conn); //關(guān)閉連接 } return result; } public void update() { Scanner scan = new Scanner(System.in); System.out.println("請(qǐng)輸入學(xué)生id"); int id = scan.nextInt(); System.out.println("請(qǐng)輸入學(xué)生年齡"); int age = scan.nextInt(); System.out.println("請(qǐng)輸入學(xué)生性別"); String sex = scan.next(); System.out.println("請(qǐng)輸入學(xué)生姓名"); String name = scan.next(); Student s = new Student(id, age, sex, name); int flag = updateStudent(s); if (flag > 0) { System.out.println("更新成功"); } else { System.out.println("更新失敗"); } } /** * 刪除 * * @param id * @return */ public static int deleteStudent(int id) { conn = JdbcUtils.getConnection(); int result = 0; try { ps = conn.prepareStatement("DELETE FROM student WHERE id = ?"); ps.setInt(1, id); //設(shè)置第一個(gè)參數(shù) result = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { JdbcUtils.release(null, ps, conn); //關(guān)閉連接 } return result; } public void delete() { Scanner scan = new Scanner(System.in); System.out.println("請(qǐng)輸入學(xué)生id"); int id = scan.nextInt(); int flag = deleteStudent(id); if (flag > 0) { System.out.println("刪除成功"); } else { System.out.println("刪除失敗"); } } public static void main(String[] args) { System.out.println("************ 歡迎進(jìn)入學(xué)生管理系統(tǒng) *************"); ManageSystem ms = new ManageSystem(); boolean b = true; while (b) { System.out.println("你想進(jìn)行以下哪項(xiàng)操作"); System.out.println("1、添加學(xué)生 2、更新學(xué)生數(shù)據(jù) 3、學(xué)生信息查詢 4、刪除學(xué)生 0、退出"); Scanner scan = new Scanner(System.in); int i = scan.nextInt(); switch (i) { case 1: ms.add(); break; case 2: ms.update(); break; case 3: System.out.println(); break; case 4: ms.delete(); break; default: System.out.println("沒(méi)有該操作選項(xiàng),請(qǐng)重新來(lái)過(guò)!"); main(args); break; } } } }
4、properties數(shù)據(jù)庫(kù)文件自己配置
數(shù)據(jù)庫(kù)字段根據(jù)學(xué)生類建立!
更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開(kāi)發(fā)》。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JAVAWEB實(shí)現(xiàn)簡(jiǎn)單的商城項(xiàng)目(一)實(shí)例代碼解析
本文給大家分享一段實(shí)例代碼給大家介紹JAVAWEB實(shí)現(xiàn)簡(jiǎn)單的商城項(xiàng)目(一),非常具有參考價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-02-02SpringBoot實(shí)現(xiàn)全局異常處理方法總結(jié)
在項(xiàng)目開(kāi)發(fā)中出現(xiàn)異常時(shí)很平常不過(guò)的事情,我們處理異常也有很多種方式。本文將詳細(xì)為大家講解SpringBoot實(shí)現(xiàn)全局異常處理幾種方法,感興趣的可以學(xué)習(xí)一下2022-03-03IDEA中啟動(dòng)多個(gè)SpringBoot服務(wù)的實(shí)現(xiàn)示例
本文主要介紹了IDEA中啟動(dòng)多個(gè)SpringBoot服務(wù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08Docker?快速部署Springboot項(xiàng)目超詳細(xì)最新版
這篇文章主要介紹了Docker?快速部署Springboot項(xiàng)目超詳細(xì)最新版的相關(guān)資料,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04Java實(shí)現(xiàn)AWT四大事件的詳細(xì)過(guò)程
AWT的事件處理是一種委派式事件處理方式:普通組件(事件源)將整個(gè)事件處理委托給特定的對(duì)象(事件監(jiān)聽(tīng)器);當(dāng)該事件源發(fā)生指定的事件時(shí),就通知所委托的事件監(jiān)聽(tīng)器,由事件監(jiān)聽(tīng)器來(lái)處理這個(gè)事件2022-04-04spring cloud中微服務(wù)之間的調(diào)用以及eureka的自我保護(hù)機(jī)制詳解
這篇文章主要介紹了spring cloud中微服務(wù)之間的調(diào)用以及eureka的自我保護(hù)機(jī)制詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Springboot?手動(dòng)分頁(yè)查詢分批批量插入數(shù)據(jù)的實(shí)現(xiàn)流程
這篇文章主要介紹了Springboot?手動(dòng)分頁(yè)查詢分批批量插入數(shù)據(jù)的實(shí)現(xiàn)流程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07