hibernate+struts2学生信息管理系统简单整合

本文主要介绍了如何将Hibernate ORM框架与Struts2 MVC框架进行整合,构建一个学生信息管理系统。通过展示项目的基本结构,帮助读者理解这两个框架在实际应用中的结合方式。
摘要由CSDN通过智能技术生成


一.项目结构(MVC)

直接上图
前者是整个项目结构,webcontent包含的是前端的一些jsp文件和css样式,java resourse包含后台的一些业务逻辑处理及接口;
后者是hibernate框架涉及的部分(红线)model层下的.hbm.xml是持久化层的ORM映射文件,可以通过Eclipse直接生成: 右击持久化层的包(model)--->new-->other-->hibernate-->选择第四个.hbm.xml,根据自己需要更改选项。

     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="connection.username">root</property><!-- 账号 -->
    <property name="connection.password">12315</property><!-- 密码 -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql:///web?useUnicode=true&characterEncoding=UTF-8</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property><!-- 方言-->

    <property name="show_sql">true</property><!-- 是否打印sql语句在控制台 -->
    <property name="format_sql">true</property><!-- sql语句对齐 -->
    <property name="hbm2ddl.auto">update</property><!-- creat:创建表  update:更新表 -->
    <property name="hibernate.current_session_context_class">thread</property>
   
    <mapping resource="model/students.hbm.xml"/>
   <mapping resource="model/Users.hbm.xml"/> 
    <mapping resource="model/courses.hbm.xml"/> <!-- 这四行都是注册持久化层的映射文件 -->
    <mapping resource="model/teachers.hbm.xml"/> 
    </session-factory>
</hibernate-configuration>
而struts2主要是包含Action动作的控制和结果的返回,这里不一一例举了,直接上成果图,已经挂载在云端服务器了:
网址:www.bo-study.com/web
登录:


管理页面:

下面说下过程遇到的一些奇葩问题:
1.查询一个表时,某一个字段全部一样,如上图学号一栏全是s00001????
后来一步步排查,发现配置文件和后台数据处理没问题,是数据库的问题-----------该表没有主键,加了主键之后就好了。
2.当后台接受前端的request.getParameter();数据时候,返回的是String,必须转回相应的数据类型,涉及一些简单转换:
转化为int  :int i=XX.intValue();
转化为integer:integer in=Integer.valueOf(String),integer in=new Integer(int)
转化为String:String str=XX.toString();当然还有其他方法...
3.写hql语句出错???
原因是直接把hql语句当做sql语句了,hql语句from后面的“表"是hibernate的持久化层的名字,而不是数据库中的表的名称。
总结:遇到的困难当然不止这些,不过其它都是很初级的错误,英文大小写,拼错那些。。

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值