学生信息管理系统-java-连接数据库(1).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开发的用于管理学生数据的应用程序。系统主要功能包括与数据库的连接、管理员的登录验证以及学生信息的添加。这里主要涉及的知识点有: 1. **Java数据库连接(JDBC)**: - `java.sql.Connection` 接口:代表到数据库的连接,通过该接口可以执行SQL语句。 - `java.sql.DriverManager` 类:负责注册和获取数据库驱动,以及建立到数据库的连接。 - `java.sql.Statement` 和 `PreparedStatement` 接口:`Statement` 用于执行静态SQL语句,而 `PreparedStatement` 提供预编译的SQL语句,能防止SQL注入攻击。 2. **数据库连接配置**: - `DRIVER`、`URL`、`USERNAME` 和 `PASSWORD` 是连接数据库所需的参数,其中 `DRIVER` 是数据库驱动类名,`URL` 是数据源的JDBC URL,`USERNAME` 和 `PASSWORD` 是数据库的用户名和密码。 3. **数据库操作**: - `login()` 方法实现了管理员的登录验证,通过输入的用户名和密码查询 `muser` 表中的数据,如果找到匹配的记录,则返回 `true`。 - `connection()` 方法用于获取数据库连接,通过 `Class.forName()` 加载数据库驱动,然后调用 `DriverManager.getConnection()` 连接到数据库。 4. **SQL语句的使用**: - `login()` 方法中的SQL查询语句:`SELECT username, id FROM muser WHERE username=? AND password=?`,用于查找指定的用户名和密码。 - `addstudent()` 方法中,首先检查学号是否已存在,SQL查询语句为:`SELECT * FROM student WHERE 1=1 AND stuno=?`,如果存在则提示用户更换学号。然后,使用 `PreparedStatement` 插入新学生信息,SQL插入语句:`INSERT INTO student(stuno, stuname, stuage, stuaddress) VALUES(?, ?, ?, ?)`,占位符表示动态参数。 5. **异常处理**: - 在数据库操作中,通常会捕获 `SQLException` 异常,以便处理可能出现的数据库错误。 6. **用户输入处理**: - 使用 `Scanner` 类从控制台获取用户输入,例如在登录和添加学生时获取用户名、密码和学生信息。 7. **数据验证**: - 在添加学生时,有一个注释部分标记为“验证学号是否重复”的代码段,它检查新学号是否已经在数据库中存在,确保数据的唯一性。 这个简单的学生信息管理系统展示了如何使用Java与数据库进行交互,处理用户输入,并进行基本的数据验证。然而,实际应用中可能还需要考虑更多方面,如安全性(防止SQL注入)、事务管理、异常处理策略、数据库设计优化等。



























- 粉丝: 198
- 资源: 3万+





我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于Matlab的Yalmip+Cplex两阶段鲁棒微电网规划:包含投资与运行成本的储能与微型燃气轮机双层场景优化方法.pdf
- 基于主从博弈理论的共享储能与电热综合需求响应微网优化运行研究.pdf
- 基于多目标灰狼算法的冷热电三联供微网优化调度:MATLAB代码实现.pdf
- 基于多目标粒子群算法的冷热电联供型综合能源系统运行优化.pdf
- 麻雀搜索算法(SSA)复现:'精英反向学习策略初始化+改进发现者、跟随者更新策略+T分布扰动策略'下的ITSSA实践——含23个基准测试函数与SSA对比的完整实现.pdf
- srv6基本知识 (分支)
- 半桥闭环LLC谐振变换器仿真:软启动策略、PI控制与柔化给定信号的三种波形对比图(50一类).pdf
- 采用Matlab结合YALMIP的配电网重构程序:以IEEE33节点为例,优化网损与负荷损失.pdf
- 风光不确定性场景生成与削减代码:基于Weibull分布和Beta分布的时序蒙托卡罗模拟及启发式同步回代削减方法.pdf
- 基于粒子群算法的储能优化配置及其成本模型最小化求解.pdf
- 基于WebGIS的全国公司分布统计查询系统:OpenLayers与GIS初学者的实践指南.pdf
- 模糊PID控制slx文件:模块齐全,易用性强,适合新手学习.pdf
- 西门子气力输送系统程序:SMART200PLC与昆仑通泰触摸屏的物料控制程序.pdf
- 永磁同步电机的5次7次电流谐波注入补偿Simulink模型仿真.pdf
- MATLAB GUI平台下的多算法雷达一维恒虚警检测CFAR可视化界面.pdf
- 全套恒压供水一拖三程序图纸 '采用西门子SMART及昆仑通态技术' 程序详解.pdf


