详解JDBC实现学生管理系统
- 更新时间:2020-03-17 09:25:11
- 编辑:龙悦畅
本文实例为大家分享了JDBC实现学生管理系统的具体代码,供大家参考,具体内容如下
1、学生类
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 */ //数据库的工具类 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; } //释放的时候要从小到大释放 //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; /** * 添加学生数据 * * @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()); //设置第一个参数 ps.setString(2, student.getSex()); //设置第二个参数 ps.setString(3, student.getName()); //设置第三个参数 result = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { JdbcUtils.release(null, ps, conn); //关闭连接 } return result; } public void add() { Scanner scan = new Scanner(System.in); System.out.println("请输入学生年龄"); int age = scan.nextInt(); System.out.println("请输入学生性别"); String sex = scan.next(); System.out.println("请输入学生姓名"); 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()); //设置第一个参数 ps.setString(2, student.getSex()); //设置第二个参数 ps.setString(3, student.getName()); //设置第三个参数 ps.setInt(4, student.getId()); result = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { JdbcUtils.release(null, ps, conn); //关闭连接 } return result; } public void update() { Scanner scan = new Scanner(System.in); System.out.println("请输入学生id"); int id = scan.nextInt(); System.out.println("请输入学生年龄"); int age = scan.nextInt(); System.out.println("请输入学生性别"); String sex = scan.next(); System.out.println("请输入学生姓名"); 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); //设置第一个参数 result = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { JdbcUtils.release(null, ps, conn); //关闭连接 } return result; } public void delete() { Scanner scan = new Scanner(System.in); System.out.println("请输入学生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("************ 欢迎进入学生管理系统 *************"); ManageSystem ms = new ManageSystem(); boolean b = true; while (b) { System.out.println("你想进行以下哪项操作"); System.out.println("1、添加学生 2、更新学生数据 3、学生信息查询 4、删除学生 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("没有该操作选项,请重新来过!"); main(args); break; } } } }
4、properties数据库文件自己配置
数据库字段根据学生类建立!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。
相关教程
-
Spring Boot中使用JDBC Templet的方法教程
这篇文章主要给大家介绍了关于在Spring Boot中使用JDBC Templet的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起
发布时间:2019-06-03
-
C语言链表实现学生管理系统
这篇文章主要为大家详细介绍了C语言链表实现学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2021-04-07
-
Java从入门到精通(第4版)
本书从初学者角度,以通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识,所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会Java程序开发的精髓,欢迎下载
大小:292.7 MBJava编程电子书
-
RxJava 2.x 实战
《RxJava 2.x 实战》 首先讲解了函数式响应式编程的概念,包括Observables、Subject、Processor 等,以及RxJava的优点和用途。然后讲解了RxJava 中必不可少的操作符,包括创建操作符、变换操作符、过滤
大小:149 MBRxJava电子书
-
大型JavaScript应用最佳实践指南
大小:35 MBJavaScript电子书
-
Java函数式编程
这是一本关于函数式编程的书,由浅入深地介绍了函数式编程的思维方式,非常适合对Java有所了解的程序员,欢迎下载
大小:205.8 MBJava编程电子书
-
OSGi与Equinox:创建高度模块化的Java系统
阅读本书,首先你很快就会使用Eclipse bundle工具创建第一个基于OSGi的系统,进而转向复杂的产品开发。接下来,你将掌握一些用于创建具有特殊模块化、高效性和可维护性系统的最佳实践和技
大小:21.8 MBJava电子书
-
自己动手写Java虚拟机
Java虚拟机非常复杂,要想真正理解它的工作原理,最好的方式就是自己动手编写一个! 本书是继《深入理解Java虚拟机》之后的又一经典著作,它一方面遵循《Java虚拟机规范》,一方面又独辟
大小:4.27 MBJava电子书
-
Java Web轻量级开发面试教程
本书围绕软件公司对高级程序员的平均标准要求,构建了Java Web方面的高级程序员的进阶体系,以及在面试时如何高效地介绍自己项目经验的方法,适合想从事软件行业的在校学生、正在找工作
大小:49.5 MBJava电子书
-
Web前端开发精品课 JavaScript基础教程
《JavaScript基础教程》 共分为2大部分,第1部分是JavaScript基础知识,主要学习JavaScript基础概念如变量、运算符、表达式等。第二部分是JavaScript进阶知识,主要学习DOM、事件操作以及各种开发技
大小:9.7 MB前端电子书
-
Java经典实例
Java经典实例(第三版) 从lambda表达式、JavaFX 8,到网络编程和支持移动设备等方面,Java 8都有许多更新。包含了数百个经过实践验证的技巧,内容涵盖了广泛的Java主题,可帮助你快速进入编程
大小:167.8 MBJava电子书