justuszhang2009

2011年6月26日

Struts2+Spring+Hibernate整合的例子

自从6月份写过一些博客之后,有将近5个月没写博客了,或者由于工作繁忙,或者由于懒于书笔,又或者最近没有研究技术上的东西,根本无从写起。虽然从事项目管理工作,但深知没有技术根底,管理好一个IT项目谈何容易。难得近期各项目走上正轨,有点闲心回忆一下技术方面的东西,那就拿ssh开刀吧,谁叫它是最流行的J2EE框架组合呢。

花了将近3个小时终于把一个ssh整合的例子做完,感叹不如当年勇啊,虽说经验丰富了很多,但是实打实地编码工作,可真不是靠吹牛吹出来的,到处都存在问题,需要花时间一一解决。好了,废话少说,下面列一下用到的一些技术以及注意点,为了避免误导人,或致人懒惰,这里就不将所有代码一一列出,只是贴一些关键的代码段。

用到的技术如下:
1)MySql,在本机上能跑的最小数据库。
2)Hibernate3,有了注解功能后,感觉比Hibernate2方便多了
3)Spring3
4)Struts2
5)Junit4,用于测试service的方法
6)Log4j
7)需要的jar包如下,



1、MySql
    这个就不多说了,安装过程非常简单。创建一个数据库:test,用grant语句创建用户test,密码test;创建一张表:ACCOUNT。
2、Hibernate3
    1)创建一个domain对象:Account,和表ACCOUNT对应;在上面加注解@Entity @Table(name="ACCOUNT"),这样就省去了些hbm文件
    2)创建AccountDao,实现增删改查功能;
3、spring3
    1)创建spring配置文件:spring.xml,定义datasource,sessionFactory等;
    2)创建AccountService,实现业务逻辑,调用AccountDao;
4、Struts2
    1)创建web.xml,将spring.xml放入ContextConfigLocation;
    2)创建struts.xml,定义package和action及跳转;
    3)创建LoginAction类,从页面获取用户名和密码,调用AccountService的用于验证方法

总结,在做这个例子的过程中,出现很多问题,很大一部分都是来自于jar包的缺失和冲突,以下几点是比较难于发现的,
  1)Springframework的jar包版本不一致,会出现很奇怪的问题;
  2)缺少struts2-spring-plugin-2.2.3的jar包,会导致spring的bean无法实例化成功,总是获取到null;
  3)javaee.jar和servlet-api.jar的冲突,个人感觉后者是前者的精简版,在Tomcat容器的lib目录下存在,会和工程中的lib冲突,解决方案是把Tomcat下的servlet-api.jar换成javaee.jar;
  4)如果想通过标记的方式来注入bean,必须在spring配置文件中,添加以下代码:
       <context:annotation-config />
       <context:component-scan base-package="com.glen" />

另外,还有两个问题未解决,望能人帮之,

  1)两表关联,PrimaryKeyJoinColumn不起作用,只能插数据到主表,不能将数据插入关联表;
  2)mysql数据库,插入中文时报错,
[2011/11/27 11:30:45:045 CST] ERROR org.hibernate.util.JDBCExceptionReporter:(JDBCExceptionReporter.java:101): Incorrect string value: '\xE5\xBC\xA0\xE7\x9B\x8A...' for column 'chinese_name' at row 1
[2011/11/27 11:30:46:046 CST] ERROR org.hibernate.event.def.AbstractFlushingEventListener:(AbstractFlushingEventListener.java:324): Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update

 

posted @ 2011-11-27 17:27 张益刚 阅读(875) | 评论 (1) | 编辑 收藏
 
浅谈系统架构(一)

目前正在实施的一个项目,由于系统架构组组长突然离职,使我有幸代理了一段时间的系统架构组组长,但我主要负责系统架构组的日常管理工作,在技术层面涉入不深,这也是我比较遗憾的地方。最近被人问到如何设计一个系统架构才能支撑高并发的要求时,我哑口了,因为我只知道用的什么系统架构,但真的没有去总结过使用这个架构的原因,今天有空稍微整理了一下思绪,浅浅地谈一下。

先说一下我对系统架构的认识,这是我在和一个资深的系统架构师交谈时所吸收的,架构至少可以分成三种层面的架构:系统架构、软件架构、应用架构。系统架构是最高层面的一个架构,可以独立于软件架构(用什么技术框架来搭建)和应用架构(实现的什么业务需求)而存在。一个系统架构师应该考虑的是,根据系统的非功能性需求(访问量、并发量、扩展性要求等),来选择使用什么样的硬件、操作系统、数据库、中间件、编程语言。

由于没有太多系统架构的经验,这次就先说到这里,之后会简单聊聊我所熟知的软件架构和应用架构。

posted @ 2011-06-26 08:16 张益刚 阅读(286) | 评论 (0) | 编辑 收藏
 
 
<2011年6月>
日一二三四五六
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

 导航

  • BlogJava
  • 首页
  • 发新随笔
  • 发新文章
  • 联系
  • 聚合
  • 管理

 统计

  • 随笔: 10
  • 文章: 0
  • 评论: 10
  • 引用: 0

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • mybatis(1) (rss)
  • spring(1) (rss)
  • SSH(1) (rss)
  • struts (rss)
  • webservices(1) (rss)
  • 单元测试(1) (rss)
  • 持续集成(3) (rss)
  • 系统架构(1) (rss)
  • 项目管理(1) (rss)

随笔档案

  • 2011年11月 (1)
  • 2011年6月 (9)

搜索

  •  

最新评论

  • 1. re: spring 3 和mybatis 3集成,并用junit4进行测试
  • resultmap的配置路径是错的。。。。
  • --noel
  • 2. re: spring 3 和mybatis 3集成,并用junit4进行测试
  • @joo
    我按照他的配置做的 做不出来。。

  • --山东
  • 3. re: Struts2+Spring+Hibernate整合的例子
  • 很好,怎么查看
  • --暗暗
  • 4. re: mybatis批量更新的问题[未登录]
  • 呵呵,涛哥,是不是很有成就感啊,你回答一下一楼的问题啊
  • --Glen
  • 5. re: mybatis批量更新的问题
  • 这篇文章排到百度的第一了
  • --徐涛

阅读排行榜

  • 1. spring 3 和mybatis 3集成,并用junit4进行测试(28205)
  • 2. mybatis批量更新的问题(10611)
  • 3. spring和CXF集成来实现webservices(6449)
  • 4. 持续集成工具Sonar的使用(二)(3520)
  • 5. 持续集成工具Sonar的使用(一)(2055)

评论排行榜

  • 1. spring 3 和mybatis 3集成,并用junit4进行测试(5)
  • 2. mybatis批量更新的问题(3)
  • 3. 持续集成工具Sonar的使用(一)(1)
  • 4. Struts2+Spring+Hibernate整合的例子(1)
  • 5. 浅谈系统架构(一)(0)

Powered by: 博客园
模板提供:沪江博客
Copyright ©2025 张益刚