JAVA连接数据库课程设计
JAVA数据库课程设计图书馆管理系统

西安郵電大学数据库课程设计报告题目:图书管理系统院系名称:计算机学院专业名称:计算机科学与技术班级:计科1006学生姓名:郑波学号(8位):04101198指导教师:乔平安设计起止时间:2012年10月8日~2012年10月19日一问题的提出一、开发背景很多高校都拥有图书馆,图书馆可以为全校师生提供一个阅读,学习的空间。
近年来,随着生源不断增大,图书馆的规模也随之扩大,图书数量也相应地大量增加,有关图书馆各种信息成倍增加。
面对如此庞大的信息量,校领导决定使用一套合理,有效,规范,实用的图书馆管理系统,对校内图书资料进行统一,集中的管理。
本系统将会涉及到图书馆日常管理工作的基本常见细节,诸如新图书的入库登记,图书馆所有书籍的分类管理,图书的查询,图书的借阅、退还手续的登记,费旧图书的清理撤除等,本系统所要实现的这些功能基本上涵盖了图书馆的日常管理工作,基本能够满足校园图书馆的工作人员的管理需要。
在对本系统的具体开发过程当中,将采用Java语言进行开发,以Sql Server 实现后台数据库,本系统是完全基于图形化用户界面(GUI)的单机版本。
本系统的设计是在Windows7简体中文版操作系统环境下,使用Java中文版开发成功的。
数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统所使用的后台数据库是MS SQL2005数据库。
本系统选用的开发语言介绍如下:选择了美国SUN公司推出的Java开发工具。
Java是第一个全面支持面向对象程序设计的数据库语言工具。
Java的主要特点有:1、语言是简单的、小型的、结构中性的2、强大的数据库开发功能3、扩大了对SQL语言的支持4、是面向对象的、高性能的、多线程的5、是分布式的、面向网络6、具有平台无关性7、语言具有可移植性、是动态的二、需求分析图书馆管理系统是图书馆管理工作中补课缺少的部分,对于图书馆的管理者和使用者来说都非常重要,但长期以来,人们使用传统的手工方式或性能较低的图书馆管理系统管理图书馆的日常事务,操作流程比较繁琐,效率相当低。
学生管理系统JAVA课课程设计

学生管理系统JAVA课课程设计一、教学目标本课程的目标是让学生掌握学生管理系统的Java编程知识,能够运用Java语言实现一个简单的学生管理系统。
具体目标如下:1.知识目标:–理解Java语言的基本语法和数据结构。
–掌握Java中的控制结构和面向对象编程思想。
–了解Java中的文件操作和数据库连接。
2.技能目标:–能够使用Java编写简单的程序,实现学生的增删改查功能。
–能够使用Java连接数据库,实现对学生信息的持久化存储。
–能够使用Java的文件操作,读写学生数据。
3.情感态度价值观目标:–培养学生的编程兴趣,提高学生解决问题的能力。
–培养学生团队协作的精神,提高学生的沟通表达能力。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.Java语言基础:包括基本语法、数据类型、变量、运算符等。
2.控制结构:包括条件语句、循环语句等。
3.面向对象编程:包括类、对象、继承、多态等。
4.文件操作:包括文件的读写、文件管理等。
5.数据库连接:包括JDBC的概念、数据库的连接与操作等。
6.学生管理系统的设计与实现:包括系统需求分析、系统设计、功能实现等。
三、教学方法为了达到课程目标,本课程将采用以下几种教学方法:1.讲授法:用于讲解Java语言基础、控制结构、面向对象编程等理论知识。
2.案例分析法:通过分析实际案例,让学生理解并掌握文件操作和数据库连接的方法。
3.实验法:让学生动手编写代码,实现学生管理系统,提高学生的实际操作能力。
4.小组讨论法:分组让学生讨论问题,培养学生的团队协作和沟通能力。
四、教学资源为了支持课程的顺利进行,我们将准备以下教学资源:1.教材:《Java编程思想》等。
2.参考书:《Java核心技术》、《Java Web开发》等。
3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、网络环境、数据库服务器等。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。
javaJDBC教学设计

Java JDBC教学设计一、引言JDBC(Java Database Connectivity)是Java语言对数据库访问的一种标准接口。
它提供了一套方法和类,用于连接和操作各种关系型数据库。
本文将介绍如何设计一套完整的Java JDBC教学计划,帮助学生掌握JDBC的基本概念和使用方法。
二、教学目标1. 理解JDBC的基本原理和核心概念。
2. 掌握使用JDBC连接数据库的方法。
3. 学会执行SQL语句和处理数据库查询结果。
4. 实践使用JDBC进行增删改查操作。
5. 掌握事务处理和批量操作的使用方法。
三、教学内容1. JDBC基础知识1.1 JDBC概述:介绍JDBC的定义、特点和作用。
1.2 JDBC架构:介绍JDBC的体系结构和主要组件。
1.3 JDBC驱动类型:介绍JDBC的四种驱动类型及其特点。
1.4 JDBC连接过程:详细解释JDBC连接数据库的步骤和方法。
2. JDBC连接数据库2.1 加载JDBC驱动程序:介绍如何加载数据库驱动程序。
2.2 连接数据库:详细描述如何建立与数据库的连接。
2.3 关闭数据库连接:讲解如何正确关闭数据库连接。
3. 执行SQL语句3.1 创建Statement对象:介绍如何创建和使用Statement 对象。
3.2 执行SQL语句:示范如何执行各种类型的SQL语句(查询、插入、更新、删除)。
3.3 批量更新:讲解如何使用JDBC进行批量更新操作。
4. 处理查询结果4.1 ResultSet对象:介绍ResultSet接口的方法和使用。
4.2 遍历查询结果:演示如何遍历和处理查询结果。
4.3 关闭ResultSet和Statement对象:说明正确关闭ResultSet和Statement对象的方法。
5. 事务处理5.1 事务概述:介绍事务的定义、特点和使用场景。
5.2 事务处理方法:讲解如何使用JDBC进行事务处理。
5.3 事务回滚和提交:示范如何进行事务回滚和提交操作。
Java基础入门教案之JDBC

1、了解什么是JDBC。
2、掌握JDBC的常用API。
3、掌握JDBC的使用步骤。
二、进入重点知识的讲解
(1)什么是JDBC?
教师首先讲解JDBC的概念和作用,然后画图讲解JDBC访问数据库的方式(可参见教材图9-1)。
(2)JDBC常用API
教师按照教材9.2小节的内容,讲解实现JDBC过程中涉及到的每个接口以及每个接口的作用和常用方法。
(3)JDBC的编程步骤
在讲解完JDBC涉及到的接口及方法后,就进入JDBC编程过程的讲解,可以参考教材安装实现过程分步骤说明,对每一步的现第一个JDBC程序
根据前面介绍的JDBC编程步骤,为了实现JDBC编程,需要先搭建数据库环境、接着创建项目加入相关驱动Jar包,最后编写程序代码。完成后可以启动程序查看效果。
教学
过程
关键内容及内容提要
一、导入方法:案例导入法
第二十四课时
(什么是JDBC、JDBC常用API、JDBC的编程步骤、实现第一个JDBC程序)
一、创设情境,引入JDBC的概念
(1)回顾上节内容,引出JDBC
在上一节课中,我们使用GUI知识实现了一个QQ登录界面,系统中的信息是存储在集合中的。然而现实中的项目是不可能这样做的,通常这些数据都是保存在数据库中。Java语言中可以通过JDBC来实现与数据库的连接。本节课将对JDBC的相关知识进行详细讲解。
考核
评价与教学反思
学生学习较为认真,同时自己动手尝试了连接数据库,与他们目前学的数据库进行联动(课后完成),知识掌握程度明显较好,但依然存在部分同学对课堂内容不感兴趣。
2)带领学生明确本任务的任务目标以及实现思路。
3)通过实现思路讲解任务实现代码的编写并进行项目演示。
学生成绩在线管理系统数据库课程设计mysql+java

学生成绩在线管理系统数据库课程设计mysql+java以下是一个学生成绩在线管理系统的数据库设计示例,使用MySQL数据库和Java 编程语言:1. 学生表(students)-学生ID(student_id):主键,自增-学生姓名(student_name):varchar类型,最大长度为50-学生年龄(student_age):整数类型-学生性别(student_gender):varchar类型,最大长度为10-学生班级(student_class):varchar类型,最大长度为502. 课程表(courses)-课程ID(course_id):主键,自增-课程名称(course_name):varchar类型,最大长度为503. 成绩表(scores)-成绩ID(score_id):主键,自增-学生ID(student_id):外键,关联到学生表的学生ID-课程ID(course_id):外键,关联到课程表的课程ID-分数(score):浮点数类型通过以上表的设计,你可以实现以下功能:-添加学生信息-添加课程信息-添加学生成绩-查询学生信息-查询课程信息-查询学生的成绩-更新学生信息-更新课程信息-更新学生成绩-删除学生信息-删除课程信息-删除学生成绩在Java中,你可以使用JDBC(Java Database Connectivity)来连接MySQL数据库并执行SQL语句来实现对数据库的操作。
你需要配置数据库连接信息,并编写相应的Java代码来执行查询和更新操作。
这只是一个简单的数据库设计示例,你可以根据你的具体需求进行调整和扩展。
Java操作Sqlite数据库-jdbc连接

Java操作Sqlite数据库-jdbc连接Java操作Sqlite数据库步骤:1. 导⼊Sqlite jdbc2. 编写jdbc连接代码public class OpSqliteDB {private static final String Class_Name = "org.sqlite.JDBC";private static final String DB_URL = "jdbc:sqlite:F:\\xxxdatabase.db";public static void main(String args[]) {// load the sqlite-JDBC driver using the current class loaderConnection connection = null;try {connection = createConnection();func1(connection);System.out.println("Success!");} catch (SQLException e) {System.err.println(e.getMessage());} catch(Exception e) {e.printStackTrace();} finally{try {if (connection != null)connection.close();} catch (SQLException e) {// connection close failed.System.err.println(e);}}}// 创建Sqlite数据库连接public static Connection createConnection() throws SQLException, ClassNotFoundException {Class.forName(Class_Name);return DriverManager.getConnection(DB_URL);}public static void func1(Connection connection) throws SQLException {Statement statement = connection.createStatement();Statement statement1 = connection.createStatement();statement.setQueryTimeout(30); // set timeout to 30 sec.// 执⾏查询语句ResultSet rs = statement.executeQuery("select * from table_name1");while (rs.next()) {String col1 = rs.getString("col1_name");String col2 = rs.getString("col2_name");System.out.println("col1 = " + col1 + " col2 = " + col2);System.out.println(location);// 执⾏插⼊语句操作statement1.executeUpdate("insert into table_name2(col2) values('" + col2_value + "')");// 执⾏更新语句statement1.executeUpdate("update table_name2 set 字段名1=" + 字段值1 + " where 字段名2='" + 字段值2 + "'"); }}查询语句:select*from表名where条件⼦句group by分组字句having ... order by排序⼦句如:select*from personselect*from person order by id descselect name from person group by name having count(*)>1分页SQL与mysql类似,下⾯SQL语句获取5条记录,跳过前⾯3条记录select*from Account limit 5 offset 3或者select*from Account limit 3,5插⼊语句:insert into表名(字段列表) values(值列表)如:insert into person(name, age) values(‘传智’,3)更新语句:update表名set字段名=值where条件⼦句如:update person set name=‘传智‘ where id=10删除语句:delete from表名where条件⼦句如:delete from person where id=10。
《Java》实验指导13-JDBC数据库编程(Access版)

实验项目十三JDBC数据库编程一、实验目的及要求1、掌握创建ODBC数据源2、掌握创建一个Student表3、运用Type1(JDBC-ODBC桥)连接、访问数据库4、实现数据库的增删改查操作二、实验内容和要求1、在D盘建立sql文件夹,进入该文件夹建立名为stu.mdb的数据库,打开,设计表结构如下(参照P178表10-6),存盘,定表名为Students:打开表,可以添加2条记录如下:2、创建ODBC数据源开始-设置-控制面板-管理工具-数据源,选择“系统DSN”-“添加”,选第2项“Driver do Microsoft Access(*.Mdb)”(如下图):配置系统DNS(数据源):StudentSystem按照以下图例进行设置:数据源名,填StudentSystem,按“选择”,选d:\sql目录下的stu.mdb:再按“高级”按钮,登录名填sa,密码填sql,按“确定”。
记住数据源的名字System,表的名字Students,登录名sa,密码sql,编程会用到。
注意配置环境变量,Dos下加上 set path=C:\Program Files\Java\jdk1.6.0_20\bin3、运用Type1(JDBC-ODBC桥)连接、访问数据库//P179,操作1 创建一个类Student,与上面的表Student是对接:class Student{String No; //学号String Name; //姓名int Age; //年龄String Sex; //性别String Address; //住址String Email; //电子邮件String Phone; //联系电话//创建学生对象,封装数据//编写Student构造函数如下public Student(String No,String Name,int Age,String Sex,String Address,String Email,String Phone){this.No=No;=Name;this.Age=Age;this.Sex=Sex;this.Address=Address;this.Email=Email;this.Phone=Phone;}}编译情况如下:●运行结果●算法分析//P179,操作2 连接数据库:import java.sql.*; //导入包public class StudentSystem{Connection conn; //数据库连接对象Statement stm; //执行简单的SQL语句PreparedStatement pstm;//执行带有参数的SQL语句ResultSet rs; //保存查询结果StudentSystem()throws Exception{//加载驱动程序Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//连接数据库conn=DriverManager.getConnection("jdbc:odbc:StudentSystem","sa","sql"); }//操作3 :显示数据表的内容://查询并显示所有学生信息void selectAll()throws SQLException{stm=conn.createStatement();//创建Statement对象rs=stm.executeQuery("select * from Students");//执行SQL语句//判断是否有查询结果并显示while(rs.next()){printAll();System.out.println("------------------------------");}closeAll();//关闭Statement对象和ResultSet结果集//操作4 增:插入一条记录到数据表中://插入学生信息void insertStudent(Student s)throws SQLException{//创建带有参数的preparedStatement对象pstm=conn.prepareStatement("insert into Students values(?,?,?,?,?,?,?)"); //为参数赋值setValue(s);//执行SQL语句pstm.executeUpdate();//关闭preparedStatement对象pstm.close();}//操作5 删:删除满足条件的记录://删除指定学号的学生void deleteNo(String No)throws SQLException{pstm=conn.prepareStatement("delete from Students where StudentNo=?"); pstm.setString(1,No);pstm.executeUpdate();}//操作6 改:修改数据表的内容://修改指定学号的学生信息/* void updateStudent(Student s)throws SQLException{pstm=conn.prepareStatement("update Students setStudentNo=?,Name=?,Age=?,Sex=?,Address=?,Email=?,Phone=? where StudentNo=?"); setValue(s);pstm.setString(8,s.No);pstm.executeUpdate();pstm.close();}*///操作7 查:查找满足条件的记录://按照指定的学号查找特定学生信息void selectNo(String No)throws SQLException{stm=conn.createStatement();rs=stm.executeQuery("select * from Students where StudentNo='"+No+"'"); if(rs.next()){printAll();}closeAll();//操作8 综合处理://用来显示数据库中的数据private void printAll()throws SQLException{System.out.println("学号:"+rs.getString(1));System.out.println("姓名:"+rs.getString(2));System.out.println("年龄:"+rs.getInt(3));System.out.println("性别:"+rs.getString(4));System.out.println("地址:"+rs.getString(5));System.out.println("Email:"+rs.getString(6));System.out.println("电话:"+rs.getString(7));}//用来为参数设定值private void setValue(Student s)throws SQLException{pstm.setString(1,s.No); //pstm.setString("StudentNo",s.No);pstm.setString(2,); //pstm.setString("Name",);pstm.setInt(3,s.Age); //pstm.setInt("Age",s.Age);pstm.setString(4,s.Sex); //pstm.setString("Sex",s.Sex);pstm.setString(5,s.Address);//pstm.setString("Address",s.Address); pstm.setString(6,s.Email); //pstm.setString("Email",s.Email);pstm.setString(7,s.Phone); //pstm.setString("Phone",s.Phone);}//关闭结果集和Statement对象private void closeAll()throws SQLException{rs.close();stm.close();}//关闭连接void closeConn()throws SQLException{conn.close();}}将上述代码存入d:\j文件夹,名为StudentSystem.java,编译情况如下:●运行结果●算法分析4、实现数据库的增删改查操作//p181,主控程序class MainStudent{public static void main(String args[])throws Exception{//创建数据库操作类实例StudentSystem ss=new StudentSystem();//创建学生对象Student s1=new Student("20053051103","李三",22,"男","河北","168755955@","12345908945");Student s2=new Student("20053051105","王五",21,"男","湖北","wangwu@","12345908846");Student s3=new Student("20053051106","刘萍",22,"女","江西","zsan@","12345908965");Student s4=new Student("20053051107","黄志彬",21,"男","湖北","huang@","12345778849");//将学生信息写入数据库ss.insertStudent(s1);ss.insertStudent(s2);ss.insertStudent(s3);ss.insertStudent(s4);//查找指定学号学生//ss.selectNo("20053051101");//修改学生信息//ss.updateStudent(s);//删除指定学号学生信息//ss.deleteNo("20053051102");//显示所有学生信息ss.selectAll();//关闭数据库连接ss.closeConn();}}增加4条记录并显示:查找学号为"20053051106" 的学生:class MainStudent{public static void main(String args[])throws Exception{ //创建数据库操作类实例StudentSystem ss=new StudentSystem();//创建学生对象//查找指定学号学生ss.selectNo("20053051106");ss.closeConn();}}删除学号为"20053051106" 的学生:class MainStudent{public static void main(String args[])throws Exception{ //创建数据库操作类实例StudentSystem ss=new StudentSystem();//创建学生对象//删除指定学号学生信息ss.deleteNo("20053051106");//显示所有学生信息ss.selectAll();//关闭数据库连接ss.closeConn();}}观察,学号为"20053051106" 的学生即“刘萍”被删除了。
java连接数据库实验原理

java连接数据库实验原理Java连接数据库的实验原理主要是通过Java中的JDBC (Java Database Connectivity) 接口来实现的。
JDBC是Java提供的一组API,用于连接和操作数据库。
以下是其基本原理:1. 加载和注册JDBC驱动:首先,Java程序需要加载和注册对应数据库的JDBC驱动。
这些驱动通常以JAR文件的形式存在,可以通过()方法加载和注册。
2. 建立数据库连接:使用DriverManager类的getConnection()方法建立到数据库的连接。
需要提供数据库的URL、用户名和密码。
3. 创建Statement或PreparedStatement:一旦建立了数据库连接,就可以创建Statement或PreparedStatement对象来执行SQL语句。
PreparedStatement用于执行参数化的SQL语句,可以提高性能并防止SQL注入攻击。
4. 执行SQL语句:使用Statement或PreparedStatement对象的executeQuery()、executeUpdate()等方法执行SQL语句。
5. 处理结果集:对于查询语句(SELECT),executeQuery()方法返回一个ResultSet对象,可以从中获取查询结果。
对于更新语句(INSERT、UPDATE、DELETE),executeUpdate()方法返回一个整数,表示受影响的行数。
6. 关闭资源:完成数据库操作后,需要关闭ResultSet、Statement或PreparedStatement以及数据库连接。
以下是一个简单的Java连接MySQL数据库的示例代码:```javaimport ;public class JdbcExample {public static void main(String[] args) {String url = "jdbc:String username = "root";String password = "password";try {// 加载和注册JDBC驱动("");// 建立数据库连接Connection connection = (url, username, password);// 创建PreparedStatementString sql = "INSERT INTO mytable (name, age) VALUES (?, ?)"; PreparedStatement statement = (sql);(1, "Alice");(2, 30);// 执行SQL语句int rowsAffected = ();(rowsAffected + " row(s) affected");// 关闭资源();();} catch (Exception e) {();}}}```。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
****大学学生实验报告实验课程名称J2EE及JA V A程序设计开课实验室DS1501学院软件学院年级2012专业班1班学生姓名学号开课时间2013至2014学年第2学期总成绩教师签名软件学院制《J2EE及JA V A程序设计》实验报告开课实验室:DS15012014年6月22日学院软件学院年级、专业、班12级1班姓名成绩课程名称J2EE及JAV A程序设计实验项目名称实验6-8:图形界面编程、抽象类与接口、数据库。
指导教师教师评语教师签名:2014年月日一、实验目的实验六:基本掌握使用JAV A来完成基本的图形界面等调试与编程,实现理论课上讲述的内容PPT内容的验证。
实验七:掌握抽象类与接口的概念,验证代码,能写小程序。
实验八:掌握利用JAV A完成数据库课程中的基本数据记录操作。
二、实验内容实验六内容:调试,验证,课件ppt内容,课后布置的作业(实验报告内容中可不写)。
实验七内容:完成教材12章关于抽象类与接口方面的范例内容的代码验证、后面作业的代码设计(实验报告中可不写)。
实验八内容:(二选一,提交该部分实验报告内容)1)利用图形界面编程,实现C/S模式的数据库访问操作。
完成SQL SERVER或MYSQL数据库管理系统的安装,配置,JA V A数据库访问环境的配置;完成数据库表的建立,记录插入等;建立用户表,包含用户名、密码字段;利用JA V A实现图形界面,用户登录验证,进入软件运行后,针对某表记录的增、删、改、查操作。
2)完成JA V A WEB应用开发,实现B/S模式的数据库访问操作。
完成SQL SERVER或MYSQL数据库管理系统的安装,配置,JA V A数据库访问环境的配置,Tomcat服务器安装配置;完成数据库表的建立,记录插入等;建立用户表,包含用户名、密码字段;利用JA V A实现WEB应用,通过浏览器访问WEB进行用户登录验证,进入WEB应用运行后,针对某表记录的增、删、改、查操作。
三、使用仪器、材料JAVA SE JDK1.7.55TomcatMysql/Sql server四、实验过程原始记录(数据、图表、计算等):学生基本信息表班级信息表院系信息表学生综合信息视图进入主界面点击“更新”菜单中的“对全体操作”选项,然后点击“查询”按钮点击“更新”菜单中的“添加”选项查询发现新增信息已经插入至学生基本信息表中点击“查询”中的“按姓名查询”选项,可根据视图查询学生包括系主任、班主任在内的的综合信息同理,点击“查询”中的“按学号查询”选项,也可根据视图查询上述信息点击“更新”菜单中的“对全体操作”选项,在所得信息表对信息中进行修改,然后点击“修改”按钮,可对学生基本信息进行修改点击“更新”菜单中的“对全体操作”选项,然后点击“删除”按钮,可删除某学生基本信息同于重名学生的存在,“查询”菜单中的“按姓名查询”可能会出现多条结果点击“更新”菜单中的“按学号删除”选项,输入上述所查得的两个重名学生中其一个的学号,可将其删除连接数据库:import java.sql.*;//创建数据库连接类public class DBConnect{//静态方法提高数据库的连接效率public static Connection getConn()throws Exception{//加载JDBC驱动Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//以系统用户身份,连接数据库StudentManagerreturnDriverManager.getConnection("jdbc:odbc:StudentManager","sh","123"); }}登录:import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;//创建主界面类public class Login extends JFrame implements ActionListener{//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建内容面板JPanel contentPane;JLabel jLabel1=new JLabel("用户名:");JTextField jTextField1=new JTextField();JLabel jLabel2=new JLabel("密码:");JTextField jTextField2=new JPasswordField(20);JButton jButton1=new JButton("登录");JButton jButton2=new JButton("取消");//构造方法,创建对象时自动调用public Login(){try{//连接数据库con=DBConnect.getConn();st=con.createStatement();//关闭框架窗口时的默认事件方法setDefaultCloseOperation(EXIT_ON_CLOSE);//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//界面初始化方法private void jbInit()throws Exception{//创建内容面板和其布局contentPane=(JPanel)getContentPane(); contentPane.setLayout(null);//框架的大小和其标题setSize(new Dimension(360,270));setTitle("学生信息管理系统");contentPane.add(jLabel1);contentPane.add(jLabel2);contentPane.add(jButton1);contentPane.add(jButton2);contentPane.add(jTextField1);contentPane.add(jTextField2);jLabel1.setBounds(new Rectangle(27,9,81,32)); jLabel2.setBounds(new Rectangle(27,72,81,32)); jTextField1.setBounds(new Rectangle(81,9,222,32)); jTextField2.setBounds(new Rectangle(81,72,222,32)); jButton1.setBounds(new Rectangle(18,162,145,32)); jButton2.setBounds(new Rectangle(166,162,145,32));//添加事件监听器jButton1.addActionListener(this);jButton2.addActionListener(this);}//菜单事件的处理方法public void actionPerformed(ActionEvent e1){if(e1.getSource()==jButton1){//获取用户输入的用户名和密码String Uer=jTextField1.getText();String Pas=jTextField2.getText();try{ResultSet rs=st.executeQuery("select UName,UPass from Users where UName='"+Uer+"'");while(rs.next()){String i=rs.getString("UName");String p=rs.getString("UPass");if(i.equals(Uer)&&p.equals(Pas)){setVisible(false);MainFrame add=new MainFrame();//令主界面窗体居中Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();Dimension frameSize=add.getSize();if(frameSize.height>screenSize.height)frameSize.height=screenSize.height;if(frameSize.width>screenSize.width)frameSize.width=screenSize.width;add.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-f rameSize.height)/2);add.setVisible(true);break;}else{JOptionPane.showMessageDialog(this,"用户名或密码错误!");}}}catch(Exception ex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"登录失败!");}}else if(e1.getSource()==jButton2){System.exit(0);}}}主面板:import java.awt.*;import java.awt.event.*;import javax.swing.*;//创建主界面类public class MainFrame extends JFrame implements ActionListener {//创建内容面板JPanel contentPane;JMenuBar jMenuBar1=new JMenuBar();JMenu jMenuFile=new JMenu("文件");JMenuItem jMenuFileExit=new JMenuItem("退出");JMenu jMenu1=new JMenu("更新");JMenuItem jMenuItem1=new JMenuItem("添加学生信息"); JMenuItem jMenuItem2=new JMenuItem("按学号删除"); JMenuItem jMenuItem5=new JMenuItem("对全体操作");JMenu jMenu2=new JMenu("查询");JMenuItem jMenuItem3=new JMenuItem("按姓名查询"); JMenuItem jMenuItem4=new JMenuItem("按学号查询");JMenu jMenuHelp=new JMenu("帮助");JMenuItem jMenuHelpAbout=new JMenuItem("关于");JLabel jLabel1=new JLabel("欢迎使用学生信息管理系统");JLabel jLabel2=new JLabel("By:");//构造方法,创建对象时自动调用public MainFrame(){try{//关闭框架窗口时的默认事件方法setDefaultCloseOperation(EXIT_ON_CLOSE);//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//界面初始化方法private void jbInit()throws Exception{//创建内容面板和其布局contentPane=(JPanel)getContentPane();contentPane.setLayout(null);//框架的大小和其标题setSize(new Dimension(400,450));setTitle("学生信息管理系统");//添加事件监听器jMenuFileExit.addActionListener(this); jMenuHelpAbout.addActionListener(this);jMenuItem1.addActionListener(this);jMenuItem2.addActionListener(this);jMenuItem3.addActionListener(this);jMenuItem4.addActionListener(this);jMenuItem5.addActionListener(this);//添加菜单条setJMenuBar(jMenuBar1);//添加菜单组件到菜单条jMenuBar1.add(jMenuFile);jMenuBar1.add(jMenu1);jMenuBar1.add(jMenu2);jMenuBar1.add(jMenuFileExit);jMenuBar1.add(jMenuHelp);//添加菜单项组件到菜单组件jMenuFile.add(jMenuFileExit);jMenuHelp.add(jMenuHelpAbout);jMenu1.add(jMenuItem1);jMenu1.add(jMenuItem2);jMenu1.add(jMenuItem5);jMenu2.add(jMenuItem3);jMenu2.add(jMenuItem4);//添加标签到内容面板contentPane.add(jLabel1);contentPane.add(jLabel2);//设置标签组件的大小和字体jLabel1.setFont(new java.awt.Font("宋体",Font.BOLD,22)); jLabel1.setBounds(new Rectangle(45,135,279,55)); jLabel2.setFont(new java.awt.Font("宋体",Font.BOLD,16)); jLabel2.setBounds(new Rectangle(211,350,200,35));}//菜单事件的处理方法public void actionPerformed(ActionEvent actionEvent){//点击“文件”菜单下的“退出”菜单项if(actionEvent.getSource()==jMenuFileExit){System.exit(0);}//点击“更新”菜单下的“添加”菜单项if(actionEvent.getSource()==jMenuItem1){//创建添加学生面板对象AddStudentPanel add=new AddStudentPanel();//移除主界面上原有的内容this.remove(this.getContentPane());this.setContentPane(add);//令界面可见this.setVisible(true);}//点击“更新”菜单下的“按学号删除”菜单项if(actionEvent.getSource()==jMenuItem2){//创建删除学生面板对象DeleteStudentPanel delete=new DeleteStudentPanel();//移除主界面上原有的内容this.remove(this.getContentPane());this.setContentPane(delete);//令界面可见this.setVisible(true);}//点击“查询”菜单下的“按姓名查询”菜单项if(actionEvent.getSource()==jMenuItem3){//创建“按姓名查询”面板对象InquireOnNamePanel onName=new InquireOnNamePanel();//移除主界面上原有的内容this.remove(this.getContentPane());this.setContentPane(onName);//令界面可见this.setVisible(true);}//点击“查询”菜单下的“按学号查询”菜单项if(actionEvent.getSource()==jMenuItem4){//创建“按学号查询”面板对象InquireOnXHPanel onXH=new InquireOnXHPanel();//移除主界面上原有的内容this.remove(this.getContentPane());this.setContentPane(onXH);//令界面可见this.setVisible(true);}//点击“更新”菜单下的“对全体操作”菜单项if(actionEvent.getSource()==jMenuItem5){//创建“对全体进行操作”面板对象onAll onA=new onAll();//移除主界面上原有的内容this.remove(this.getContentPane());this.setContentPane(onA);//令界面可见this.setVisible(true);}}}添加:import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“添加学生面板”类public class AddStudentPanel extends JPanel implements ActionListener {//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel("学号");JLabel jLabel2=new JLabel("姓名");JLabel jLabel3=new JLabel("性别");JLabel jLabel4=new JLabel("出生日期");JLabel jLabel5=new JLabel("籍贯");JLabel jLabel6=new JLabel("注意:出生日期格式为YYYY/MM/DD");JLabel jLabel7=new JLabel("班号");JLabel jLabel8=new JLabel("系号");JTextField jTextField1=new JTextField();JTextField jTextField2=new JTextField();JTextField jTextField3=new JTextField();JTextField jTextField4=new JTextField();JTextField jTextField5=new JTextField();JTextField jTextField6=new JTextField();JRadioButton jRadioButton1=new JRadioButton("男"); JRadioButton jRadioButton2=new JRadioButton("女"); ButtonGroup buttonGroup1=new ButtonGroup();JButton jButton1=new JButton("存入数据库");//构造方法public AddStudentPanel(){try{//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//界面初始化方法private void jbInit()throws Exception{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setBounds(new Rectangle(21,17,64,24));jLabel2.setBounds(new Rectangle(21,51,53,22));jLabel3.setBounds(new Rectangle(21,86,61,27));jLabel4.setBounds(new Rectangle(21,122,59,25));jLabel5.setBounds(new Rectangle(21,188,54,24));jLabel6.setBounds(new Rectangle(102,153,219,27));jLabel7.setBounds(new Rectangle(21,225,53,22));jLabel8.setBounds(new Rectangle(21,273,53,22));jTextField1.setBounds(new Rectangle(102,10,200,30));jTextField2.setBounds(new Rectangle(102,49,200,30));jTextField3.setBounds(new Rectangle(102,117,200,30));jTextField4.setBounds(new Rectangle(102,183,200,30));jTextField5.setBounds(new Rectangle(102,222,200,30));jTextField6.setBounds(new Rectangle(102,270,200,30));jRadioButton1.setBounds(new Rectangle(102,83,65,30));jRadioButton2.setBounds(new Rectangle(190,85,85,30));jButton1.setBounds(new Rectangle(110,320,180,30));//设置单选按钮被选中jRadioButton1.setSelected(true);//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jTextField1);this.add(jLabel1);this.add(jLabel2);this.add(jTextField2);this.add(jRadioButton1);this.add(jRadioButton2);this.add(jLabel3);this.add(jLabel4);this.add(jTextField3);this.add(jLabel6);this.add(jTextField4);this.add(jLabel5);this.add(jTextField5);this.add(jLabel7);this.add(jTextField6);this.add(jLabel8);this.add(jButton1);buttonGroup1.add(jRadioButton1);buttonGroup1.add(jRadioButton2);}//点击按钮事件public void actionPerformed(ActionEvent e){//获取用户输入的信息String xuehao=jTextField1.getText();String xingming=jTextField2.getText();String xingbie="";if(jRadioButton1.isSelected())xingbie+="男";if(jRadioButton2.isSelected())xingbie+="女";String dateString=jTextField3.getText();String jiguan=jTextField4.getText();String banhao=jTextField5.getText();String xihao=jTextField6.getText();try{//设置日期格式st.execute("set dateformat ymd");//利用st对象执行SQL语句,进行插入操作st.executeUpdate("insert into StudentInfovalues('"+xuehao+"','"+xingming+"','"+xingbie+"','"+dateString+"','"+jigu an+"','"+xihao+"','"+banhao+"')");//清空文本行的内容jTextField1.setText("");jTextField2.setText("");jTextField3.setText("");jTextField4.setText("");jTextField5.setText("");jTextField6.setText("");//利用消息对话框提示删除操作成功JOptionPane.showMessageDialog(this,"插入成功!");}catch(Exception ex){//利用消息对话框提示不能插入,并显示异常的信息JOptionPane.showMessageDialog(this,"输入数据错误或者数据库不允许插入!");ex.printStackTrace();}}}按学号删除:import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“删除学生面板”类public class DeleteStudentPanel extends JPanel implements ActionListener {//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建组件对象JLabel jLabel1=new JLabel("请输入待删除的学生的学号:");JTextField jTextField1=new JTextField();JButton jButton1=new JButton("删除");//构造方法//构造方法public DeleteStudentPanel(){try{//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//界面初始化方法private void jbInit()throws Exception{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setFont(new java.awt.Font("宋体",Font.BOLD,14));jLabel1.setBounds(new Rectangle(70,20,200,30));jTextField1.setBounds(new Rectangle(70,80,207,41));jButton1.setBounds(new Rectangle(70,175,205,36));//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jButton1);}//点击按钮事件public void actionPerformed(ActionEvent e){//获取用户输入的学号String xuehao=jTextField1.getText();//要求用户确认删除if(JOptionPane.showConfirmDialog(this,"确认要删除吗?")==JOptionPane.YES_OPTION){try{//利用st对象执行SQL删除操作st.executeUpdate("delete from StudentInfo where学号='"+xuehao+"'");//利用消息对话框提示删除操作成功JOptionPane.showMessageDialog(this,"删除操作成功!");//清空输入学号的文本行jTextField1.setText("");}catch(Exception ex){//利用消息对话框提示不能删除JOptionPane.showMessageDialog(this,"删除操作执行失败!");}}}}对全体操作:import java.awt.*;import java.sql.*;import javax.swing.*;import javax.swing.table.DefaultTableModel;import java.awt.event.*;import java.util.*;//创建“对全体操作面板”类public class onAll extends JPanel implements ActionListener{//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;JButton jButton1=new JButton("查询");JButton jButton2=new JButton("删除");//JButton jButton3=new JButton("添加");JButton jButton4=new JButton("修改");JScrollPane jScrollPane1=new JScrollPane(); DefaultTableModel myTModel=new DefaultTableModel();final JTable table=new JTable(myTModel);//构造方法public onAll(){try{//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//面板初始化方法private void jbInit()throws Exception{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jButton2.setBounds(new Rectangle(29,333,150,30));jButton1.setBounds(new Rectangle(90,30,160,30));jButton4.setBounds(new Rectangle(196,333,150,30));jScrollPane1.setBounds(new Rectangle(29,90,315,230));//添加按钮动作事件jButton1.addActionListener(this);jButton2.addActionListener(this);jButton4.addActionListener(this);//添加组件到面板this.add(jScrollPane1);jScrollPane1.getViewport().add(table);this.add(jButton1);this.add(jButton2);this.add(jButton4);}//点击按钮事件public void actionPerformed(ActionEvent e){if(e.getSource()==jButton1){try{Vector<String>colNames=new Vector<String>(7);Vector<Vector<Object>>dataVector=new Vector<Vector<Object>>(5);colNames.add("学号");colNames.add("姓名");colNames.add("性别");colNames.add("出生日期");colNames.add("籍贯");colNames.add("系号");colNames.add("班级号");//利用st对象执行SQL语句,返回结果集对象ResultSet rs=st.executeQuery("select*from StudentInfo");//处理结果集:逐条显示结果集中的记录while(rs.next()){Vector<Object>ss=new Vector<Object>(5);ss.add(rs.getString("学号"));ss.add(rs.getString("姓名"));ss.add(rs.getString("性别"));ss.add(rs.getString("出生日期"));ss.add(rs.getString("籍贯"));ss.add(rs.getString("系号"));ss.add(rs.getString("班级号"));dataVector.add(ss);}myTModel.setDataVector(dataVector,colNames);}catch(Exception ex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"查询失败!");}table.setModel(myTModel);}else if(e.getSource()==jButton2){int row=table.getSelectedRow();if(row!=-1)//判断是否有选中的行{String s1=(String)table.getValueAt(row,0);try{//利用st对象执行SQL删除操作st.executeUpdate("delete from StudentInfo where学号='"+s1+"'");myTModel.removeRow(row);//删除指定行//利用消息对话框提示删除操作成功JOptionPane.showMessageDialog(this,"删除操作成功!");}catch(Exception ex){//利用消息对话框提示不能删除JOptionPane.showMessageDialog(this,"删除操作执行失败!");}}}else if(e.getSource()==jButton4){try{int row=table.getSelectedRow();//选择要修改的行if(row!=-1)//判断是否有选中的行{String s1=(String)table.getValueAt(row,0);String s2=(String)table.getValueAt(row,1);String s3=(String)table.getValueAt(row,2);String s4=(String)table.getValueAt(row,3);String s5=(String)table.getValueAt(row,4);String s6=(String)table.getValueAt(row,5);String s7=(String)table.getValueAt(row,6);//设置日期格式st.execute("set dateformat ymd");st.executeUpdate("update StudentInfo set学号='"+s1+"',姓名='"+s2+"',性别='"+s3+"',出生日期='"+s4+"',籍贯='"+s5+"',系号='"+s6+"',班级号='"+s7+"'where学号='"+s1+"'");JOptionPane.showMessageDialog(this,"修改成功!");}}catch(Exception ex){//利用消息对话框提示不能插入,并显示异常的信息JOptionPane.showMessageDialog(this,"输入数据错误或者数据库不允许修改!");ex.printStackTrace();}}}}按姓名查询:import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“添加学生面板”类public class InquireOnNamePanel extends JPanel implements ActionListener {//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel("请输入待查询的学生的姓名:");JTextField jTextField1=new JTextField();JButton jButton1=new JButton("按姓名查询");JScrollPane jScrollPane1=new JScrollPane();JTextArea jTextArea1=new JTextArea();//构造方法public InquireOnNamePanel(){try{//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//面板初始化方法private void jbInit()throws Exception{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setFont(new java.awt.Font("宋体",Font.BOLD,14));jLabel1.setBounds(new Rectangle(80,10,200,34));jTextField1.setBounds(new Rectangle(80,50,200,30));jButton1.setBounds(new Rectangle(100,90,160,30));jScrollPane1.setBounds(new Rectangle(29,125,308,130));//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jScrollPane1);jScrollPane1.getViewport().add(jTextArea1);this.add(jLabel1);this.add(jTextField1);this.add(jButton1);}//点击按钮事件public void actionPerformed(ActionEvent e){//获取用户输入的姓名String xingming=jTextField1.getText();//清空文本区原有的内容jTextArea1.setText("");//要求用户确认删除try{//利用st对象执行SQL语句,返回结果集对象ResultSet rs=st.executeQuery("select*from view1where姓名='"+xingming+"'");//处理结果集:逐条显示结果集中的记录while(rs.next()){jTextArea1.append(rs.getString("学号")+""+rs.getString("姓名")+" "+rs.getString("性别")+""+rs.getString("出生日期")+""+rs.getString("籍贯")+"\n");jTextArea1.append("系名:"+rs.getString("系名")+"系主任:"+rs.getString("系主任")+"\n");jTextArea1.append("班级:"+rs.getString("班级号")+"班主任:"+rs.getString("班主任")+"\n");//清空文本行的内容}jTextField1.setText("");}catch(Exception ex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"查询失败!");}}}按学号查询:import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“添加学生面板”类public class InquireOnXHPanel extends JPanel implements ActionListener {//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel("请输入待查询的学生的学号:");JTextField jTextField1=new JTextField();JButton jButton1=new JButton("按学号查询");JTextArea jTextArea1=new JTextArea();//构造方法public InquireOnXHPanel(){try{//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//面板初始化方法private void jbInit()throws Exception{//连接数据库con=DBConnect.getConn();st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setFont(new java.awt.Font("宋体",Font.BOLD,16));jLabel1.setBounds(new Rectangle(46,4,222,32));jTextField1.setBounds(new Rectangle(47,37,247,31));jButton1.setBounds(new Rectangle(47,86,247,30));jTextArea1.setBounds(new Rectangle(24,130,305,109));//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jTextArea1);this.add(jButton1);}//点击按钮事件public void actionPerformed(ActionEvent e){//获取用户输入的学号String xuehao=jTextField1.getText();//清空文本区原有的内容jTextArea1.setText("");try{//利用st对象执行SQL语句,返回结果集对象ResultSet rs=st.executeQuery("select*from view1where学号='"+xuehao+"'");if(rs.next()){jTextArea1.setText(rs.getString("学号")+""+rs.getString("姓名")+" "+rs.getString("性别")+""+rs.getString("出生日期")+""+rs.getString("籍贯")+"\n");jTextArea1.append("系名:"+rs.getString("系名")+"系主任:"+rs.getString("系主任")+"\n");jTextArea1.append("班级:"+rs.getString("班级号")+"班主任: "+rs.getString("班主任"));}else{JOptionPane.showMessageDialog(this,"没有这个学号!");}jTextField1.setText("");}catch(Exception ex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"查询失败!");}}}主程序:import java.awt.*;//创建主系统类class Main{public static void main(String[]args){//创建主界面//MainFrame frame=new MainFrame();Login log=new Login();//获取屏幕尺寸Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();//获取主界面的窗体尺寸Dimension frameSize=log.getSize();//令主界面窗体居中if(frameSize.height>screenSize.height)frameSize.height=screenSize.height;if(frameSize.width>screenSize.width)frameSize.width=screenSize.width;log.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-f rameSize.height)/2);//令主界面显示log.setVisible(true);}}。