蜗牛—Javaweb之简易学生管理系统(一)

最近,在学校的一个实验室学习一些java方向的知识,基于Javaweb的管理系统

由于以前关注移动开发方向,所以现在才学习web方向的东西

根据自己的理解和书上的知识。写了一个基于struts2+Hibernate的简易学生管理系统

软件为:win7旗舰版+MyEclipse10.5

创建的项目目录如下图:

蜗牛—Javaweb之简易学生管理系统(一)_第1张图片

加入的struts2+Hibernate的包为

蜗牛—Javaweb之简易学生管理系统(一)_第2张图片

首先创建一个test数据库,然后创一一个名为stuinfo的表

INSERT INTO stuinfo
   (`id`, `name`, `sex`, `age`, `weight`)
VALUES
   ('111', '111', '女', 1, 1);

INSERT INTO stuinfo
   (`id`, `name`, `sex`, `age`, `weight`)
VALUES
   ('2011553', '蜗牛', '男', 20, 72);

Hibernate框架是与数据库打交道的,所以我们要为项目配置Hibernate 名字为hibernate.cfg.xml




  
    org.hibernate.dialect.MySQLDialect
    com.mysql.jdbc.Driver
    jdbc:mysql://localhost:3306/test
    root
    root
    
  


 

再新建一个学生pojo类Stuinfo,包括姓名。学号等等信息

package PO;
public class Stuinfo  implements java.io.Serializable {
     private String id;
     private String name;
     private String sex;
     private int age;
     private float weight;
     public String getId() {
        return this.id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return this.sex;
    }
    
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return this.age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public float getWeight() {
        return this.weight;
    }
    
    public void setWeight(float weight) {
        this.weight = weight;
    }
}


再根据Hibernate什么功能生成一个Stuinfo.hbm.xml文件





    
        
            
            
        
        
            
        
        
            
        
        
            
        
        
            
        
    


这样我们存储的时候就可以把Stuinfo作为一个实体类存到数据库就可以了。

 

接下来,我们再写一个HibernateSessionFactory类,用来获取Session对象。这是一个单例对象。就像C语言中的全局变量一样。随处可用

package addHibernateFile;

import javax.swing.JOptionPane;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateSessionFactory {
    private static SessionFactory sessionFactory;
    private static Configuration configuration=new Configuration();
    public HibernateSessionFactory(){
    }
    static{
        try{
            Configuration configure = configuration.configure("hibernate.cfg.xml");
            sessionFactory=configure.buildSessionFactory();
        }catch(Exception e){
            message("生成SessionFactoyr失败:"+e);
        }
    }
    public static Session getSession(){
        return sessionFactory.openSession();
    }
    public static void message(String mess){
        int type=JOptionPane.YES_NO_OPTION;
        String title="提示信息";
        JOptionPane.showMessageDialog(null, mess, title, type);
    }
}

根据Configuration类得到SessionFactory对象。然后通过它后去Session对象。这样的话,以后用session的地方我们就可以new一个HibernateSessionFactory对象,然后通过getSession()方法获取session。

 

再写我们的dao层,数据访问层StudentDao.java

package Dao;

import addHibernateFile.HibernateSessionFactory;
import PO.Stuinfo;
import java.util.List;
import javax.swing.JOptionPane;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class StudentDao {
    private Transaction transaction;
    private Session session;
    private Query query;
    public StudentDao(){
    }
    public boolean saveInfo(Stuinfo info){
        try{
            session=HibernateSessionFactory.getSession();
            transaction=session.beginTransaction();
            session.save(info);
            transaction.commit();
            session.close();
            return true;
        }catch(Exception e){
            message("saveInfo.error:"+e);
            e.printStackTrace();
            return false;
        }
    }
    public List findInfo(String type,Object value){
        session=HibernateSessionFactory.getSession();
        try{
            transaction=session.beginTransaction();
            String queryString="from Stuinfo as model where model."+type+"=?";
            query=session.createQuery(queryString);
            query.setParameter(0, value);
            List list=query.list();
            transaction.commit();
            session.close();
            return list;
        }catch(Exception e){
            message("findInfo.error:"+e);
            e.printStackTrace();
            return null;
        }
    }
    public List findAllInfo(){
        session=HibernateSessionFactory.getSession();
        try{
            transaction=session.beginTransaction();
            String queryString="from Stuinfo";
            query=session.createQuery(queryString);
            List list=query.list();
            transaction.commit();
            session.close();
            return list;
        }catch(Exception e){
            message("findInfo.error:"+e);
            e.printStackTrace();
            return null;
        }
    }
    public boolean deleteInfo(String id){
        try{
            session=HibernateSessionFactory.getSession();
            transaction=session.beginTransaction();
            Stuinfo info=new Stuinfo();
            info=(Stuinfo)session.get(Stuinfo.class, id);
            session.delete(info);
            transaction.commit();
            session.close();
            return true;
        }catch(Exception e){
            message("deleteInfo.error:"+e);
            e.printStackTrace();
            return false;
        }
    }
    public boolean updateInfo(Stuinfo info){
        try{
            session=HibernateSessionFactory.getSession();
            transaction=session.beginTransaction();
            session.update(info);
            transaction.commit();
            session.close();
            return true;
        }catch(Exception e){
            message("updateInfo.error:"+e);
            e.printStackTrace();
            return false;
        }
    }
    public void message(String mess){
        int type=JOptionPane.YES_NO_OPTION;
        String title="提示信息";
        JOptionPane.showMessageDialog(null, mess, title, type);
    }
}


这就是我们的数据访问层。下一篇我们讲它的业务逻辑层


 

 

你可能感兴趣的:(JavaWeb)