本篇文章是一篇关于代码、复制-的帖子
所用应的工具和环境。
jdk6+myeclipse6.5+tomcat6+mysql5+spring2.0+hibernate3+struts2
好了,开始我们的第一个ssh2之旅吧。
首先先分析一下我们的第一个ssh2项的目求需,单简的说就是有一张表单,让你填写用户名和密码,交提后存入数据库。就这么单简,呵呵。
第一步:。
我们首先建新一张mysql数据表
sql如下
CREATE TABLE mytest.users (
id INT NOT NULL,
username VARCHAR(50),
password VARCHAR(50),
PRIMARY KEY (id)
数据表创建好后构结如下:
当然我已有几天数据添加进去了
第二步
开打myeclipse,建新一个web项目,命名为ssh2-2, java ee标准我们择选5,如图
第三步 务必心小的一步
入导ssh2的各个jar,步调如下:
选中前当的项目后,点击菜单烂的myeclipse---project capablities----add hibernate项,跳出如图
务必按照图示择选,尤其是copy checkde……一项,然后点击next,默许next,去掉specify database……复选框,next,去掉create session……复选框,finish。
再次选中选中前当的项目后,点击菜单烂的myeclipse---project capablities----add spring项,跳出如图
然依务必按照如是择选,jar文件择选如下5个:
点击next,
以后按下择选,务必,
next后finsh可即。
然后入导struts2的jar
如下5个放到lib下
然后放入我们的数据库动驱jar mysql-connector-java-5.0.8-bin.jar 没得话附件中有
至此,包都入导毕完
第四步
配置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">
- <!-- struts2的惯例配置 -->
- <filter>
- <filter-name>struts2</filter-name>
- <filter-class>
- org.apache.struts2.dispatcher.FilterDispatcher
- </filter-class>
- </filter>
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <!-- 在web用应启动是主动构成一个spring容器 -->
- <listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- </listener-class>
- </listener>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
第五步:
从视图层手入;在webroot目录下建新一个save.jsp文件
如下代码;
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>My JSP 'save.jsp' starting page</title>
- </head>
- <body>
- <s:form action='saveUser'>
- <s:textfield name="user.username" label="用名"></s:textfield>
- <s:textfield name="user.password" label="密码"></s:textfield>
- <s:submit></s:submit>
- </s:form>
- </body>
- </html>
接下去因势利导,天然开辟action,及控制层
建新包com.test.action.user
建新一个SaveUserAction.java 代码步初如下:
- package com.test.action.user;
- import com.opensymphony.xwork2.ActionSupport;
- import com.test.bean.User;
- public class SaveUserAction extends ActionSupport {
- private User user;
- public User getUser() {
- return user;
- }
- public void setUser(User user) {
- this.user = user;
- }
- @Override
- public String execute() throws Exception
- {
- return SUCCESS;
- }
- }
于是,天然我们要建新一个bean
建新包com.test.bean 建新User.java
- package com.test.bean;
- public class User {
- private Integer id;
- private String username;
- private String password;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- 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;
- }
- }
好了,在现我们先把控制层的action放在这里,开辟业务层和速决层(DAO)
建新包com.test.dao
建类UserDAO.java
代码如下:
- package com.test.dao;
- import java.util.List;
- import com.test.bean.User;
- public interface UserDAO
- {
- public void saveUser(User user);
- public void removeUser(User user);
- public User findUserById(Integer id);
- public List<User> findAllUsers();
- public void updateUser(User user);
- }
这是一个接口
在开辟dao的实现类
建新包com.test.dao.impl
建类UserDAOImpl.java
代码:
- package com.test.dao.impl;
- import java.util.List;
- import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
- import com.test.bean.User;
- import com.test.dao.UserDAO;
- /**
- *
- * @author Administrator
- * 这个dao试用了hibernate的数据库操作语句
- */
- public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {
- /*
- * 取获有所数据
- */
- public List<User> findAllUsers() {
- String hql = "from User user order by user.id desc";
- return (List<User>) this.getHibernateTemplate().find(hql);
- }
- /*
- * 取获指定的数据
- */
- public User findUserById(Integer id) {
- User user = (User) this.getHibernateTemplate().get(User.class, id);
- return user;
- }
- public void removeUser(User user) {
- this.getHibernateTemplate().delete(user);
- }
- public void saveUser(User user) {
- this.getHibernateTemplate().save(user);
- }
- public void updateUser(User user) {
- this.getHibernateTemplate().update(user);
- }
- }
好了,数据速决层(dao)开辟好了,按次序,在现该应开辟业务层了,
建新包com.test.service
建类UserService.java
代码:
- package com.test.service;
- import java.util.List;
- import com.test.bean.User;
- public interface UserService
- {
- public List<User> findAll();
- public void save(User user);
- public void delete(User user);
- public User findById(Integer id);
- public void update(User user);
- }
这是一个接口类
然后写实现类
建新包
com.test.service.impl
建类
UserServiceImpl.java
- package com.test.service.impl;
- import java.util.List;
- import com.test.bean.User;
- import com.test.dao.UserDAO;
- import com.test.service.UserService;
- public class UserServiceImpl implements UserService {
- private UserDAO userDao;
- public UserDAO getUserDao() {
- return userDao;
- }
- public void setUserDao(UserDAO userDao) {
- this.userDao = userDao;
- }
- //服务层的法方
- public void delete(User user)
- {
- this.userDao.removeUser(user);
- }
- public List<User> findAll() {
- return this.userDao.findAllUsers();
- }
- public User findById(Integer id) {
- return this.userDao.findUserById(id);
- }
- public void save(User user)
- {
- this.userDao.saveUser(user);
- }
- public void update(User user)
- {
- this.userDao.updateUser(user);
- }
- }
业务和速决层都开辟好了,在现我们回到控制层action
修改action的代码如下:
- package com.test.action.user;
- import com.opensymphony.xwork2.ActionSupport;
- import com.test.bean.User;
- import com.test.service.*;
- public class SaveUserAction extends ActionSupport {
- private User user;
- private UserService service;
- public UserService getService() {
- return service;
- }
- public void setService(UserService service) {
- this.service = service;
- }
- public User getUser() {
- return user;
- }
- public void setUser(User user) {
- this.user = user;
- }
- @Override
- public String execute() throws Exception
- {
- this.service.save(this.user);
- return SUCCESS;
- }
- }
修改struts.xml
如下
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
- "http://struts.apache.org/dtds/struts-2.0.dtd">
- <struts>
- <package name="user" extends="struts-default">
- <action name="saveUser" class="saveUserAction">
- <result name="success" type="redirect">listUser.action</result>
- <result name="input">/saveUser.jsp</result>
- </action>
- </package>
- </struts>
至此,我们已开辟好了一个典范的mvc项目,在现的任务是将strust2和hibernate都放入spring容器理管,
在现我们的项目构结如下:
然后修改 applicationContext.xml
代码如下 注意释注
- <?xml version="1.0" encoding="UTF-8"?>
- <beans
- xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
- <!-- 配置数据源 -->
- <!-- 一下别分配置了 数据库动驱 数据库路径 用户名 密码等 -->
- <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/mytest"></property>
- <property name="username" value="root"></property>
- <property name="password" value="123456"></property>
- <property name="maxActive" value="100"></property>
- <property name="maxIdle" value="30"></property>
- <property name="maxWait" value="500"></property>
- <property name="defaultAutoCommit" value="true"></property>
- </bean>
- <!-- 一下配置sessionFactory 这个货色曾经是在hibernate中义定的 如今交给了spring理管 -->
- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="dataSource" ref="dataSource"></property>
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
- <prop key="hibernate.show_sql">true</prop>
- </props>
- </property>
- <property name="mappingResources">
- <list>
- <value>com/test/bean/User.hbm.xml</value>
- </list>
- </property>
- </bean>
- <!-- 以下使一些用到的类 在用应类中均没有实例化这个类,都交给了spring理管 -->
- <!-- DAObean -->
- <bean id="userDao" class="com.test.dao.impl.UserDAOImpl" scope="singleton">
- <property name="sessionFactory" ref="sessionFactory"></property>
- </bean>
- <!-- DAObean -->
- <bean id="userService" class="com.test.service.impl.UserServiceImpl">
- <property name="userDao" ref="userDao"></property>
- </bean>
- <bean id="saveUserAction" class="com.test.action.user.SaveUserAction">
- <property name="service" ref="userService"></property>
- </bean>
- </beans>
好了 到此为止,ssh2的整合已完成了,布发后开启服务器吧,
不对,服务器开启后有常异
这里是包冲突问题
到项的目lib目录下,
删除选中的jar可即
ok了 可以测试了
http://localhost:8080/ssh2-2/save.jsp
来自http://www.360doc.com/content/09/0817/15/219800_4990487.shtml
文章结束给大家分享下程序员的一些笑话语录:
一边用着越狱的ip,一边拜乔帮主的果粉自以为是果粉,其实在乔帮主的眼里是不折不扣的叛徒。