使用Struts+Hibernate开发学生信息管理系统

1、项目组织结构

使用Struts+Hibernate开发学生信息管理系统

2、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name>StructDemo</display-name>	
  
  <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

3、hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
	<property name="connection.username">root</property>
	<property name="connection.password">mysql</property>
	<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
	<property name="connection.url">jdbc:mysql:///test?useUnicode=true&characterEncoding=UTF-8</property>
	<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
	<property name="show_sql">true</property>
	<property name="format_sql">true</property>
	<property name="hbm2ddl.auto">update</property>
	<property name="hibernate.current_session_context_class">thread</property>


	<mapping resource="com/qixin/entity/Users.hbm.xml"/>
	<mapping resource="com/qixin/entity/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>

4、Student.java

package com.qixin.entity;

import java.util.Date;

public class Students {
	
	private String sid;
	private String sname;
	private String gender;
	private Date birthday;
	private String address;
	
	public Students() {
	}

	public Students(String sid, String sname, String gender, Date birthday, String address) {
//		super();
		this.sid = sid;
		this.sname = sname;
		this.gender = gender;
		this.birthday = birthday;
		this.address = address;
	}

	public String getSid() {
		return sid;
	}

	public void setSid(String sid) {
		this.sid = sid;
	}

	public String getSname() {
		return sname;
	}

	public void setSname(String sname) {
		this.sname = sname;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	
	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	@Override
	public String toString() {
		return "Students [s
				+ gender + ", birthday=" + birthday + ", address=" + address
				+ "]";
	}

}

5、Users.java

package com.qixin.entity;

public class Users {
	
	private int uid;
	private String username;
	private String password;
	
	public Users() {
	}
	
	public Users(int uid, String username, String password) {
//		super();
		this.uid = uid;
		this.username = username;
		this.password = password;
	}


	public int getUid() {
		return uid;
	}
	public void setUid(int uid) {
		this.uid = uid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	

}

6、Student.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <class name="com.qixin.entity.Students" table="STUDENTS">

        <id name="sid" type="java.lang.String" length="8">
            <generator class="assigned"/>
        </id>
        <property name="sname" type="java.lang.String"/>
        <property name="gender" type="java.lang.String"/>
        <property name="birthday" type="date"/>
        <property name="address" type="java.lang.String"/>

    </class>

</hibernate-mapping>

7、Users.hbm.xml  

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <class name="com.qixin.entity.Users" table="USERS">

        <id name="uid" type="int">
            <generator class="native"/>
        </id>
        <property name="username" type="java.lang.String"/>
        <property name="password" type="java.lang.String"/>

    </class>

</hibernate-mapping>

8、JUnit4 测试类 TestStudents.java

package com.qixin.entity;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test;

public class TestStudents {
	
	@Test
	public void testSchemaExport(){
		//创建配置对象
		Configuration config = new Configuration().configure();
		//创建服务对象
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
		//创建sessionFactory
		SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);
		//创建session对象
		Session session = sessionFactory.getCurrentSession();
		//创建SchemaExport对象
		SchemaExport export = new SchemaExport(config);
		export.create(true, true);
	}

}

  运行成功后自动在MySQL中生成students和users表