大家好,今天我和大家分享一下基于数据库的简单学生管理系统,前面我也写过简单的学生管理系统,不过那些都是用数组或集合来实现的,它们保存的数据在程序运行结束后就会消失。而我今天和大家分享的基于数据库的简单学生管理系统它能在程序运行结束后依然还有保存的数据。
在讲之前,我们要了解怎么样让Java代码和数据库连接起来。Java代码和数据库是通过JDBC连接起来的,Java代码通过JDBC向数据库传SQL语句,数据库执行SQL语句通过JDBC向Java代码传执行结果。
前面我也写过 JDBC操作数据库的步骤。
1、加载数据库驱动
2、获取数据库的连接
3、获取用于执行sql命令的执行对象
4、执行
5、处理结果
6、回收资源
工具类MyJDBC:里面包含一些用 JDBC操作数据库的方法还有更新和查询的方法。注意我这里除了更新的方法外其他方法的异常都捕获了,因为像涉及到转钱这样的更新操作,需要用事务处理,我们这里把异常捕获了,可能影响事务的处理。
public class MyJDBC {
//加载驱动的类路径
private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
//数据库连接的URL地址
private static final String URL = "jdbc:mysql://127.0.0.1:3306/studemo?serverTimezone=UTC";
//连接数据库的用户名
private static final String USER = "root";
//连接数据库的密码
private static final String PASSWORD = "123456";
//加载驱动
static {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//获取连接
public static Connection getConn() {
Connection conn = null;
try {
conn = DriverManager.getConnection(URL, USER, PASSWORD);
return conn;
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return null;
}
//关闭资源
public static void close(ResultSet rs, Statement ps, Connection conn) {
try {
if (Objects.nonNull(rs)) {
rs.close();
}
if (Objects.nonNull(ps)) {
ps.close();
}
if (Objects.nonNull(conn)) {
conn.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
//更新操作的方法
public static int update(String sql, Object... params) throws SQLException {
PreparedStatement ps = null;
Connection conn = null;
int rs = -1;
try {
//获取连接
conn = getConn();
//获取用于执行sql命令的执行对象
ps = conn.prepareStatement(sql);
for (int i = 0; i < params