jdbc简单学生管理系统
这个是java连接mysql数据库的一个简单学生系统,通过jdbc连接数据库。
工具类
JDBCuntils.
package Student; import java.io.IOException;
import java.sql.*;
import java.util.Properties; //数据库的工具类
public class JDBCuntils { 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();
}
}
}
}
数据库配置文件(这个是连接你自己的数据库的信息,在包里创建就好)
db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db3
user=root
password=1767737316.
#<!-- \u914D\u7F6E\u521D\u59CB\u5316\u5927\u5C0F -->
initialSize=6
#<!-- \u914D\u7F6E\u521D\u59CB\u5316\u6700\u5927\u8FDE\u63A5\u6570 -->
maxActive=20
#<!-- \u914D\u7F6E\u521D\u59CB\u5316\u6700\u5C0F\u8FDE\u63A5\u6570 -->
minIdle=3
#<!-- \u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4,1\u5206\u949F\u5355\u4F4D\u6BEB\u79D2 -->
maxWait=60000
Student.java
package Student; import java.util.Date;
public class Student {
private int id;
private String name;
private int score;
public Student(int id, String name,int score) { this.id = id;
this.name = name;
this.score = score;
} public Student() { }
public String toString() {
return "Student{" +
"name='" + id + '\'' +
", age=" + name +
", sex='" + score + '\'' +
'}';
}
public int getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
} }
Studentmannger.java
package Student; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner; /**
* @author fanxf
* @since 2018/4/27 17:06
*/ public class Studentmannger { private static Connection conn = null;
private static PreparedStatement ps = null;
private static ResultSet rs = null; /**
* 添加学生数据
*
* @param student
* @return
* @throws SQLException
*/
public static int addStudent(Student student) {
conn = JDBCuntils.getConnection();
int result = 0;
try {
ps = conn.prepareStatement("INSERT INTO student (id,`name`,score) VALUES (?, ?, ?)");
ps.setInt(1, student.getId()); //设置第一个参数
ps.setString(2, student.getName()); //设置第二个参数
ps.setInt(3, student.getScore()); //设置第三个参数
result = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCuntils.release(null, ps, conn); //关闭连接
}
return result;
} public void add() {
Scanner scan = new Scanner(System.in);
System.out.println("请输入学生学号");
int id = scan.nextInt();
System.out.println("请输入学生姓名");
String name = scan.next();
System.out.println("请输入学生成绩");
int score = scan.nextInt();
Student s = new Student(id, name, score); int flag = addStudent(s);
if (flag > 0) {
System.out.println("添加成功");
} else {
System.out.println("添加失败");
}
} /**1
*
* 修改
*
* @param student
* @return
*/
public static int updateStudent(Student student) {
conn = JDBCuntils.getConnection();
int result = 0;
try {
ps = conn.prepareStatement("UPDATE student SET id = ?, `name` = ?, score = ? WHERE id = ?");
ps.setInt(1, student.getId()); //设置第一个参数
ps.setString(2, student.getName()); //设置第二个参数
ps.setInt(3, student.getScore()); //设置第三个参数
ps.setInt(4, student.getId());
result = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCuntils.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("请输入学生姓名");
scan.nextLine();
String name = scan.nextLine(); System.out.println("请输入学生成绩");
int score = scan.nextInt(); Student s = new Student(id, name, score );
int flag = updateStudent(s);
if (flag > 0) {
System.out.println("更新成功");
} else {
System.out.println("更新失败");
}
} /**
* 删除
*
* @param id
* @return
* @throws SQLException
*/ public static void select() throws SQLException {
Scanner scan = new Scanner(System.in);
conn = JDBCuntils.getConnection();
int n;
String sql = "select * from student where id=?";
PreparedStatement ps = conn.prepareStatement(sql);
System.out.println("请输入要查询的学号");
n = scan.nextInt();
ps.setInt(1, n);
ResultSet rs = ps.executeQuery();
//将sql语句传至数据库,返回的值为一个字符集用一个变量接收
while(rs.next()){ //next()获取里面的内容
System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getInt(3));
//getString(n)获取第n列的内容
//数据库中的列数是从1开始的
}
}
public static int deleteStudent(int id) {
conn = JDBCuntils.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 {
JDBCuntils.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) throws SQLException {
System.out.println("************ 欢迎进入学生管理系统 *************");
Studentmannger ms = new Studentmannger();
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:
ms.select();
break;
case 4:
ms.delete();
break;
default:
System.out.println("没有该操作选项,请重新来过!");
main(args);
break;
}
}
}
}
工程目录:
运行截图:


jdbc简单学生管理系统的更多相关文章
- Java写一个简单学生管理系统
其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来 ...
- 简单学生管理系统HTML前端页面
效果图: 实现代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...
- javaee三层架构案例--简单学生管理系统
背景 学了jdbc.jsp等需要串起来,不然会忘记 项目环境 win10 jdk11 mysql8.0.13 jar包 c3p0-0.9.5.2 commons-dbutils-1.7 jstl mc ...
- C++实现简单学生管理系统
在网上看到的一个C++的小项目,我自己码了一遍,然后记录下我的理解以及像我这种菜鸟在整个过程中产生的问题. 我将我知道的尽可能详细的写下来,如有错误请联系我哈,QQ:920209178. 原文地址:h ...
- C++ 实现简单命令行学生管理系统
C++ 实现简单命令行学生管理系统 预览: 编译环境是macOS.system("clear") 在windows下请换成 system("cls") #inc ...
- php实现简单的学生管理系统
php实现学生管理系统 一.效果 二.代码框架 functions文件夹里面是封装的mysqli的数据库操作函数和一个跳转的函数 student文件夹里面就是学生管理系统的主界面 applicatio ...
- java简单学生成绩管理系统
题目要求: 一. 数据结构要求:(5 分) 1.定义 ScoreInformation 类,其中包括七个私有变量(stunumber, name, mathematicsscore, englishi ...
- Java实现功能简单的学生管理系统(附带源代码)
这几天Java学了点新的知识,打算要用这些知识做一个比较简单的管理系统,实战一下子,代码中的功能简洁,可能不多,但是作为一个练手来了解一个项目是怎么样一点一点思考的还是不错的 一.代码中要实现的功能 ...
- JDBC学生管理系统--处理分页显示
分页的思想: 假设一共有104条数据,每页显示10条数据: select * from student limit 0,10; 页数是index,第index页,对应的sql语句是: select * ...
随机推荐
- 致敬mentohust,路由器使用Socket认证华科校园网
致敬mentohust,路由器使用Socket认证华科校园网 前言: 上一篇文章中,为了解决ESP32华科无线网认证的问题,我成功把网页认证机制用Python+Socket复现.但痛点依然存在,无线网 ...
- .Net Core 中的选项Options
.NetCore的配置选项建议结合在一起学习,不了解.NetCore 配置Configuration的同学可以看下我的上一篇文章 [.Net Core配置Configuration源码研究] 由代码开 ...
- noip模拟21
开题发现这场考过,定睛一看,发现是省选前最后一场,没改过呀--但是还是讲武德的赛时没提交 A. Median 神奇之处在于 \(1e7\) 个质数居然能线性筛出来~ 那么 \(S2\) 可以直接筛出来 ...
- GRE隧道协议
1. GRE协议简介 GRE(General Routing Encapsulation ,通用路由封装)是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的报文能够在另一网络层协议 ...
- python模块--glob, fnmatch
包/方法 返回值 参数 说明 glob Unix shell样式的路径扩展 .glob() list 匹配满足规则的所有路径(默认以 . 开头的文件不会匹配到, 可以用 .* 来匹配) pat ...
- .NET 6 RC1 正式发布
昨天晚上微软发布了.NET 6的两个RC版本中的第一个版本,该版本将于11月正式发布,作为在开源MIT协议下整合所有不同的.NET开发模组件的开源跨平台实现.这是一个从2014年开始,持续多年的,以改 ...
- Spirit带你彻底了解事件捕获和冒泡机制
Dom标准事件模型 在Dom标准事件模型中,事件是先进行捕获,达到目标阶段时,在进行冒泡的 捕获阶段==>目标阶段==>冒泡阶段 目标元素和非目标元素 在介绍事件捕获和事件冒泡前 我们先要 ...
- Django学习day07随堂笔记
今日考题 """ 今日考题 1.必知必会N条都有哪些,每个都是干啥使的 2.简述神奇的双下划线查询都有哪些方法,作用是什么 3.针对多对多外键字段的增删改查方法有哪些,各 ...
- PHP的Sodium加密扩展函数了解
这是本次加密扩展系列的最后一篇文章,也是我们要学习了解的最后一个 PHP 加密扩展.Sodium 出现的目的也是为了代替 Mcrypt 这个原来的加密扩展.在 PHP7.2 之后,Mcrypt 已经被 ...
- 【转】mysql实现随机获取几条数据的方法
sql语句有几种写法 1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要获取的数据条数: 2:SELECT *FROM `table` WHERE i ...