我的数据库课程设计

 目录

摘要…………………………………………………………………………2

一、  系统分析……………………………………………………………………2

()传统系统分析…………………………………………………………2

()需求分析………………………………………………………………3

(1)学生管理…………………………………………………………3

(2)学生选课管理……………………………………………………3

()数据流图………………………………………………………………3

二、系统设计……………………………………………………………………4

()数据库设计……………………………………………………………4

(1)概念模型设计……………………………………………………4

(2)关系模式设计……………………………………………………4

(3)数据库的物理设计………………………………………………5

()前台程序设计…………………………………………………………5

(1)总体设计用例图…………………………………………………6

(2)部分运行实例图…………………………………………………7

三、系统实施……………………………………………………………………10

(1)数据库的建立…………………………………………………10

(2)显示页面程序源代码实例……………………………………11

  参考文献…………………………………………………………………………32

 

 

 

 

学生选课管理系统

学生选课系统是一个学校学生管理中不可缺少的一部分,对于学校的决策者和管理者来说都至关重要,所以系统应该为用户提供充分的信息管理和方便的查询手段。但一直以来,人们使用人工的方式管理文件档案,这种管理方式存在着许多缺点:效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。

本系统是采用jsp作为前台显示界面,Microsoft SQL Server 2000作为后台数据库平台,hibernate作为关系与对象模式的连接桥梁的基于B/S模式的学生选课系统。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。

本系统使用的Microsoft SQL Server2000作为后台的数据管理系统,而在前台使用J2EE组件。在这个组件中把所有和数据库有关的操作都封装了起来,提供了高效率的、海量数据的数据库操作方法,进一步提高了应用程序的性能。

本系统的功能操作针对不同用户角色分权限进行管理。

系统对学生角色提供的主要功能如下:个人信息管理(学号、姓名、性别、年龄、专业等)、选课管理。

本系统对管理员角色提供以下功能的操作:查看所有学生信息和课程的信息。

一、         系统分析

(一)传统系统分析

  经过认真分析传统学生选课管理工作流程,可以发现管理模式存在如下问题:

1、由于信息比较多,人工操作加大了出错的几率,任何一个中间环节操作错误就会造成下游环节的不便。

2、工作效率低下,工作量很大。

3、对学生及选课信息的反复录入,造成大量的数据冗余及资源的浪费。

4、不利于信息的查询及错误的修改。

5、学生信息安全系数不高,容易出现信息的缺失。

(二)需求分析

学生选课管理的基本内容是:

1.学生信息管理 可进行学生信息的增加,学生信息的查询,学生信息修改和删除

(1) 学生信息的增加  对新生基本信息进行登记,包括学号、姓名、专业等信息。

(2) 学生信息的查询。管理员查询所有学生的基本信息

(3) 学生信息的修改。对学生信息可进行修改,学号不可以修改

(4) 学生信息的删除。管理员可以从学生列表进行删除

2. 学生选课信息管理

学生可以从课程列表中选择课程,删除已选课程

(三)数据流图

 通过教师发布课程,学生增加选课

 

二、         系统设计

(一)   数据库设计

在细分析和系统总体设计的基础上,我们可以对整个学生选课管理系统进行详细设计。

1)概念模型设计

最常用的表示概念性数据模型的方法是实体-联系方法。这种方法用E-R图描述现实世界中的实体。而不涉及这些实体在系统中的实现方法,该方法又称为E-R模型。

2)关系描述的设计

根据以上各实体图和学生成绩管理的E-R图,经过转化,可以导出各个关系。

管理员信息(用户名,密码)

学生(学号,学生姓名,密码,性别,年龄,专业)

课程(课程编号,课程名,学分)

学生选课(学号,课程编号,成绩)

得出以上关系后,根据关系数据库的理论要求,需要对所有关系进行关系规范化,至少要求各个关系达到第三范式的要求。按照第三范式的要求对比以上各个关系,在所有关系中都不存在非主属性对关键字的部分依赖,又满足第三范式。

3)数据库的物理设计

关系图

根据关系描述及其他数据库的逻辑设计可得到数据库关系图,如下

 

 
 

(二)   程序设计

前台显示界面采用jsp设计,数据库连接采用hibernate,总体采用struts2框架,java作为后台语言。

1)总体设计用例图

接上图

2)部分运行示例图

1、登陆界面,管理员和学生都可以输入进行登录,登陆界面如图1、图2

1

(一)          2

2、管理员(admin)登录成功后显示其他管理员的信息,可进行管理员的删除添加,如图3

3

3、点击“删除即可删除管理员信息,然后再返回本页面,在此模块还可选查询学生列表,查询课程列表,添加管理员,返回主页等功能,如图4

4

4、点击添加管理员即可进入此界面,在此界面可以添加管理员信息,点击“提交”后系统将用户输入的信息录入数据库3,如图4

 

5

5、在图3基础上点击“学生列表”即可进入此页面,显示所有学生的信息,如图6

6

6、在图6基础上点击“删除”即可删除学生信息,如图7

7

7、在图2基础上点击“课程列表”即可进入此页面,如图8

8

三、         系统实施

1)数据库的建立

数据库设计语句

--create database Data

--use Data

create table manger (id int ,username varchar(10) , password varchar(20))

create table student (sno char(10) , sname varchar(10) , password varchar(20) , ssex char(2) , sage int , sdept varchar(20)  ,

       constraint s1 primary key (sno) ,

       constraint s2 check(ssex in ('','') ) )

create table course (cno char(4) , cname varchar(20) , credit int ,

       constraint c1 primary key (cno))

create table studentcourse(sno char(10) , cno char(4) , score int ,

       constraint cs1 primary key(sno , cno) ,

       constraint cs2 foreign key(sno) references student(sno) ,

       constraint cs3 foreign key(cno) references course(cno) )

存储过程:

CREATE PROC GetManger

--@username varchar(20) OUTPUT,

--@password varchar(20) OUTPUT -- 要输出的参数

AS

BEGIN

-- uName的值赋给 @ostrUserName 变量,即要输出的参数

SELECT username, password FROM manger where username <> 'admin'

END

GO

 

2)程序源代码示例

(1)页面显示示例

mangerlogin.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

   

    <title>My JSP 'mangerlogin.jsp' starting pagetitle>

   

  <meta http-equiv="pragma" content="no-cache">

  <meta http-equiv="cache-control" content="no-cache">

  <meta http-equiv="expires" content="0">   

  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

  <meta http-equiv="description" content="This is my page">

 

 

  head>

 

  <body>

    <a href="index.jsp">主页》a><hr>

    <center>

    <form action="mangerlogin.action" method="post">

      管理员姓名:<input type="text" name="username" id="username">input><br/>

            码:<input type="password" name="password" id="password">input><br/>

      <input type="submit" name="submit" value="提交">input>

      <input type="reset" name="reset" value="重置">input>

    form>

   center>

  body>

html>

 

Mangerlist.jsp

<%@ page language="java" import="java.util.*,com.xg072.lele.help.*,com.xg072.lele.domain.*,com.xg072.lele.strutsaction.*,com.opensymphony.xwork2.ActionContext;" pageEncoding="utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

   

    <title>My JSP 'mangerlist.jsp' starting pagetitle>

   

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">   

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

   

 

  head>

 

  <body>

    <a>admin:a><br>

    <a href="index.jsp">主页》a>

    <a href="addmanger.jsp">添加管理员》a>

    <a href="studentlist.jsp">学生列表》a>

    <a href="courselist.jsp">课程列表》a>

    管理员列表:<hr>

    <center>

    <table border="1">

        <tr bgcolor="grey"><td>管理员姓名td><td>管理员密码td><td>删除td>tr>

        <% 

        ListManger listManger = new ListManger();

        listManger.list(request , out);

        %>

    table>

    center>

  body>

html>

Regist.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

   

    <title>My JSP 'regist.jsp' starting pagetitle>

   

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">   

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

   

 

  head>

 

  <body>

    <a href="index.jsp">主页》a>

    <a href="studentlogin.jsp">学生登录》a><hr/>

    <center>

    <form action="regist.action" method="post">

    姓名:<input type="text" name="sname">input><br/><br/>

    学号:<input type="text" name="sno">input><br/><br/>

    密码:<input type="password" name="password">input><br/><br/>

    性别:<input type="text" name="ssex">input><br/><br/>

    年龄:<input type="text" name="sage">input><br/><br/>

    系名:<input type="text" name="sdept">input><br/><br/>

    <input type="submit" name="submit" value="提交">    

    <input type="reset" name="reset" value="重置">

    form>

    center>

  body>

html>

 

2hibernate数据库连接配置文件示例

hibernate.cfg.xml

xml version='1.0' encoding='UTF-8'?>

DOCTYPE hibernate-configuration PUBLIC

          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

  <session-factory>

     <property name="dialect">

         org.hibernate.dialect.SQLServerDialect

     property>

     <property name="connection.url">jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=Dataproperty>

     <property name="connection.username">saproperty>

     <property name="connection.password">saproperty>

     <property name="connection.driver_class">

         com.microsoft.jdbc.sqlserver.SQLServerDriver

     property>

     <property name="myeclipse.connection.profile">

         com.microsoft.jdbc.sqlserver.SQLServerDriver

     property>

     <mapping resource="com/xg072/lele/domain/Studentcourse.hbm.xml" />

     <mapping resource="com/xg072/lele/domain/Student.hbm.xml" />

     <mapping resource="com/xg072/lele/domain/Manger.hbm.xml" />

     <mapping resource="com/xg072/lele/domain/Course.hbm.xml" />

  session-factory>

hibernate-configuration>

 

Student.hbm.xml

xml version="1.0" encoding="utf-8"?>

DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <class name="com.xg072.lele.domain.Student" table="student" schema="dbo" catalog="Data">

        <id name="sno" type="java.lang.String">

            <column name="sno" length="10" />

            <generator class="assigned" />

        id>

        <property name="sname" type="java.lang.String">

            <column name="sname" length="10" />

        property>

        <property name="password" type="java.lang.String">

            <column name="password" length="20" />

        property>

        <property name="ssex" type="java.lang.String">

            <column name="ssex" length="2" />

        property>

        <property name="sage" type="java.lang.Integer">

            <column name="sage" />

        property>

        <property name="sdept" type="java.lang.String">

            <column name="sdept" length="20" />

        property>

        <set name="studentcourses" inverse="true" cascade="all">

            <key>

                <column name="sno" length="10" not-null="true" />

            key>

            <one-to-many class="com.xg072.lele.domain.Studentcourse" />

        set>

    class>

hibernate-mapping>

 

Studentcourse.hbm.xml

xml version="1.0" encoding="utf-8"?>

DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <class name="com.xg072.lele.domain.Studentcourse" table="studentcourse" schema="dbo" catalog="Data">

        <composite-id name="id" class="com.xg072.lele.domain.StudentcourseId">

            <key-many-to-one name="student" class="com.xg072.lele.domain.Student">

                <column name="sno" length="10" />

            key-many-to-one>

            <key-many-to-one name="course" class="com.xg072.lele.domain.Course">

                <column name="cno" length="4" />

            key-many-to-one>

        composite-id>

        <property name="score" type="java.lang.Integer">

            <column name="score" />

        property>

    class>

hibernate-mapping>

 

3)实体类示例

Mnger.Java

package com.xg072.lele.domain;

 

/**

 * Manger entity. @author MyEclipse Persistence Tools

 */

 

@SuppressWarnings("serial")

public class Manger implements java.io.Serializable {

 

  // Fields

  private String username;

  private String password;

 

  // Constructors

 

  /** default constructor */

  public Manger() {

  }

 

  public Manger(String username, String password) {

     super();

     this.username = username;

     this.password = password;

  }

 

  public String getUsername() {

     return this.username;

  }

 

  public void setUsername(String username) {

     this.username = username;

  }

 

  public String getPassword() {

     return this.password;

  }

 

  public void setPassword(String password) {

     this.password = password;

  }

     Studentcourse.jsp

package com.xg072.lele.domain;

 

@SuppressWarnings("serial")

public class Studentcourse implements java.io.Serializable {

 

  // Fields

 

  private StudentcourseId id;

  private Integer score;

 

  // Constructors

 

  /** default constructor */

  public Studentcourse() {

  }

 

  /** minimal constructor */

  public Studentcourse(StudentcourseId id) {

     this.id = id;

  }

 

  /** full constructor */

  public Studentcourse(StudentcourseId id, Integer score) {

     this.id = id;

     this.score = score;

  }

 

  // Property accessors

 

  public StudentcourseId getId() {

     return this.id;

  }

 

  public void setId(StudentcourseId id) {

     this.id = id;

  }

 

  public Integer getScore() {

     return this.score;

  }

 

  public void setScore(Integer score) {

     this.score = score;

  }

 

}

}

4)程序接口类示例

DaoFactory.java

package com.xg072.lele.dao;

 

import com.xg072.lele.daoImpl.CourseDAOImpl;

import com.xg072.lele.daoImpl.MangerDAOImpl;

import com.xg072.lele.daoImpl.StudentDAOImlp;

import com.xg072.lele.daoImpl.StudentcourseDAOImpl;

 

public class DaoFactory {

   private StudentDAO studentDao = null;

 

   private MangerDAO mangerDao = null;

 

   private CourseDAO courseDao = null;

  

   private  StudentcourseDAO studentcourseDao = null ;

 

   private static DaoFactory instance = new DaoFactory();

 

   private DaoFactory() {

       this.studentDao = new StudentDAOImlp();

       this.mangerDao = new MangerDAOImpl();

       this.courseDao = new CourseDAOImpl();

       this.studentcourseDao = new StudentcourseDAOImpl();

   }

 

   // 由于类加载时,立即创建了instance,故为线程安全

   public static DaoFactory getInstance() {

       return instance;

   }

 

   public StudentDAO getStudentDao() {

       return studentDao;

   }

 

   public CourseDAO getCourseDao() {

       return courseDao;

   }

   public StudentcourseDAO getStudentcourseDao(){

       return studentcourseDao ;

   }

   public MangerDAO getMangerDAO(){

       return mangerDao;

   }

}

mangerDao.Java

package com.xg072.lele.dao;

 

import java.util.List;

 

import com.xg072.lele.domain.Manger;

 

public interface MangerDAO {

    public Manger selectManger(String username);

    public void addManger(Manger manger);

    public void deleteManger(Manger manger);

    public List listManger();

}

     

5)程序接口的实现类示例

mangerDaoImpl.Java

package com.xg072.lele.daoImpl;

 

import java.util.List;

 

import org.hibernate.*;

 

import com.xg072.lele.dao.HibernateSessionFactory;

import com.xg072.lele.dao.MangerDAO;

import com.xg072.lele.domain.Manger;

 

public class MangerDAOImpl implements MangerDAO {

 

    public void addManger(Manger manger) {

      

       Session session = HibernateSessionFactory.getSession();

       Transaction transaction = session.beginTransaction();

       session.save(manger);

       transaction.commit();

       HibernateSessionFactory.closeSession();

 

    }

 

    public void deleteManger(Manger manger) {

 

       Session session = HibernateSessionFactory.getSession();

       Transaction transaction = session.beginTransaction();

       session.delete(manger);

       transaction.commit();

       HibernateSessionFactory.closeSession();

 

    }

 

    public Manger selectManger(String username) {

      

       Manger manger = null;

       Session session = HibernateSessionFactory.getSession();

       Transaction transaction = session.beginTransaction();

 

       manger = (Manger) session.load(Manger.class, username);

       //测试是否取得值,还有就是防止没有真正执行查询就关闭session

       System.out.println("selectManger:"+manger);

        transaction.commit();

       HibernateSessionFactory.closeSession();

      

       return manger;

    }

 

    public List listManger() {

      

       Session session = HibernateSessionFactory.getSession();

       Transaction transaction = session.beginTransaction();

       Query query = session.getNamedQuery("GetManger");

       Listlist = query.list();

       transaction.commit();

       for (Manger manger : list){

           System.out.println(manger.getUsername()+manger.getPassword());

       }

       HibernateSessionFactory.closeSession();

       return list ;

    }

 

}

 

6struts 2配置文件(struts.xml

xml version="1.0" encoding="UTF-8" ?>

DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">

<struts>

  <package name="com.xg072.lele.strutsaction" extends="struts-default">

     <action name="studentlogin" class="com.xg072.lele.strutsaction.StudentLoginAction">

         <result name="success">/studentcourse.jspresult>

         <result name="fail">/studentlogin.jspresult>

         <result name="input">/studentlogin.jspresult>

     action>

     <action name="chosecourse" class="com.xg072.lele.strutsaction.Chosecourse">

         <result name="success">/studentcourse.jspresult>

         <result name="input">/chosecourse.jspresult>

     action>

     <action name="deletestudentcourse" class="com.xg072.lele.strutsaction.DeleteStudentcourse">

         <result name="success">/studentcourse.jspresult>

         <result name="input">/studentcourse.jspresult>

     action>

     <action name="regist" class="com.xg072.lele.strutsaction.Regist">

         <result name="success">/studentlogin.jspresult>

         <result name="input">/regist.jspresult>

     action>

     <action name="mangerlogin" class="com.xg072.lele.strutsaction.MangerloginAction">

         <result name="success">/mangerloginsuccess.jspresult>

         <result name="mangerlist">/mangerlist.jspresult>

         <result name="input">/mangerlogin.jspresult>  

     action>

     <action name="deletemanger" class="com.xg072.lele.strutsaction.DeleteMangerAction">

         <result name="success">/mangerlist.jspresult>

         <result name="input">/mangerlist.jspresult>

     action>

     <action name="deletestudent" class="com.xg072.lele.strutsaction.DeleteStudentAction">

         <result name="success">/studentlist.jspresult>

         <result name="input">/studentlist.jspresult>  

     action>

     <action name="deletecourse" class="com.xg072.lele.strutsaction.DeleteCourseAction">

         <result name="success">/courselist.jspresult>

         <result name="input">/courselist.jspresult>

     action>

  package>

struts>   

7struts 2action处理类示例(chosecourse.Java

package com.xg072.lele.strutsaction;

 

import javax.servlet.http.HttpServletRequest;

 

import com.opensymphony.xwork2.ActionSupport;

import com.xg072.lele.dao.DaoFactory;

import com.xg072.lele.domain.Course;

import com.xg072.lele.domain.Student;

import com.xg072.lele.domain.Studentcourse;

import com.xg072.lele.domain.StudentcourseId;

 

public class Chosecourse extends ActionSupport{

   

    private String cno ;

    private String sno ;

    private HttpServletRequest request ;

   

 

    public HttpServletRequest getRequest() {

       return request;

    }

 

    public void setRequest(HttpServletRequest request) {

       this.request = request;

    }

 

    public String getCno() {

       return cno;

    }

 

    public void setCno(String cno) {

       this.cno = cno;

    }

   

    public String getSno() {

       return sno;

    }

 

    public void setSno(String sno) {

       this.sno = sno;

    }

 

    public String execute() throws Exception{

       //测试获得cnosno

//     System.out.print("到这了Chosecourse:");

//     System.out.print(cno);

//     System.out.print(sno);

       try {

           Student student = DaoFactory.getInstance().getStudentDao().selectStudentBySno(this.getSno());

           Course course = DaoFactory.getInstance().getCourseDao().selectCourseByCno(this.getCno());

           StudentcourseId studentcourseId = new StudentcourseId(student , course);

          

           //测试查询成功

//     System.out.print(student);

//     System.out.print(course);

          

           Studentcourse studentcourse = DaoFactory.getInstance().getStudentcourseDao().selectStudentcourseByStudentcourseId(studentcourseId);

           if(!(studentcourse.equals(null))){

              studentcourse = new Studentcourse(studentcourseId,null);

               DaoFactory.getInstance().getStudentcourseDao().addStudentcourse(studentcourse);

              return SUCCESS ;

           }else{

              return INPUT;

           }

       } catch (Exception e) {

           // TODO Auto-generated catch block

           return INPUT ;

       }     

    }

}

8)分页显示的帮助类(Listmanger.Java

package com.xg072.lele.help;

 

import java.util.Iterator;

import java.util.List;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.jsp.JspWriter;

 

import com.xg072.lele.dao.DaoFactory;

import com.xg072.lele.dao.MangerDAO;

import com.xg072.lele.domain.Manger;

 

public class ListManger {

   private MangerDAO mangerDao ;

   public MangerDAO getDao(){

       return DaoFactory.getInstance().getMangerDAO();

   }

   public void list(HttpServletRequest request , JspWriter out)throws Exception{

       //page为从页面中取得的值

       String tmp = (String) request.getParameter("page");

       //首次打开page为空

       if(tmp != null){

          //调用listpage

          listpage(request, out , Integer.parseInt(tmp));

       }else{

          listpage(request, out , 1);

       }

      

   }

   @SuppressWarnings("unchecked")

   private void listpage(HttpServletRequest request, JspWriter out,

          int page) throws Exception {

      

       String username = "" ,password  = "";

       mangerDao = this.getDao();

       String sno = request.getParameter("sno");

       //声明list对象,取得课程列表为其赋值

       List list = (List) mangerDao.listManger();

      

       if(list == null){

          out.print("尚无管理员!");

          return ;

       }

       int total = list.size();

       int count = 0 ;

       Iterator it = list.iterator();

       Manger manger ;

       //每页显示5条记录

       while(count < (page - 1) * 5 && it.hasNext()){

          it.next() ;

          count++ ;

       }

       count = 0 ;

       while(it.hasNext() && count < 5){

          manger = (Manger) it.next();

          username = manger.getUsername();

          password = manger.getPassword();

         

          //在页面输出信息

          out.print("" + username + "" + password + "");

          out.print("删除");

          count++ ;

//        //测试是否获得username

//        System.out.println("ListManger:"+username);

       }

       //添加翻页连接

       out.print("");

       out.print("

");

       if((page - 1) > 0){

          //如果是首页,则不显示“上一页”

          out.print("

");

       }else {

          out.print("

");

       }

       for(int i = 0 ; i < 5 && page < total && page > 0 ;i++ )

       out.print("

");

       }else {

          out.print("

");

       }

       out.print("

上一页 上一页

       if((page + 1) < total){

          //如果是末页,则不显示“下一页”

          out.print("

下一页
下一页
");

   }

}

       9hibernate帮助类()

package com.xg072.lele.domain;

import org.hibernate.HibernateException;

import org.hibernate.Session;

import org.hibernate.cfg.Configuration;

public class HibernateSessionFactory {

private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";

private static final ThreadLocal threadLocal = new ThreadLocal();

private  static Configuration configuration = new Configuration();   

private static org.hibernate.SessionFactory sessionFactory;

private static String configFile = CONFIG_FILE_LOCATION;

static {

    try {

         configuration.configure(configFile);

         sessionFactory = configuration.buildSessionFactory();

     } catch (Exception e) {

         System.err

                .println("%%%% Error Creating SessionFactory %%%%");

         e.printStackTrace();

     }

    }

    private HibernateSessionFactory() {

 }

 

    public static Session getSession() throws HibernateException {

    Session session = (Session) threadLocal.get();

 

     if (session == null || !session.isOpen()) {

         if (sessionFactory == null) {

            rebuildSessionFactory();

         }

         session = (sessionFactory != null) ? sessionFactory.openSession()

                : null;

         threadLocal.set(session);

     }

 

        return session;

    }

public static void rebuildSessionFactory() {

     try {

         configuration.configure(configFile);

         sessionFactory = configuration.buildSessionFactory();

     } catch (Exception e) {

         System.err

                .println("%%%% Error Creating SessionFactory %%%%");

         e.printStackTrace();

     }

  }

 

 

 public static void closeSession() throws HibernateException {

        Session session = (Session) threadLocal.get();

        threadLocal.set(null);

 

        if (session != null) {

            session.close();

        }

    }

  public static org.hibernate.SessionFactory getSessionFactory() {

     return sessionFactory;

  }

  public static void setConfigFile(String configFile) {

     HibernateSessionFactory.configFile = configFile;

     sessionFactory = null;

  }

  public static Configuration getConfiguration() {

     return configuration;

  }

}

参考文献

 

1、萨师煊、王珊著《数据库系统概论》高等教育出版社  2003

2、汤志伟主编《信息系统开发与管理》 科学出版社2008

3、乔东亮 黄孝章 主编《管理信息系统》 高等教育出版社    2007

4Diane Zak著《Programming with Microsoft Visual Studio 2005》电子工业出版社 2005

 

你可能感兴趣的:(数据库,string,session,class,myeclipse,exception)