SSH2(Struts2.1+hibernate4.1+spring4.1)
35129 ワード
cssレイアウト後hibernate 3中国語ドキュメントhttp://download.csdn.net/detail/wsk1103/9657379struts 2を使用する.1+hibernate4.1+spring4.1、簡単な登録と登録を持つ小さなプログラムステップ1を実現する.myeclipce 2016 CI 3を使用してssh 2というssh 2プロジェクトを作成する.myeclipceのhibernateからMySQLへの接続を作成します.myeclipceのウィザード機能を使用してstruts 2を作成します.1フレーム4.spring 4を作成する.1フレーム5.hibernate 4を作成する.1フレーム6.hibernateの反射によりUserを生成する.JAva(POJO)とUser.hbm.xml 7. アプリケーションの変更xmlファイル8.データベースと操作するためのDAO層コードを作成する.サービス層コード(DAO層を接続するための)10を記述する.アクション層(コミュニケーションjspとサービス層)11を作成する.アプリケーションContextへのコードの追加を続行します.xml中(注入)12.struts 2を変更する.xml(jsp操作に応答)13.jsp層プロジェクト構造図実現:1.myeclipceを使用してssh 2というプロジェクトを作成します.myeclipceにhibernate接続MySQLの接続を作成します.2.1作成方法Windows->perspective->Open Perspective->MyEclipse Hibernate 2.2図の空白を右クリック->new新しいデータベース接続2.3接続を作成2.4 navicat forMySQLを使用してhibernateという名前のデータベースを作成し、userのテーブル3を作成します.ウィザードを使用してstruts 2を自動的にインポートする.1パックURLを図のように4に変更する.ウィザードを使用してspring 4を直接作成します.1、デフォルト設定5を使用します.ウィザードを使用してhibernate 4を直接作成します.15.1先ほど作成したhibernate-MySQLの接続を使用し、finish6をクリックします.先ほど作成したuserテーブルで反射してuserPOJOとuserを生成する.hbm.xml(自動生成後にアプリケーションContext.xmlに自動注入)6.1反射操作:userテーブル右ボタン->hibernate reverse engineering、情報記入後finish7.アプリケーションの変更xmlファイル、文中の赤字部分
8.hibernate操作データベース8.1を介してインタフェースを記述するためのDAO層の記述
8.2実装インタフェース
9.DAO層を接続するためのサービス層の作成
10.jspとサービス層を接続するためのaction層の作成
11.アプリケーションContextを変更する.xmlファイル、注入を実現し、
合計:アプリケーションContext.xml
12.struts 2を修正する.xml、本文の赤い部分
13.JSP 13.1作成登録画面login.jsp
13.2登録画面registerを作成する.jsp
13.3ログイン成功ページの作成success.jsp
13.4ログイン失敗ページerrorを作成する.jsp
まとめ:1.初めて配置したとき、アプリケーションContextで忘れました.xmlで追加
データベースに接続するときにドライバが見つからずorgをエラーする.hibernate.exception.GenericJDBCException: Could not open connection 2. Spring統合hibernate 4.1の場合、セッションを取得する場合はgetCurrentSessionを使用し、openSessionを使用しないでください.(理由とgetCurrentSessionの使用方法については、接続を参照してください.http://blog.csdn.net/wsk1103/article/details/53222352)
このセッションでは、トランザクションが自動的にオンになり、トランザクション3がオフになります.applicationContext.xml注入の場合、propertyのnameはこのクラスに存在する必要があり、getメソッドとsetメソッド4を持つ必要がある.プロジェクトのダウンロードアドレスhttp://download.csdn.net/detail/wsk1103/9633990 5. 一時バージョンhttp://blog.csdn.net/wsk1103/article/details/52783346
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
property>// , ,
<property name="url"
value="jdbc:mysql://localhost:3306/hibernate">
property>
<property name="username" value="root">property>
<property name="password" value="123456">property>
bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
prop>
<prop key="hibernate.show_sql">trueprop>// sql, ,
<prop key="hibernate.hbm2ddl.auto">updateprop>// ,
props>
property>
<property name="mappingResources">
<list>
<value>com/wsk/bean/User.hbm.xmlvalue>list>
property>bean>
8.hibernate操作データベース8.1を介してインタフェースを記述するためのDAO層の記述
package com.wsk.dao;
public interface UserDAO{
public void register(T t);//
public boolean login(String user);//
}
8.2実装インタフェース
package com.wsk.dao;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
public class UserDAOImpl implements UserDAO {
private SessionFactory sessionFactory;
// ,
public boolean login(String user) {
//
List list=this.getSession().createQuery(user).list();
//
if (!list.isEmpty()){
//
Iterator iterator=list.iterator();
String getString=(String) iterator.next();
if (getString!=null||getString!="")
return true;
}
return false;
}
//
public void register(T t) {
//
this.getSession().save(t);
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public Session getSession(){
//hibernate4 openSession, getCurrentSession
return sessionFactory.openSession();
}
}
9.DAO層を接続するためのサービス層の作成
package com.wsk.service;
import com.wsk.dao.UserDAOImpl;
public class Service {
private UserDAOImpl userDAOImpl;
public boolean doLogin(String name,String password){
if (name==null||password==null)
return false;
String sqlString="select u.password from "
+ "com.wsk.bean.User u where u.name='"+name
+"' and password='"+password+"'";
if (userDAOImpl.login(sqlString)){
return true;
}
return false;
}
public void register(T user){
userDAOImpl.register(user);
}
public UserDAOImpl getUserDAOImpl() {
return userDAOImpl;
}
public void setUserDAOImpl(UserDAOImpl userDAOImpl) {
this.userDAOImpl = userDAOImpl;
}
}
10.jspとサービス層を接続するためのaction層の作成
package com.wsk.action;
import com.opensymphony.xwork2.ActionSupport;
import com.wsk.bean.User;
import com.wsk.service.Service;
public class UserAction extends ActionSupport{
private String name;
private String password;
User user=new User();
Service service=new Service();
public String login(){
if (service.doLogin(name, password)){
return SUCCESS;
}
return ERROR;
}
public String register(){
if (name.isEmpty()||name==""||password.isEmpty()||password=="")
return ERROR;
user.setName(name);
user.setPassword(password);
service.register(user);
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Service getService() {
return service;
}
public void setService(Service service) {
this.service = service;
}
}
11.アプリケーションContextを変更する.xmlファイル、注入を実現し、
id="dao" class="com.wsk.dao.UserDAOImpl">
<property name="sessionFactory" ref="sessionFactory">property>
id="service" class="com.wsk.service.Service">
<property name="userDAOImpl" ref="dao">property>
id="useraction" class="com.wsk.action.UserAction">
<property name="service" ref="service">property>
合計:アプリケーションContext.xml
version="1.0" encoding="UTF-8"?>
"http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd" xmlns:tx="http://www.springframework.org/schema/tx">
id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
property>
<property name="url"
value="jdbc:mysql://localhost:3306/hibernate">
property>
<property name="username" value="root">property>
<property name="password" value="123456">property>
id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
property>
<property name="hibernateProperties">
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
prop>
<prop key="hibernate.show_sql">trueprop>
<prop key="hibernate.hbm2ddl.auto">updateprop>
property>
<property name="mappingResources">
<list>
com/wsk/bean/User.hbm.xml list>
property>
id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
transaction-manager="transactionManager" />
id="dao" class="com.wsk.dao.UserDAOImpl">
<property name="sessionFactory" ref="sessionFactory">property>
id="service" class="com.wsk.service.Service">
<property name="userDAOImpl" ref="dao">property>
id="useraction" class="com.wsk.action.UserAction">
<property name="service" ref="service">property>
12.struts 2を修正する.xml、本文の赤い部分
<struts>
<package name="1" extends="struts-default">
<action name="useraction" class="com.wsk.action.UserAction">
<result>success.jspresult>
<result name="error">error.jspresult>
action>
package>
struts>
13.JSP 13.1作成登録画面login.jsp
"java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>logintitle>
head>
<body>
<form action="useraction!login" method="post">
:<input type="text" name="name"><br>
:<input type="password" name="password"><br>
<input type="submit" value=" "><br>
form>
<a href="register.jsp"> a>
bod1y>
html>
13.2登録画面registerを作成する.jsp
"java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>registertitle>
head>
<body>
<form action="useraction!register" method="post">
:<input type="text" name="name"><br>
:<input type="password" name="password"><br>
<input type="submit" value=" ">
form>
<a href="index.jsp"> a>
body>
html>
13.3ログイン成功ページの作成success.jsp
"java" import="java.util.*" pageEncoding="UTF-8"%>
"/struts-tags" prefix="s"%>
<html>
<head>
<title>successtitle>
head>
<body>
<s:property value="name"/> welcom.<br>
<a href="index.jsp"> a>
body>
html>
13.4ログイン失敗ページerrorを作成する.jsp
"java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>errortitle>
head>
<body>
<br>
<a href="index.jsp"> a>
body>
html>
まとめ:1.初めて配置したとき、アプリケーションContextで忘れました.xmlで追加
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
property>
データベースに接続するときにドライバが見つからずorgをエラーする.hibernate.exception.GenericJDBCException: Could not open connection 2. Spring統合hibernate 4.1の場合、セッションを取得する場合はgetCurrentSessionを使用し、openSessionを使用しないでください.(理由とgetCurrentSessionの使用方法については、接続を参照してください.http://blog.csdn.net/wsk1103/article/details/53222352)
public Session getSession(){
return sessionFactory.getCurrentSession();
}
このセッションでは、トランザクションが自動的にオンになり、トランザクション3がオフになります.applicationContext.xml注入の場合、propertyのnameはこのクラスに存在する必要があり、getメソッドとsetメソッド4を持つ必要がある.プロジェクトのダウンロードアドレスhttp://download.csdn.net/detail/wsk1103/9633990 5. 一時バージョンhttp://blog.csdn.net/wsk1103/article/details/52783346