学生信息管理系统(4)

1970-01-01 08:00

《数据库系统概论》课程设计

------学生信息管理系统

2.3系统查询

系统查询包括基本信息、成绩明细、成绩汇总三大部分 2.4系统管理

系统管理包括用户维护、退出系统两大部分

3.系统功能结构图

- 16 -

小组成员:孙义 姚哲 张坷

《数据库系统概论》课程设计

------学生信息管理系统

第五章 系统实现及测试

1.系统实现关键代码

1.1连接数据库的公共类CommonaJdbc.java

数据库的连接操作是系统中最重要的一步,系统运行首先要进行数据库的连接操作,如果连接失败,则程序无法运行。在包util下建立类CommonaJdbc.java文件,导入jdbc包文件,定义一个静态类型的类变量connection用来建立数据库的连接,这样在其他类中就可以直接访问到这个变量,定义私有方法getCon()为实例的变量赋值,代码如下:

package appstu.util;//导入jdbc所需要的包 import java.sql.Connection; import java.sql.DriverManager; public class CommonaJdbc {

public static Connection conection = null; public CommonaJdbc(){ getCon(); }

private Connection getCon(){ try{

Class.forName(\ conection = DriverManager.getConnection

(\ //

conection

=

DriverManager.getConnection(\ame=DB_Student \

System.out.println(\数据库操作成功,祝贺你\

}catch(java.lang.ClassNotFoundException classnotfound){ classnotfound.printStackTrace(); }catch(java.sql.SQLException sql){

new appstu.view.JF_view_error(sql.getMessage()); sql.printStackTrace(); }

return conection; } }

1.2操作数据库的公共类JdbcAdapter.java

(1)在util包下建立公共类JdbcAdapter.java,该类封装了对所有的数据表的添加修改删除操作,前台业务中的对应功能是通过该类来完成的,它的设计思想是,通过上面的设计各种实体对象作为参数,进而执行类中的相应方法。为了确保数据库操作的准确性,需定义一个私有的类方法vaildateID()来完成数据的验证功能,这个方法首先通过数据表的生成表的添加语句。代码如下:

- 17 -

小组成员:孙义 姚哲 张坷

《数据库系统概论》课程设计

------学生信息管理系统

private boolean validateID(String id,String tname,String idvalue){ String sqlStr = null;

sqlStr = \ + id + \ System.out.println(sqlStr); try{

con = CommonaJdbc.conection;

pstmt = con.prepareStatement(sqlStr); java.sql.ResultSet rs = null; rs = pstmt.executeQuery(); if (rs.next()) {

if (rs.getInt(1) > 0) return true; }

}catch(java.sql.SQLException sql){

new appstu.view.JF_view_error(\执行的SQL语句为:\\n\错误信息为:\ sql.printStackTrace(); return false; }

return false;

}

(2)定义一个私有类方法AdapterObject()用来执行数据表的所有操作,方法参数为生成的sql语句。代码如下:

private boolean AdapterObject(String sqlState){ boolean flag = false;

System.out.println(\执行的语句为:\ con = CommonaJdbc.conection; try{

con = CommonaJdbc.conection;

pstmt = con.prepareStatement(sqlState); pstmt.execute(); flag = true;

JOptionPane.showMessageDialog(null,infoStr + \数据成功!!!\系统提示\ }catch(java.sql.SQLException sql){

appstu.view.JF_view_error error = new JF_view_error(\执行的SQL语句为:\\n\+ sqlState + \错误信息为:\ flag = false;

sql.printStackTrace(); }

return flag;

}

- 18 -

小组成员:孙义 姚哲 张坷

《数据库系统概论》课程设计

------学生信息管理系统

(3)定义了一个公共方法InsertOrUpdate_Obj_grade_sub,用来执行学生成绩的存盘操作。这个方法的参数为学生成绩对象Obj_grade_sub数组变量,定义一个String类型变量aqlStr,然后在循环体中调用stmt的addBatch()方法,将sqlStr变量放入到batch中,最后执行stmt的executeBatch()方法。源代码如下:

public boolean InsertOrUpdateObject(Obj_gradeinfo objgradeinfo){

String sqlStatement = null;

if (validateID(\ sqlStatement = \ +

objgradeinfo.getGradeID()

+

\

='\

+

objgradeinfo.getGradeName()

+ \\

infoStr = \更新年级\ }else{

sqlStatement = \ + objgradeinfo.getGradeName() + \ infoStr = \添加年级\ }

System.out.println(sqlStatement); return AdapterObject(sqlStatement);

}

objgradeinfo.getGradeID()

+

\

+

1.3检索数据的公共类RetrieveObject.java

数据的检索功能在整个系统中占有重要的位置,系统中的所有查询都是通过该公共类实现的,该公共类通过传递的查询语句调用相应的类方法,查询满足条件的数据或数据集合。我们在这个公共类中定义了三种不同的方法来满足系统查询的需要:

(1)定义一个类的公共方法getObjectRow(),用来检索一条满足条件的数据,该方法返回值类型为Vector,其代码如下:

public Vector getObjectRow(String sqlStr){ Vector vdata = new Vector(); connection = CommonaJdbc.conection; try{

rs = connection.prepareStatement(sqlStr).executeQuery(); rsmd = rs.getMetaData(); while(rs.next()){

for ( int i = 1 ; i <= rsmd.getColumnCount() ; i ++){ vdata.addElement(rs.getObject(i)); } }

}catch(java.sql.SQLException sql){ sql.printStackTrace(); return null; }

- 19 -

小组成员:孙义 姚哲 张坷

《数据库系统概论》课程设计

------学生信息管理系统

return vdata;}}

(2)定义一个类的公共方法getTableCollection(),用来检索满足条件的数据集合,该方法返回值类型为Collection,代码如下: public Collection getTableCollection(String sqlStr){

System.out.println(\执行的集合查询为 :\ Collection collection = new Vector(); connection = CommonaJdbc.conection; try{

rs = connection.prepareStatement(sqlStr).executeQuery(); rsmd = rs.getMetaData(); while(rs.next()){

Vector vdata = new Vector();

for ( int i = 1 ; i <= rsmd.getColumnCount() ; i ++){ vdata.addElement(rs.getObject(i)); }

collection.add(vdata); }

}catch(java.sql.SQLException sql){

new appstu.view.JF_view_error(\执行的SQL语句为:\\n\错误信息为:\ sql.printStackTrace(); return null; }

return collection;

}

(3)定义类方法getTableModel()用来生产一个表格数据模型,该方法返回类型为DefaultTableModle,该方法中的一个数组参数name用来生成表模型中的列名,方法getTableModel()的详细代码如下:

public DefaultTableModel getTableModel(String[] name,String sqlStr){ Vector vname = new Vector();

for (int i = 0 ; i < name.length ; i++){ vname.addElement(name[i]); }

DefaultTableModel tableModel = new DefaultTableModel(vname,0); connection = CommonaJdbc.conection; try{

rs = connection.prepareStatement(sqlStr).executeQuery(); rsmd = rs.getMetaData(); while(rs.next()){

Vector vdata = new Vector();

for ( int i = 1 ; i <= rsmd.getColumnCount() ; i ++){ vdata.addElement(rs.getObject(i));} tableModel.addRow(vdata); }

- 20 -

小组成员:孙义 姚哲 张坷


学生信息管理系统(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:移动值班经理工作总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: