科研成果申报管理系统 毕业论文(定稿) - 图文 联系客服

发布时间 : 星期一 文章科研成果申报管理系统 毕业论文(定稿) - 图文更新完毕开始阅读c31d30503c1ec5da50e27018

东华理工大学毕业设计(论文) 系统的设计与实现

个temp的值

if(temp>0){ //判断temp的值,如果大于0,则添加成功 alert(\添加成功\history.back();}}

上述代码主要是完成信息的校验和存储工作。为了方便系统的管理,防止出现重名现象,在对数据库中添加数据时,对用户名进行了校验。如果用户名重复就提示此用户名已被占用,不能进行添加,否则就提示添加成功。

3.5 公共查询功能

公共信息查询模块是查询科研项目信息的公共窗口,用户无须进行身份验证就可查询科研项目的申报情况。在首页单击“信息查询”超链接,进入公共查询信息界面。公共查询页面左边模块进行查询内容的选择,右框显示查询内容的具体信息。

公共查询的页面设计如图3-15所示。

图3-15 科研项目信息查询

通过上图可以看出,系统是对查询内容的关键字进行查询,在查询内容处单击下拉框中选择要查询的内容,点击“查询”按钮,如果是课题查询,那么在右框中就会显示课题查询清单,如果是成果查询,则会显示成果查询清单。在关键字处采用SQL语句中的Like关键字进行模糊查询。关键代码如下:

Condb con=new Condb();

String keyID=request.getParameter(\读取查询的关键字ID String query=request.getParameter(\读取查询内容中的信息

23

东华理工大学毕业设计(论文) 系统的设计与实现

if(query.equals(\成果查询\ //判断查询内容是成果查询还是课题查询 String sql=\对关键字进行模糊查询

ResultSet rs=con.executeQuery(sql); int num=0;

while(rs.next()){ num++;

if(query.equals(\课题查询\

String sq=\ ResultSet rss=con.executeQuery(sq); int sum=0; while(rss.next()){ sum++;}}

con.close(); //关闭与数据库的连接

上述代码中,内置对象request调用方法getParameter()读取文本框中的信息,并把信息存放在不同的String对象中。然后调用方法equals()对存放查询内容的String对象query进行判断。在定义查询语句时,由于外人不知道科研项目的具体关键字,所以采用模糊查询语句,这样可以提高查询的准确率。在对数据库操作完成的时候,一定要关闭与数据库的连接,否则会给以后的工作带来很多麻烦。

3.6 JavaBean的设计

3.6.1 与数据库连接的JavaBean设计 public class Condb{

String Sd=\建立一个联接机 String Sc=\建立一个Odbc数据源 Connection con=null; //声明一个连接对象con ResultSet rs=null; //声明一个记录集rs public Condb(){ try{

Class.forName(Sd); //用类class的forname方法加载驱动程序类 }catch(java.lang.ClassNotFoundException e){ //当没有发现加载这个类

System.err.println(e);}}//执行系统的错误打印

的时候抛出异常

当设计了一个数据源后,这个数据源就是一个数据库。为了要连接到这个数据库,需要建立一个JDBC-ODBC桥接器。Class是包java.lang中的一个类,该类通过调用自己的静态方法forName就可以建立JDBC-ODBC桥接器。建立桥接器时可能会发生异

24

东华理工大学毕业设计(论文) 系统的设计与实现

常,所以建立桥接器时必须要抛出异常。要对数据库的记录进行操作,那么就要与数据源建立连接。使用包java.sql中的Connection类申明一个对象,然后使用类DriverManager调用自己的静态方法getConnection创建这个连接对象,这样就建立了与数据库之间的连接。

public ResultSet executeQuery(String sql){ //执行添加删除等操作

try{

con=DriverManager.getConnection(Sc); //类DriverManager调用静态方法//类Statement声明一个SQL语句对象,然后连接对象con调用

createStatement()方法创建这个SQL语句对象

Statementstmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITI

VE, ResultSet.CONCUR_UPDATABLE);

rs=stmt.executeQuery(sql); //SQL语句对象stmt调用executeQuery()方法}catch(SQLException er){ System.err.println(er.getMessage());} return rs;

int result=0; try{ con=DriverManager.getConnection(Sc); Statement stmt=con.createStatement(); result=stmt.executeUpdate(sql); }catch(SQLException ex){ System.err.println(ex.getMessage());} return result;

try{ if(con!=null) con.close(); }catch(Exception e){ System.out.print(e); }try{ if(rs!=null)

rs.close(); //关闭记录集

}catch(Exception e){ System.out.println(e);}}

25

getConnection()创建一个连接对象con

实现对数据库的操作

}public int executeUpdate(String sql){ //对数据库进行更新操作

}public void close(){ //关闭与数据库的连接

东华理工大学毕业设计(论文) 系统的设计与实现

在与数据库建立起连接后,就可以向数据库发送SQL语句。首先要使用Statement类申明一个SQL语句对象,然后通过创建的连接数据库对象con调用方法CreatStatement()创建这个SQL语句对象。有了SQL语句的对象后,这个对象就可以调用相应的方法实现对数据库的添加、删除等操作,并将查询的结果保存在一个ResultSet类声明的对象中。ResultSet.TYPE_SCROLL_INSENSITIVE常量允许记录指针向前或向后移动,且当Result对象变动为记录指针时,会影响记录指针的位置。ResultSet.CONCUR_UPDATABLE常量可以解释为Result对象能够修改数据库中的表。在对数据库进行操作后,必须关闭数据库的连接,不然服务器的资源会被耗尽。在科研成果申报管理系统中,关闭与数据库的连接的方法是con.close

3.6.2 处理字符串的JavaBean

使用JSP技术开发网站时,经常会碰到页面显示为乱码,这时就需要过滤一些特殊字符或者转换一些字符,这些功能通常都由一个独立的JavaBean来完成。关键代码如下:

public class Str {

public String toChinese(String str){ //转换中文字符串

if(str==null||str.length()<1){ str=\}else{ try {

str=(new String(str.getBytes(\//重新定义中

文的编码规则处理中文字符乱码

} catch (UnsupportedEncodingException e) { System.err.print(e.getMessage()); e.printStackTrace(); return str;}} return str;} if(str==null){ str=\}else{ try{

str=str.replace('\\'',(char)).trim();//调用方法trim() 删除空格 }catch(Exception e){ System.err.print(e.getMessage()); e.printStackTrace(); return str;}

26

public String dbEncode(String str){ //过滤空格与null值