struts+spring+hibernate快速入门

Spring集成Hibernate HibernateDaoSupport 包含HibernateTemplate 模板类,springHibernate再一次的封装, 使得代码可以更加简洁。声明式事务: 即在配置文件里,配置哪些方法是需要事务的。这些方法的事务的启动和提交,都交给 Spring 来处理。如果只是读取数据但不修改数据,可以设置read-only为true,对hibernate 可以有更好的优化。注意,dao的配置的parent 属性要设置成baseDao。业务操作可能是包含不同的dao的几个操作的。 阅读详情

来自:天极网   courage_yhb

本文是开发基于spring的web应用的入门文章,前端采用Struts MVC框架,中间层采用spring,后台采用Hibernate。

  本文包含以下内容:

   ·配置Hibernate和事务

   ·装载Spring的applicationContext.xml文件

   ·建立业务层和DAO之间的依赖关系

   ·将Spring应用到Struts中

  简介

  这个例子是建立一个简单的web应用,叫MyUsers,完成用户管理操作,包含简单的数据库增,删,查,该即CRUD(新建,访问,更新,删除)操作。这是一个三层的web应用,通过Action(Struts)访问业务层,业务层访问DAO。图一简要说明了该应用的总体结构。图上的数字说明了流程顺序-从web(UserAction)到中间层(UserManager),再到数据访问层(UserDAO),然后将结果返回。

  Spring层的真正强大在于它的声明型事务处理,帮定和对持久层支持(例如Hiberate和iBATIS)

  以下下是完成这个例子的步骤:

  1. 安装Eclipse插件

  2. 数据库建表

  3. 配置Hibernate和Spring

  4. 建立Hibernate DAO接口的实现类

  5. 运行测试类,测试DAO的CRUD操作

  6. 创建一个处理类,声明事务

  7. 创建web层的Action和model

  8. 运行Action的测试类测试CRUD操作

  9. 创建jsp文件通过浏览器进行CRUD操作

  10. 通过浏览器校验jsp

  安装eclipse插件

  1. Hibernate插件http://www.binamics.com/hibernatesync

  2. Spring插件http://springframework.sourceforge.net/spring-ide/eclipse/updatesite/

  3. MyEclipse插件(破解版)

  4. Tomcat插件. tanghan

  5. 其他插件包括xml,jsp,

 数据库建表


create table app_user(id number not null primary,firstname vchar(32),lastname vchar(32));


  新建项目

  新建一个web project,新建后的目录结构同时包含了新建文件夹page用于放jsp文件,和源文件夹test用于放junit测试文件。同时将用到的包,包括struts,hibernate,spring都导入到lib目录下。

  创建持久层O/R mapping

  1. 在src/com.jandar.model下用hibernate插件从数据库导出app_user的.hbm.xml文件改名为User.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
   "-//Hibernate/Hibernate Mapping DTD//EN"
   "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping package="com.jandar.model">
<class name="User" table="APP_USER">
 <id
  column="ID"
  name="id"
  type="integer"
 >

  <generator class="assigned" />

 </id>

 <property
   column="LASTNAME"
   length="10"
   name="lastname"
   not-null="false"
   type="string"
 />

 <property
   column="FIRSTNAME"
   length="10"
   name="firstname"
   not-null="true"
   type="string"
 />

</class>
</hibernate-mapping>


  2. 通过hibernate synchronizer->synchronizer file生成User.java文件,User对象对应于数据库中的app_user表

  注:在eclipse下自动生成的对象文件不完全相同,相同的是每个对象文件必须实现Serializable接口,必需又toString和hashCode方法;

import java.io.Serializable;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

public class BaseObject implements Serializable {
 public String toString() {
  return ToStringBuilder.reflectionToString(this,
  ToStringStyle.MULTI_LINE_STYLE);
 }

 public boolean equals(Object o) {
  return EqualsBuilder.reflectionEquals(this, o);
 }

 public int hashCode() {
  return HashCodeBuilder.reflectionHashCode(this);
 }
}

public class User extends BaseObject {
 private Long id;
 private String firstName;
 private String lastName;

 /**
 * @return Returns the id.
 */

 public Long getId() {
  return id;
 }

 /**
  * @param id The id to set.
 */

 public void setId(Long id) {
  this.id = id;
 }

 /**
 * @return Returns the firstName.
 */

 public String getFirstName() {
  return firstName;
 }

 /**
  * @param firstName The firstName to set.
 */

 public void setFirstName(String firstName) {
  this.firstName = firstName;
 }

 /**
 * @return Returns the lastName.
 */

 public String getLastName() {
  return lastName;
 }

 /**
 * @param lastName The lastName to set.
 */

 public void setLastName(String lastName) {
  this.lastName = lastName;
 }
}

创建DAO访问对象

  1. 在src/com.jandar.service.dao新建IDAO.java接口,所有的DAO都继承该接口

package com.jandar.services.dao;

public interface IDAO {

}


  2. 在src/com.jandar.service.dao下新建IUserDAO.java接口

public interface IUserDAO extends DAO {
 List getUsers();
 User getUser(Integer userid);
 void saveUser(User user);
 void removeUser(Integer id);
}


  该接口提供了访问对象的方法,

  3. 在src/com.jandar.service.dao.hibernate下新建UserDAOHiberante.java

import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;
import com.jandar.model.User;
import com.jandar.service.dao.IUserDAO;

public class UserDaoHibernate extends HibernateDaoSupport implements IUserDAO {

 private Log log=LogFactory.getLog(UserDaoHibernate.class);
 /* (非 Javadoc)
 * @see com.jandar.dao.IUserDAO#getUsers()
 */

 public List getUsers() {
  return getHibernateTemplate().find("from User");
 }

 /* (非 Javadoc)
 * @see com.jandar.dao.IUserDAO#getUser(java.lang.Long)
 */

 public User getUser(Integer id) {
  // TODO 自动生成方法存根
  return (User) getHibernateTemplate().get(User.class,id);
 }

 /* (非 Javadoc)
 * @see com.jandar.dao.IUserDAO#saveUser(com.jandar.model.User)
 */

 public void saveUser(User user) {
  log.debug("xxxxxxx");
  System.out.println("yyyy");
  getHibernateTemplate().saveOrUpdate(user);
  if(log.isDebugEnabled())
  {
   log.debug("userId set to "+user.getId());
  }
 }

 /* (非 Javadoc)
 * @see com.jandar.dao.IUserDAO#removeUser(java.lang.Long)
 */

 public void removeUser(Integer id) {
  Object user=getHibernateTemplate().load(User.class,id);
  getHibernateTemplate().delete(user);
  if(log.isDebugEnabled()){
   log.debug("del user "+id);
  }
 }
}


  在这个类中实现了IUserDAO接口的方法,并且继承了HibernateDAOSupport类。这个类的作用是通过hibernate访问、操作对象,进而实现对数据库的操作。

SpringHibernate整合教程:从基础到实战 本文还有配套的精品资源,点击获取 简介:SpringHibernate是Java企业级开发的重要框架,其中Spring提供依赖注入和面向切面编程,而Hibernate则提供对象关系映射解决方案。本文深入探讨Spring+Hibernate整合的基础知识,涵盖关键概念、配置、对象映射及事务管理,并通过实战项目来实践理论知识,帮助学习者掌握企业级应用开发的核心技能。 ... 阅读详情

相关推荐

AVI文件修复软件完美版:全面解决方案

"avi文件修复软件完美版"的核心在于其先进的修复算法。这款软件采用多层次的数据恢复逻辑,结合了现代计算机科学中的数据结构和图论,以确保即使在文件严重损坏的情况下也能尽可能地恢复原始数据。为了处理AVI文件中的损坏,修复算法首先对AVI文件的结构进行解析,将其分解为可管理的数据块。算法检查数据块的一致性,利用冗余数据校验和校正错误。通过对数据块进行交叉检查,软件可以重建那些在文件损坏过程中被破坏的信息。

weixin_26850469的博客 383

利用IDEA搭建的hibernate+Spring+SpringMVC架构实现增删改查等功能

原本是在eclipse下搭的,后来学习IDEA,又转到IDEA搭建的hibernate+Spring+SpringMVC架构实现增删改查等功能,和大家一起学习进步,不喜勿喷哦

Struts2+Hibernate+Spring框架搭建(一)

Struts2用到的Jar包 博文链接:https://wl-ldy.iteye.com/blog/1011898

Hibernate——与Spring整合

文章目录一、SpringHibernate整合步骤1.1 引入jar包1.2 配置文件1.3 搭建配置环境测试1.3.1 测试Spring环境1.3.2 测试Hibernate环境二、使用Spring创建SessionFactory对象2.1 直接加载hibernate主配置文件2.2 连接池交给Spring管理2.3 配置文件全写Spring中三、Spring管理事务 一、Spring和Hib...

且行且珍惜 1352

HibernateSpring整合实践实例

【1】Hibernate使用XML方式与Spring整合 即,Model上面不添加注解,使用*.hbm.xml方式与数据库进行关联。 ① applicationContext.xml如下所示: <?xml version="1.0" encoding="UTF-8&q

小小默:进无止境 1218

手把手教你配置Spring+hibernate

项目一般都需要查询数据库,hibernate是一套比较好的解决方案。本文将手把手教你如何配置Spring+hibernate,为项目搭建好“数据库操作”的主要框架。 一、引入包 本例子使用Spring+Hibernate,连接mysql数据库,故需要下载hibernatespring、apache common、mysql相关的包 下载地址: 1.Spring(3.2.0.M2)

lizeyang的专栏 2544

ios avi_转换DVD,ISO和AVI视频以在iOS设备上播放

ios aviIf you own an iOS device, you know that by default it only plays certain video formats. You probably have other video formats in your collection you’d like to add, and here we look at how to c...

2733

专注于文件夹加密和保护的免费软件

专注于文件夹加密和保护的免费软件

weixin_64944512的博客 1758

免费的Windows文件文件夹隐藏加密工具

首次打开软件后,需要设置一个主密码和邮箱,这里需要注意,这个主密码非常重要,如果忘记了,后续的加密文件可能无法打开。至于邮箱现在设置了也没用,因为Anvi Folder Locker网站已经不再提供服务了,所以一定要牢记自己的密码。进入主界面后,可以点击添加按钮添加需要加密的文件夹也可以直接拖拽需要加密的文件和文件夹到软件中;隐私一直是我们比较注重的问题,谁的电脑里都有些自己的小秘密不希望别人看到,这个时候我们的隐私保护软件就很重要了!软件有多种加密保护方式,可以牢牢保护您的文件。

QQQQQEA的博客 1928

免费的文件加密工具

文件加密和保护

weixin_64944512的博客 433

struts2+spring4+hibernate5所有jar包

struts2+spring4+hibernate5的所有jar包所有jar包包括spring Aop基本包、spring Ioc基本包、springweb开发包、spring事务控制、spring整合junit、spring整合struts包、hibernate包、hibernate整合spring包、struts2包

Locky勒索病毒工作原理深度解析:被加密文件如何恢复?(含AES+RSA加密流程与防御策略)

 本文详细剖析了曾经肆虐全球的Locky勒索软件的工作原理。我们将深入探讨其感染前的环境检查、与C&C服务器的通信机制、目标文件扫描策略、核心的AES+RSA混合加密流程,以及其如何通过删除卷影副本来阻碍系统恢复。

ransom_frontline的博客 1842

新勒索软件DynA-Crypt不仅要加密你的文件,而且窃取并删除它们

本文讲的是新勒索软件DynA-Crypt不仅要加密你的文件,而且窃取并删除它们, 一个名为DynA-Crypt的新勒索软件被GData公司的恶意软件分析师Karsten Hahn发现,DynA-Crypt不仅能加密你的数据,而且试图从受害者的计算机窃取大量信息。虽然勒索软件和信息窃取感染已经变得越来越普遍,但当你把两者结合到DynA-Crypt中,那...

weixin_33901926的博客 363

java解压缩/压缩/加密压缩/加密解压缩 ZIP4J ZIP文件压缩与解压缩学习

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!                最近公司准备让各项目组

yrryyff的博客 1623

2025年7款文件透明加密工具推荐|企业数据安全的“隐形盾牌”

文件透明加密技术(Transparent Encryption)因此成为主流解决方案:它通过驱动层加密技术,在用户无感知的情况下自动加密文件,内部正常使用,外部非法访问则显示乱码,同时支持精细化的权限管控(如外发包限制、截屏阻断)。透明加密原理:通过loop设备创建加密文件系统(如LUKS格式),文件存入时自动加密,取出时解密;不加密:相当于管理员关闭了终端电脑的阅读加密文件的权限,关闭后已经加密的文件无法再打开,同时新建新保存的文件也不再加密了。文件存入Z:盘时自动加密,取出时解密,应用无感知。

shunyou0526的博客 1680

电脑隐私安全必备,免费Windows文件/文件夹隐藏+加密工具

Anvil Folder Locker 是Anvisoft 早期推出一款Windows系统文件加密工具,软件提供多种方式来保护我们的“隐私文件”,并且可以设置多种访问权限,防止其他人盗取或浏览电脑中的重要文件或数据。首次使用软件需要进行设置密码和输入邮箱,密码可以任意设置,但是必须要记住,因为每次进入软件都需要输密码;点击密码保护之后,我们不仅可以给文件设置“自定义密码”,还可以设置“提示语”。想解除保护也非常简单,只需勾选被保护的文件选择“不保护”,然后点击“删除”就可以取消保护了!

2301_79748127的博客 2800

开源磁盘加密软件VeraCrypt教程

转载请注明文章出处:https://tlanyan.me/veracrypt-... VeraCrypt介绍 VeraCrypt是一款开源的磁盘加密软件,前身是大名鼎鼎的TrueCrypt。2014年5月微软停止Windows XP的支持,TrueCrypt的作者认为Win7及后续版本内置的BitLocker足够好用,TrueCrypt...

weixin_33813128的博客 2749

如何使用TrueCrypt加密

如何使用TrueCrypt加密 TrueCrypt是一款开源加密软件,您可以免费,自由的使用,该软件几乎涵盖了所有加密方法,可直接使用被加密之文件,而且被加密文件有良好的移植性,支持Windows,Mac OS X,Linux操作系统。缺点为无法保证加密文件不被删除。详细简介请点击中文维基百科或英文维基百科。 注意:本例中使用7.1a版本(Windows版本),最新的7.

天空之城的专栏 5256
上一篇: Java性能优化技巧
下一篇: GEF入门系列(一、Draw2D)
kernel_engine
博客等级 码龄21年 6粉丝 16原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值