spring+hibernate 涓涓鎬殑闂 (姹傚姪) SQL Error: 1146, SQLState: 42S02
http://hi.baidu.com/fgfd0/blog/item/1d96232e79a20d524fc22680.htmlhttp://www.javaeye.com/topic/79071
锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
SaveUserAction-validation.xml
SaveUserAction.java鏂囦歡鐨勫唴瀹癸細(xì)
package com.test.action.user;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import com.opensymphony.xwork2.ActionSupport;
import com.test.bean.User;
import com.test.service.UserService;
public class SaveUserAction extends ActionSupport
{
private User user;
private UserService service;
public User getUser()
{
return user;
}
public void setUser(User user)
{
this.user = user;
}
public UserService getService()
{
return service;
}
public void setService(UserService service)
{
this.service = service;
}
@Override
public String execute() throws Exception
{
this.service.save(this.user);
return SUCCESS;
}
@Override
@SuppressWarnings("unchecked")
public void validate()
{
Map map = this.getFieldErrors();
Set set = map.keySet();
for (Iterator iter = set.iterator(); iter.hasNext();)
{
System.out.println(map.get(iter.next()));
}
}
}
SaveUserAction-validation.xml鐨勬枃浠跺唴瀹癸細(xì)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator
1.0.2//EN" "
<validators>
<field name="user">
<field-validator type="visitor">
<param name="context">user</param>
<param name="appendPrefix">true</param>
<message>user's </message>
</field-validator>
</field>
</validators>
com.test.bean鍖呬笅鐨勬枃浠訛細(xì)
User.java;
User-user-validation.xml
User-user-validation.xml鏂囦歡鐨勫唴瀹癸細(xì)
<?xml version="1.0" encoding="UTF-8"?> <validators> <field name="lastname"> <field name="age"> </validators> 榪樻湁涓涓棶棰橈紝灝辨槸鏍¢獙淇℃伅浼?xì)閲嶅锛屽湪閿欒鐨勬儏鍐典笅銆傜敱浠ヤ笅浠g爜鍙互嫻嬭瘯錛?/p>
@Override for (Iterator iter = set.iterator(); iter.hasNext();) 瑙e喅鏂規(guī)硶錛?br />
applicationContext.xml 鏂囦歡涓殑閰嶇疆a(chǎn)ction涓姞鍏ワ細(xì)Struts 2.0 鐨刟ction 鏄湁鐘舵佺殑
鍦╯pring 閰嶇疆鐨刟ction 涓姞涓?scope="prototype"; 閰嶇疆濡備笅錛?lt;bean id="saveUserAction"
class="com.test.action.user.SaveUserAction" scope="prototype"> 濡傛灉鍒犻櫎鍚庤繕鏄敊璇紝鐪嬩竴涓嬮」鐩殑lib鏂囦歡澶逛笅闈㈢殑鏄惁榪樻湁xerces鐩稿叧jar鍖咃紝涔熷垹鎺夈?/p>
璁頒綇鎶妕omcat 閲岄潰xerces.jar涔熻鍒犳帀 絎竴閮ㄥ垎: Struts 寮鍙?6.83MB 22鍒?6縐?http://beansoft.java-cn.org/download/ssh_1_struts.exe 絎簩閮ㄥ垎: Hibernate + Spring 11.5MB 38鍒?9縐?http://beansoft.java-cn.org/download/ssh_2_hibernate_spring.exe 絎笁閮ㄥ垎: 鑷繁瀹炵幇 SpringProxyAction 5.05MB 14鍒?5縐?http://beansoft.java-cn.org/download/ssh_3_struts_proxy_asm.exe 絎洓閮ㄥ垎: ASM 閿欒瑙e喅鍙?qiáng)鐢?Spring 鐨勪唬鐞嗗疄鐜版暣鍚?9.95MB 23鍒?9縐?http://beansoft.java-cn.org/download/ssh_4_spring_struts.exe 澶х翰 PDF 涓嬭澆: http://beansoft.java-cn.org/download/spring_struts_hibernate.pdf 427KB 浠g爜涓嬭澆(涓嶅甫綾誨簱): http://beansoft.java-cn.org/download/myssh.rar 45KB 瑙嗛澶х翰:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator
1.0.2//EN" "
<field name="firstname">
<field-validator type="requiredstring">
<message>required first name</message>
</field-validator>
</field>
<field-validator type="requiredstring">
<message>required last name</message>
</field-validator>
</field>
<field-validator type="required">
<message>required age</message>
</field-validator>
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>age should be between ${min} and
${max}</message>
</field-validator>
</field>
@SuppressWarnings("unchecked")
public void validate()
{
Map map = this.getFieldErrors();
Set set = map.keySet();
{
System.out.println(map.get(iter.next()));
}
}
}
<property name="service" ref="userService"></property>
</bean>
]]>
鎵浣跨敤鐨勫伐鍏峰拰鐜銆?
jdk6+myeclipse6.5+tomcat6+mysql5+spring2.0+hibernate3+struts2
濂戒簡錛屽紑濮嬫垜浠殑絎竴涓猻sh2涔嬫梾鍚с?
棣栧厛鍏堝垎鏋愪竴涓嬫垜浠殑絎竴涓猻sh2欏圭洰鐨勯渶姹傦紝綆鍗曠殑璇村氨鏄湁涓寮犺〃鍗曪紝
璁╀綘濉啓鐢ㄦ埛鍚嶅拰瀵嗙爜錛屾彁浜ゅ悗瀛樺叆鏁版嵁搴撱傚氨榪欎箞綆鍗曪紝鍛靛懙銆?
絎竴姝ワ細(xì)銆?/span>鎴?
浠鍏堟柊寤轟竴寮爉ysql鏁版嵁琛?
sql濡備笅
CREATE TABLE mytest.users (
id INT
NOT NULL,
username VARCHAR(50),
password VARCHAR(50),
PRIMARY KEY (id)
鏁版嵁琛ㄥ垱寤哄ソ鍚庣粨鏋勫涓嬶細(xì)
褰撶劧鎴戝凡緇忔湁鍑犲ぉ鏁版嵁娣誨姞榪涘幓浜?
絎簩姝?/span>
鎵撳紑myeclipse錛屾柊寤轟竴涓獁eb欏圭洰錛?
鍛藉悕涓簊sh2-2, java ee瑙勮寖鎴戜滑閫夋嫨5錛屽鍥?
絎笁姝?鍔″繀灝忓績鐨勪竴姝?/span>
瀵?
鍏sh2鐨勫悇涓猨ar錛屾楠ゅ涓嬶細(xì)
閫変腑褰撳墠鐨勯」鐩悗錛岀偣鍑昏彍鍗曠儌鐨刴yeclipse---project
capablities----add hibernate欏癸紝璺沖嚭濡傚浘
鍔″繀鎸夌収鍥劇ず閫夋嫨錛屽挨鍏舵槸copy checkde……涓欏癸紝鐒跺悗鐐瑰嚮next錛岄粯璁ext錛屽幓鎺塻pecify
database……澶嶉夋錛宯ext錛屽幓鎺塩reate session……澶嶉夋錛宖inish銆?
鍐嶆閫変腑閫変腑褰撳墠鐨勯」鐩悗錛岀偣鍑?
鑿滃崟鐑傜殑myeclipse---project capablities----add spring欏癸紝璺沖嚭濡傚浘
渚濈劧鍔″繀鎸夌収濡傛槸閫夋嫨錛宩ar鏂囦歡閫夋嫨濡備笅5涓細(xì)
鐐瑰嚮next錛?
涔嬪悗鎸変笅閫夋嫨錛屽姟蹇咃紝
next鍚巉insh鍗沖彲銆?
鐒跺悗瀵煎叆struts2鐨刯ar
濡備笅5涓斁鍒發(fā)ib涓?
鐒跺悗鏀懼叆鎴戜滑鐨勬暟鎹簱椹卞姩jar mysql-connector-java-5.0.8-bin.jar 娌″緱璇濋檮浠朵腑鏈?
鑷?
姝わ紝鍖呴兘瀵煎叆瀹屾瘯
http://77857.blog.51cto.com/67857/149631
]]>
]]>
username:<input type="text" name="username"> <br/>
password:<input type="text" name="password"> <br/>
<input type="submit" name="submit"/>
</form>
<s:form action="login">
<s:textfield name="username" label="username"></s:textfield>
<s:password name="password" label="password"> </s:password>
<s:submit name="submit"></s:submit>
</s:form>
package com.test.action;
public class LoginAction {
private String username;
private String password;
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;
}
public String execute() throws Exception {
return "success";
}
}
package com.test.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private String username;
private String password;
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;
}
public String execute() throws Exception {
if("smallfa".equals(this.getUsername().trim())&&"smallfa".equals(this.getPassword().trim()))
{
return "success";
}
else
{
this.addFieldError(username, "username or password errors");
return "failer";
}
}
@Override
public void validate() {
if(null==this.getUsername()||"".equals(this.getUsername().trim()))
{
this.addFieldError(username, "username required");
}
if(null==this.getPassword()||"".equals(this.getPassword().trim()))
{
this.addFieldError(username, "username required");
}
}
}
3:struts-xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="struts2" namespace="/" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
4:web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<!-- 瀹氫箟鏍稿績Filter鐨勫悕瀛?-->
<filter-name>struts2</filter-name>
<!-- 瀹氫箟鏍稿績Filter鐨勫疄鐜扮被 -->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
5:result.jsp
username:${requestScope.username}<br/>
password:${requestScope.password}<br/>
6:鍙傝冭棰?br />
瑙嗛:
Struts2鍏ラ棬涓庨厤緗?nbsp; 嫻洣 J2EE Struts 2搴旂敤寮鍙戣瑙g郴鍒楄棰?/h1>
http://v.youku.com/v_show/id_XNTY4MDUwMzY=.html
]]>
2:spring 閰嶇疆闂
3:鎵句笉鍒板搴旂殑綾?br />
4:hibernate鍔ㄦ佺敓鎴恠prinDAO鐢熸垚瀵瑰簲瀹炰綋鐨刋ML鏄犲皠琛ㄩ渶瑕佸仛涓浜涗慨鏀?/p>
spring+hibernate 涓涓鎬殑闂 (姹傚姪) SQL Error: 1146, SQLState: 42S02
http://hi.baidu.com/fgfd0/blog/item/1d96232e79a20d524fc22680.html
http://www.javaeye.com/topic/79071
]]>
]]>
鐒跺悗錛岀粰鏂板緩绔嬬殑欏圭洰闄勫姞涓妔truts鐨勪竴浜涙枃浠訛細(xì)
瀹屾垚鍚庨」鐩粨鏋勫涓嬶細(xì)
鎺ョ潃鍔犲叆hibernate闇瑕佺殑鏂囦歡錛?br />
瀹屾垚鍚庨」鐩粨鏋勪負(fù)錛?br />
鍐嶅姞鍏pring鐨勬枃浠訛細(xì)
娉ㄦ剰涓嬮潰鐨勯夋嫨錛?br />
瀹屾垚鍚庡彲浠ョ湅鍒幫細(xì)
鎵撳紑閭d釜applicationContext.xml錛屽皢
鏀逛負(fù)錛?br />
鐜板湪榪橀渶瑕佸仛涓浜涗慨鏀癸紝鎵嶈兘鍦ㄨ繍琛岀殑鏃跺欎笉鎶ラ敊錛屾垜浠ュ墠涔熷啓榪噑truts+hibernate鐨勬椂鍊欙紝浼?xì)鎶涗竴涓敊錛屼箣鎵浠ユ槸鐢變簬hibernate鍖呭惈鐨勯偅涓獂erces.jar錛屾墍浠ョ幇鍦ㄧ洿鎺ユ妸瀹冪粰鍒犳帀錛屾病浠涔堥棶棰樸?br />
鍦╯pring鍜宧ibernate閭o紝鏈?涓猯og4j.jar錛岃佺増鏈笉濂界敤錛屾墍浠ュ垹闄わ紝鎹竴涓柊鐗堟湰銆?br />
鍒犻櫎鍜?img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/22.jpg" twffan="done" border="0" />錛屾崲涓?img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/23.jpg" twffan="done" border="0" />錛岀劧鍚庯紝鍦╯rc涓嬪姞鍏ヤ竴涓猯og4j.properties錛?br />
鍐呭濡備笅錛?br />
榪欐牱log4j灝遍厤濂戒簡銆?br />
鎺ヤ笅鏉ユ槸鍔犲叆FreeMarker錛宩sp姣斾笉涓婏紝涓漢鎰熻銆?br />
鍏堜笅涓涓猣reemarker.jar錛屽姞鍒癢EB-INF涓嬬殑lib鐩綍錛岀劧鍚庯紝鎵撳紑web.xml錛屽姞鍏ュ涓嬪唴瀹癸細(xì)
涓嬮潰鏉ョ偣瀹炴垬婕斾範(fàn)銆?br />
鍒囨崲鍒癕yEclipse鐨刪ibernate瑙嗗浘銆?br />
鎵撳紑鏁版嵁搴撹繛鎺ワ細(xì)
鐒跺悗錛屾墽琛?br />
銆銆
鑷姩鐢熸垚鍑犱釜鏂囦歡錛?br />
騫朵笖錛宻pring鐨刟pplicationContext.xml鑷姩鍔犲叆
鐒跺悗錛屽緩绔媐tl欏甸潰錛屾牴鎹墠闈eb.xml閰嶇疆鐨刦reemarker璁劇疆錛岄渶瑕佸緩绔嬪涓嬬洰褰?br />
銆銆
鍏堟妸欏甸潰閫昏緫澶勭悊涓嬶紝鎵撳紑struts-config.xml錛岀劧鍚庤繘琛屽涓嬫搷浣?br />
緇х畫鍔?br />
瀹屾垚鍚庢晥鏋滃涓嬶細(xì)
涓嬮潰鏄?涓〉闈細(xì)
榪欓噷娉ㄦ剰涓嬪墠2琛岋紝鍦╢reemarker涓敤struts鏍囩銆?br />
鍓嶉潰璇磋繃action濮旀墭緇檚pring鍋氾紝璁歌鍦╯truts閭e姞鍏?br />
鐒跺悗錛宎ction綾婚渶瑕佷慨鏀逛笅
涓嬮潰鐨剆etter鏄負(fù)spring鍑嗗鐨勩?br />
struts閰嶇疆閭g殑action澹版槑闇瑕佷慨鏀逛竴涓嬶紝璇存槑鐢ㄤ唬鐞嗭細(xì)
鐒跺悗鍦╯pring鐨刟pplicationContext.xml鍔犱笂錛?br />
娉ㄦ剰鏄敤name錛屼笉鏄痠d銆?br />
鍙戝竷錛岃繍琛岋紝緇撴灉鎶涗簡涓敊
榪樺ソ錛岄棶棰樹笉澶э紝鎵懼埌鍔犲埌WEB-INF/lib涓嬪氨鍙互浜嗐?br />
寮濮嬫祴璇?br />
鎴愬姛鐨勮瘽錛?br />
鍚﹀垯錛?br />
鐒跺悗鍘繪暟鎹簱涓鐪嬶紝閮侀椃錛屾暟鎹病榪涙潵錛岃瘯浜哊涔咃紝鏈鍚庡彂鐜皊pring閲岃瀹氫箟涓猟ataSource銆傚師鏉essionFactory鐨勫畾涔夊彉涓哄涓嬶細(xì)
ok錛屼竴鍒囨甯搞傚埌榪欓噷錛屽氨鍐欏畬浜嗭紝鍙槸涓鴻鏄庢庢牱鐢∕yEclipse榪涜蹇熷紑鍙戯紝姣曠珶騫蟲椂鍋氶」鐩鐨勬槸榪涘害錛岃繕瑕佺洃綆¤川閲忥紝鏈変簡MyEclipse錛岀‘瀹炴柟渚夸笉灝戙?br />
http://www.cnblogs.com/zxub/archive/2006/08/03/466682.html
]]>
http://www.tkk7.com/beansoft/archive/2008/11/04/150877.html#238712
]]>