??xml version="1.0" encoding="utf-8" standalone="yes"?>
spring的配|文件比较复杂,所以这ơ先使用hibernate的annotation功能?br>
目所需包:
先去掉我先前目中的hibernate3.1,dhibernate3.2,然后再下载hibernate-annotationQ往lib文g夹中dhibernate-annotations-3.3.0.jarQhibernate-commons-annotations.jar和ejb3-persistence.jar
。这样就可以使用hibernate的annotation了?br>
Lproducts.hbm.xml文gQ因Z需要了Q我们现在只需要在productsq个cM定义可以了。代码如下:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name="products")
public class Products {
// Fields
@Id
@GeneratedValue(generator = "c-assigned")
@GenericGenerator(name = "c-assigned", strategy = "assigned")
@Column(name="game_id")
private String gameId;//~号
@Column(name="game_name_cn")
private String gameNameCn;//中文名称
@Column(name="game_name_en")
private String gameNameEn;//英文名称
@Column(name="game_capacity")
private String gameCapacity;//数
@Column(name="game_version")
private String gameVersion;//版本
@Column(name="game_media")
private String gameMedia;//介质
@Column(name="game_copyright")
private String gameCopyright;//版权
@Column(name="game_price")
private String gamePrice;//h
@Column(name="game_content")
private String gameContent;//ȝ
// Constructors
public Products(){}
// Property accessors
public String getGameCapacity() {
return gameCapacity;
}
public void setGameCapacity(String gameCapacity) {
this.gameCapacity = gameCapacity;
}
public String getGameId() {
return gameId;
}
public void setGameId(String gameId) {
this.gameId = gameId;
}
public String getGameNameCn() {
return gameNameCn;
}
public void setGameNameCn(String gameNameCn) {
this.gameNameCn = gameNameCn;
}
public String getGameNameEn() {
return gameNameEn;
}
public void setGameNameEn(String gameNameEn) {
this.gameNameEn = gameNameEn;
}
public String getGameVersion() {
return gameVersion;
}
public void setGameVersion(String gameVersion) {
this.gameVersion = gameVersion;
}
public String getGameMedia() {
return gameMedia;
}
public void setGameMedia(String gameMedia) {
this.gameMedia = gameMedia;
}
public String getGameCopyright() {
return gameCopyright;
}
public void setGameCopyright(String gameCopyright) {
this.gameCopyright = gameCopyright;
}
public String getGameContent() {
return gameContent;
}
public void setGameContent(String gameContent) {
this.gameContent = gameContent;
}
public String getGamePrice() {
return gamePrice;
}
public void setGamePrice(String gamePrice) {
this.gamePrice = gamePrice;
}
}
注意cM的@W号没有Q这是annotation发挥作用的地方了Q是不是很方便呢?br>
现在可以com.game.bean.hibernate整个文g多wL了,因ؓ我们在spring的applicationContext中进行定义了?br>修改applicationContext中的SessionFactory
,CZ如下Q?br>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.hbm2ddl.auto">none</prop>
</props>
</property>
<property name="annotatedClasses">
<list>
<value>com.game.products.model.Products</value>
</list>
</property>
</bean>
xQ我们就可以使用hibernate的annotation了,是不是很单呢?br>
CZ代码
效果Q?br>
相关信息Q?br>Struts2.0+spring2.0+hibernate3.1 ACEGI应用CZ
struts2.0+spring2.0+hibernate3.1 web应用 CZ代码下蝲
目架构以及数据库信?br>struts+spring+hibernate的web应用<一> 架构搭徏
更多信息
]]>
q次d了权限管理的功能Q应用的?/span>acegi来进行的权限理?/span>Acegil承?/span>spring的特点,无R入性,利用aop来实C权限理?/span>
权限理主要形式是用?/span>?/span>角色?/span>权限q种模式。因为是单应用,我于是用了用户?/span>权限的模式,省去了角Ԍ了两张表?/span>
users?/span>
authorities?/span>
user_auth?/span>
在程序中相应的增加了对应表的POJOcR在commons包中增加?/span>DataSourceMethodDefinitionSourceEditor.javacR?/span>
在根目录增加?/span>accessDenied.jspQ?/span>login.jsp面?/span>
修改?/span>web.xmlQ?/span>applicationContext.xml.
?/span>spring-context文g夹中增加了最关键?/span>applicationContext-security-acegi.xml
?/span>applicationContext-security-acegi.xml配置文gQ我会写一文章进行介l,q说说自׃用时出现的问题,以及需要注意的地方?/span>
相关信息Q?br>struts2.0+spring2.0+hibernate3.1 web应用 CZ代码下蝲
目架构以及数据库信?br>struts+spring+hibernate的web应用<一> 架构搭徏
更多信息
spring2.0?.x区别不大Q可以^滑的q度Q我也就是把spring1.28换成了spring2.0.3Q算是升U到spring 2.0了?/p>
struts2.0基本是webwork2.2Q与以前的struts1.x可以说没M关系了?/p>
因ؓ是第一ơ用struts2.0Q也是第一ơ用webworkQ所以有很多不完善,不规范的地方Q还望大家来拍砖?br>
下次在将q次使用struts2.0的心得写文章?br>
因ؓ是对前一ơ写的struts+spring+hibernate的改q,所以一些新的朋友还不知道数据库以及架构是什么样子的?br>可以先看看这里:
struts+spring+hibernate的web应用<一> 架构搭徏
lib包需要以下这些包
CZ代码下蝲
相关信息Q?br>
目架构以及数据库信?br>struts+spring+hibernate的web应用<一> 架构搭徏
更多信息
开发工P
Eclipse 3.2 + NLpack1-eclipse-SDK-
插gQ?/span>
tomcatPluginV31 Q用?/span> tomcat 目建立和管理?/span>
Properties Editor Q?/span> struts 中的资源国际化的中文~辑插gQ不需要再用命令去转换文本格式了?/span>
xmlbuddy_2.0.72 Q?/span> xml 强大~辑器,而且是免费的?/span>
GEF-SDK-
sqlexplorer_plugin_
数据库: SQLServer 2000
首先是徏库徏表,
create database game
create table products(
game_id int primary key NOT NULL ,
game_name_cn varchar (100) NOT NULL ,
game_name_en varchar (100) NOT NULL ,
game_capacity int NOT NULL ,
game_version int NOT NULL ,
game_media int NOT NULL ,
game_copyright int NOT NULL ,
game_price decimal(10, 2) ,
game_content varchar (100)
)
开始搭架子了?/span>
因ؓ使用的是 tomcatPluginV31 Q所以徏?/span> eclipse 的工作空间选择 tomcat ?/span> webapps 目录。这样项目就不需要再部v了?/span>
新徏一?/span> tomcat 目Q新?/span> -> 目 ->java-> tomcat project Q在目名处Q写 ”game?/span> Q点d成?/span>
接着新徏一些包Q如下图所C?br />
然后?/span>
WEB-INF\lib
包中d一些需要的
jar
Q所需?/span>
jar
如下图所C:
需要注意的是,q里
hibernate3.jar
?/span>
hibernate3.1
Q?/span>
strust
?/span>
strust1.x
?/span>
xQ项目基本搭建完毕,下一就开始写目代码了?/span>
struts+spring+hibernate的web应用<?gt; Dao层代码编?/a>
%p 输出优先U,即DEBUGQINFOQWARNQERRORQFATAL
%r 输出自应用启动到输出该log信息耗费的毫U数
%c 输出所属的cȝQ通常是所在类的全?
%t 输出产生该日志事件的U程?
%n 输出一个回车换行符QWindowsq_为“\r\n”,Unixq_为“\n?
%d 输出日志旉点的日期或时_默认格式为ISO8601Q也可以在其后指定格式,比如Q?d{yyy MMM dd HH:mm:ss,SSS}Q输出类|
%l 输出日志事g的发生位|,包括cȝ名、发生的U程Q以及在代码中的行数。D例:Testlog4.main(TestLog4.java:10)