• 使用Struts2+Hibernate开发学生信息管理功能1


    第一章:Struts2与Hibernate整合

    1.课程简介

    2.界面原型演示

    3.Struts2与Hibernate整合

    4.创建实体类

    5.生成实体映射文件

    6.生成表结构

    1.课程简介

    • Struts2+Hibernate4实现的简单的CRUD案例
    • 完成功能:

      后台登录

      学生表的增删改查

    环境:Struts2.3.4+Hibernate4.2.4+MySQL6.0

    2.界面原型演示

    • 界面演示

    3.Struts2与Hibernate整合

    • 创建struts2和hibernate用户类库
    • 导入struts2与hibernate的jar包
    • 配置web.xml
    • 创建struts.xml
    • 配置hibernate.cfg.xml

    配置web.xml

     创建struts.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
    	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    	"http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <package name="default" namespace="/" extends="struts-default">
    
           
        </package>
    </struts>
    

     配置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">123456</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>		
    		
    	</session-factory>
    </hibernate-configuration>
    

    4.创建实体类

    创建两个实体类:用户类、学生类,对应两个表

    • 用户表
    • 学生表

    用户类

    package 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;
    	}
    	
    	
    }
    

     学生类

    package 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 [sid=" + sid + ", sname=" + sname + ", gender="
    				+ gender + ", birthday=" + birthday + ", address=" + address
    				+ "]";
    	}	
    	
    }
    

    5.生成实体映射文件

    • Users.hbm.xml
    • Students.hbm.xml

    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="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>
    

     Students.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="entity.Students" table="STUDENTS">
        <!-- 学号长度8位 -->
            <id name="sid" type="java.lang.String" length="8">
            <!-- assigned手工赋值 -->
                <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>
    

    6.生成表结构

    • 使用SchemaExport生成表结构

      把刚才生成的两个对象关系映射文件加到主配置文档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">123456</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="entity/Students.hbm.xml"/>
    		<mapping resource="entity/Users.hbm.xml"/>
    	</session-factory>
    </hibernate-configuration>
    

    使用SchemaExport生成表结构

    TestStudents.java

    package 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);//第一个参数表示生成表结构,第二个参数表示输出sql语句
    	}
    }
    
  • 相关阅读:
    每次运行caffe代码之前需要考虑修改的地方
    caffe solver 配置详解
    python获取当前文件路径以及父文件路径
    Python 文件夹及文件操作
    安装NVIDIA驱动时禁用自带nouveau驱动
    博客园转载其他博客园的文章:图片和源码
    分布式开放消息系统(RocketMQ)的原理与实践
    RocketMQ基本概念及原理介绍
    rocketmq 4.3.2 解决远程不能消费问题,解决未识别到公网IP问题
    osx免驱网卡推荐
  • 原文地址:https://www.cnblogs.com/songsongblue/p/9531169.html
Copyright © 2020-2023  润新知