学生信息管理系统-java-连接数据库.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
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.Date; import java.util.Scanner; public class Student { public static final String DRIVER="sun.jdbc.odbc.JdbcOdbcDriver"; public static final String URL="jdbc:odbc:student"; public static final String USERNAME="root";//用户名 public static final String PASSWORD="root";//密码 private static String name;//当前登录管理员的名字 private static int userid;//当前登录管理员的主键 //获得jdbc链接 public Connection connection(){ try { Class.forName(DRIVER); Connection con=DriverManager.getConnection(URL, USERNAME, PASSWORD); return con; } catch (Exception e) { e.printStackTrace(); } return null; } //管理员登陆 public boolean login() throws Exception{ Scanner sc = new Scanner(System.in); System.out.print("输入用户名:"); String username = sc.next(); System.out.print("输入密码:"); String password = sc.next(); //查找该用户 String sql = "select username,id from muser where username='" + username + "' and password='" + password + "'"; Connection connection = connection(); Statement statement = connection.createStatement(); ResultSet rs = statement.executeQuery(sql); if (rs.next()) { name = rs.getString(1); userid = rs.getInt(2); return true; } return false; } //添加学生 //添加学生 public void addstudent(){ System.out.print("请依次输入学号,姓名,年龄,地址(用逗号隔开):"); Scanner scanner = new Scanner(System.in); String[] str = scanner.next().split(","); /**********************begin 验证学号是否重复*************************/ String sql = "select * from student where 1=1 and stuno="+str[0]; try { Connection connection = connection(); Statement statement = connection.createStatement(); ResultSet rs = statement.executeQuery(sql); if(rs.next()){ System.out.println("该学号已经存在,请更换"); return; } } catch (SQLException ex) { } /**********************end 验证学号是否重复*************************/ String sql1 = "insert into student(stuno,stuname,stuage,stuaddress) values(?,?,?,?)"; Connection conn 《学生信息管理系统-Java连接数据库实现》 在Java编程领域,设计和开发一个学生信息管理系统是常见的实践项目,尤其在教育和技术培训环境中。本系统主要涉及数据库连接、用户登录验证以及数据插入操作,以实现对学生的学号、姓名、年龄和地址等信息的管理。下面我们将详细探讨这些关键知识点。 系统通过`java.sql`包中的`Connection`、`DriverManager`、`PreparedStatement`、`ResultSet`和`SQLException`等类来与数据库进行交互。`Connection`对象代表了到数据库的会话,而`DriverManager`则用于管理数据库驱动并建立连接。在Java中,使用`Class.forName()`方法加载数据库驱动,这里是`sun.jdbc.odbc.JdbcOdbcDriver`,这表明系统使用的是ODBC(Open Database Connectivity)作为数据库连接桥,它可以连接到多种数据库,包括MySQL、Oracle等。URL`jdbc:odbc:student`是ODBC数据源名称,表示连接到名为"student"的数据源。 用户登录功能由`login()`方法实现。用户输入的用户名和密码被存储在`username`和`password`变量中。通过SQL查询`SELECT username, id FROM muser WHERE username=? AND password=?`,系统检查输入的凭证是否与数据库中记录匹配。`Statement`对象用于执行SQL语句,`ResultSet`对象则用于接收查询结果。如果找到匹配的用户记录,将返回`true`,否则返回`false`。 添加学生信息的功能由`addstudent()`方法处理。用户需输入学号、姓名、年龄和地址,这些信息被分隔并存储在`str`数组中。在添加新记录前,系统先通过SQL查询`SELECT * FROM student WHERE 1=1 AND stuno=?`验证学号是否已存在于数据库中,防止重复录入。如果查询结果存在,提示用户更换学号,否则执行插入操作。这里使用了`PreparedStatement`,它可以防止SQL注入攻击,并提高代码的可读性和可维护性。`sql1`是预编译的SQL语句,`values(?,?,?,?)`中的问号是占位符,将被`str`数组的元素替换。 这个系统虽然简单,但它演示了Java数据库操作的基本流程,包括连接建立、SQL执行和异常处理,对于初学者来说具有很好的学习价值。然而,实际应用中,推荐使用更安全的JDBC驱动(如MySQL Connector/J),并考虑使用存储过程或参数化查询来提高效率和安全性。此外,密码通常应进行加密存储,以增强系统的安全性。系统的错误处理和日志记录也需进一步完善,以提供更好的用户体验和故障排查能力。
- 粉丝: 192
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 互联网医院2023年修订计划
- Crawlee - 一个用于 Python 的网页抓取和浏览器自动化库,用于构建可靠的爬虫 提取 AI、LLM、RAG 或 GPT 的数据 从网站下载 HTML、PDF、JPG、PNG
- BDD,Python 风格 .zip
- 个人原创STM32F1 BOOTLOADER,主控芯片为STM32F103VET6
- Alpaca 交易 API 的 Python 客户端.zip
- 基于Django与讯飞开放平台的ACGN文化交流平台源码
- 中国象棋(自行初步设计)
- 微信小程序实现找不同游戏
- 100_Numpy_exercises.ipynb
- 2023-04-06-项目笔记 - 第三百二十六阶段 - 4.4.2.324全局变量的作用域-324 -2025.11.23