ImageVerifierCode 换一换
格式:DOCX , 页数:67 ,大小:66KB ,
资源ID:8182959      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8182959.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SSH开发 用户登陆和注册.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SSH开发 用户登陆和注册.docx

1、SSH开发 用户登陆和注册在实际项目中,我们经常是在项目启动前,先统一每个开发人员的开发环境,规范好每个开发人员的工程以及相关的目录结构和配置。接下来我们介绍怎么搭建一个统一的SSH项目工程,方便每个开发人员在统一的工程环境下开发。针对我们的样例项目,我们主要配置如下内容:1、配置MyEclipse中的数据源2、在工程中添加Struts组件3、在工程中添加Spring组件4、在工程中添加Hibernate组件5、处理Spring组件jar文件和Hibernate组件jar文件之间的冲突接下来一个个的介绍具体的配置。1 给在MyEclipse上面配置数据源i) 点击 Window-Open Pe

2、rspetive-MyEclipse Database Explorerii) 在DB Browser中,点击鼠标右键,并选择里面的 New,出现如下界面 iii) 接下来做如下配置:a)在Driver template选择自己使用的数据库(MySQL Connector/J)b)在Driver Name后面定义该数据源的名称.(DemoMySQL)c)更改对应的Connection URL(jdbc:mysql:/localhost:3306/book)d)点击 Add JARs按钮,选择数据库连接驱动e)在User Name和Password里面,输入用户名和密码f)为了方便,选择 Sav

3、e password多选框如下是配置成功后的界面 iv) 点击 Finish,完成数据源的配置项目框架搭建步骤:1 用MyEclipse建立一个Web project(DemoSSH)2 鼠标右击工程-MyEclipse-Add Struts Capabilities,出现如下界面: i) 选择struts的版本1.2ii) 在Base package for new classes输入框里面,输入自己的包路径.book.demo.struts3 鼠标右击工程-MyEclipse-Add Spring Capabilities,出现如下界面: 如图显示,选择上面的选项:i) Spring ve

4、rsion :Spring 2ii) MyEclipse Librariesiii) 在JAR Library Installation里面,选择 Copy checked .4 点击下一步,出现如下界面: 点击Finish5 鼠标右击工程-Add Hibernate Capabilities,出现如下界面: 做如上图显示的选择,点击 Next ,进入如下界面: 6选择 Spring configuration file,点击 Next 7选择 Existing Spring configuration file, 在SessionFactory ID后面的输入框输入session工厂名称,可

5、以自己起名.我们这里输入sessionFactory. 点击 Next,进入下面界面 8在Bean Id后面输入数据源的id,可以自己定义,我们这里输入 dataSource.在DB Driver里面,选择我们在前面配置的数据源,点击 Next ,进入下面界面: 9在java package中输入Hibernate Session Factory类的包名,如果没有,可以点New生成一个新的包路径.在Class Name后面,输入即将生成的Hibernate Session Factory的类名,我们这是HibernateSessionFactory.选择Java5做为我们编译的JDK点 Fin

6、ish 完成到这里,我们完成了Struts+Spring+Hibernate的框架搭建,还有最后一步,因为MyEclipse加入的Spring liberary和Hibernate3的liberary有冲突,不能正常运行,要解决这问题,需要将工程lib目录下(WebRoot/WEB-INF/lib)的jar文件都删除,数据库驱动程序除外,然后用将光盘里整理的jar文件copy进去.copy完jar文件,就完成了框架的所有搭建.接下来,我们介绍怎么样在这框架的基础上,开发我们的样例功能模块.上章我们已经解释了SSH框架的搭建,现在我们开始在搭建好的SSH框架下进行开发。首先我们要建好需求中定义的

7、数据库,并生成对应的POJO对象以及对象和表的映射文件。建表脚本1.建立数据库Create database demodb2.用户表(TUSER)CREATE TABLE demodb.TUSER (ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,USER_NAME VARCHAR(10) NOT NULL,NAME VARCHAR(30) NOT NULL,EMAIL VARCHAR(50),PHONE VARCHAR(20),PASSWORD VARCHAR(10) NOT NULL,PRIMARY KEY (ID),UNIQUE INDEX Ind

8、ex_2(USER_NAME)3.商品表(SHOP)CREATE TABLE demodb.SHOP (ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,NAME VARCHAR(50) NOT NULL,PRICE DOUBLE NOT NULL DEFAULT 0.0,SIMPLE_DESC VARCHAR(500) NOT NULL,ALL_DESC TEXT NOT NULL,PRIMARY KEY (ID)4.订单主表(TORDER)CREATE TABLE demodb.TORDER (ID INTEGER UNSIGNED NOT NULL

9、AUTO_INCREMENT,USER_ID INTEGER UNSIGNED NOT NULL,ORDER_TIME DATETIME NOT NULL,R_ADDRESS VARCHAR(200) NOT NULL,R_NAME VARCHAR(50) NOT NULL,R_PHONE VARCHAR(20) NOT NULL,PRIMARY KEY (ID),CONSTRAINT FK_ORDER_1 FOREIGN KEY FK_ORDER_1 (USER_ID)REFERENCES tuser (ID)ON DELETE RESTRICTON UPDATE RESTRICT)5.订单

10、详细表(ORDER_DETAIL)CREATE TABLE demodb.ORDER_DETAIL (ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,ORDER_ID INTEGER UNSIGNED NOT NULL,SHOP_ID INTEGER UNSIGNED NOT NULL,AMOUNT INTEGER UNSIGNED NOT NULL DEFAULT 1,S_PRICE DOUBLE NOT NULL DEFAULT 0.0,A_PRICE DOUBLE NOT NULL DEFAULT 0.0,PRIMARY KEY (ID),CONS

11、TRAINT FK_ORDER_DETAIL_1 FOREIGN KEY FK_ORDER_DETAIL_1 (ORDER_ID)REFERENCES torder (ID)ON DELETE RESTRICTON UPDATE RESTRICT,CONSTRAINT FK_ORDER_DETAIL_2 FOREIGN KEY FK_ORDER_DETAIL_2 (SHOP_ID)REFERENCES shop (ID)ON DELETE RESTRICTON UPDATE RESTRICT)6.日志表(LOG)CREATE TABLE demodb.LOG (ID INTEGER UNSIG

12、NED NOT NULL AUTO_INCREMENT,USER_ID INTEGER UNSIGNED,OPERATE VARCHAR(50) NOT NULL,TIME DATETIME NOT NULL,SHOP_ID INTEGER UNSIGNED,PRIMARY KEY (ID),CONSTRAINT FK_LOG_1 FOREIGN KEY FK_LOG_1 (USER_ID)REFERENCES tuser (ID)ON DELETE RESTRICTON UPDATE RESTRICT,CONSTRAINT FK_LOG_2 FOREIGN KEY FK_LOG_2 (SHO

13、P_ID)REFERENCES shop (ID)ON DELETE RESTRICTON UPDATE RESTRICT)7.用MyEclipse Hibernate插件,生成初步的POJO对象和相关的映射xml文件1.在数据库中,建立一个数据库demoDB,运行上面的数据库脚本,在demoDB建立项目需要的表2.在MyEclipse中,配置数据源i)window-open perspective-MyEclipse Database Explorerii)在DB Browser窗口中,点击鼠标右键,选择new,出现如下窗口 如上图填写数据库连接的配置,点 Finish 按钮i)在DB Br

14、owser窗口中的新配置的sshDemo节点上,点击鼠标右键-Open Connection,如果配置成功,可以展开如下类似界面,在demodb中可以找到用数据库脚本生成的表 ii)2.用MyEclipse的Hibernate插件,生成所有的POJO对象和映射xml文件i)在DB Browser窗口中,选中demodb里面的所有表,点击鼠标右键,出现如下界面: ii)如上图进行相关选项的配置,注意Java src folder后面的输入内容,是要指定工程里面的src目录,我们这里是 sshDemo/src. 配置好后,点击 Next 按钮,显示如下界面 iii)在上图的ID Generator

15、后面,选择主键生成类型 increment,点击 Finish按钮,完成POJO对象,map xml文件以及基本DAO文件的生成,可以在sshDemo工厂src的.book.demo.hibernate.dao包下,找到相关的代码.比如Tuser.java-tuser对应的POJO对象; Tuser.hbm.xml-Tuser POJO对象和tuser表的map xml; TuserDAO.java-tuser的DAO操作类3.生成的map xml文件中,class标签中有个catalog属性,在Oracle,SQL Server数据库中是有效的,可是在MySQL数据库中,会影响Hiberna

16、te具体操作中SQL语句的生成.在这里我们需要将它删除掉.比如Tuser.hbm.xml中有如下内容:我们需要将catalog=”demodb”删除,最后结果如下:对其它的map xml文件,也要做同样的处理打开一个自动生成的DAO,我们可以发现,里面已经生成了单个POJO对象的所有操作方法,比如TuserDAO.java里面,已经包含了对Tuser对象进行新增,修改,删除,根据主键查询,根据指定属性和值进行查询,以及根据每个属性进行查询.可是,生成的DAO,没有提供灵活多变的sql语句的查询,比如多个对象的联合查询,还有分页功能也没有实现.接下来的工作,是对这些自动生成的DAO,添加上面缺少

17、的功能事项.新增一个基类DAO,BaseDAO.java,代码如下:/* */package .book.demo.hibernate.dao;import java.sql.SQLException;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Session;import org.sp

18、ringframework.orm.hibernate3.HibernateCallback;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;/* author Noble.Yang*/public class BaseDAO extends HibernateDaoSupport / 默认分页大小private int RECORDS_PER_PAGE = 5;public int getPages(String queryStr, int pageSize, Map filterMap)throws

19、 HibernateException / 剔除掉order by部分,使得执行语句为简单的select count(*)from.int length = queryStr.indexOf(order by) 0 ? queryStr.indexOf(order by) : queryStr.length();String hql = select count(*) + queryStr.substring(queryStr.indexOf(from), length);try Session session = this.getSession();Query query = session

20、.createQuery(hql);setFilterToQuery(query, filterMap);List list = query.list();int size = 0;if (list.size() 0) size = (Integer) list.get(0).intValue();session.close();return getPages(size, pageSize); catch (HibernateException e) throw e;public int getRecordCount(String queryStr) throws HibernateExcep

21、tion int length = queryStr.indexOf(order by) 0 ? queryStr.indexOf(order by) : queryStr.length();String hql = select count(*) + queryStr.substring(queryStr.indexOf(from), length);try Session session = this.getSession();Query query = session.createQuery(hql);List list = query.list();int size = 0;if (l

22、ist.size() 0) / size = (Integer) list.get(0);size = (Integer) list.get(0).intValue();session.close();return size; catch (HibernateException e) throw e;/* Description: 查询* * param queryStr* hql语句* param targetPage* 当前查询页(当值为-1时,为不分页查询,否则为分页查询)* param pagesize* 分页大小* return*/public List getAllByHql(fi

23、nal String queryStr, final int targetPage, final int pagesize)throws HibernateException if (targetPage = 0 & targetPage != -1 | pagesize 1)return null;try / 这里使用的是Hibernate的回调方式,目的是让Spring自己去管理Session/ 如果不用这种方式,可以自己用getSession()方法得到Session进行操作,如同其它方法中的使用/ 但是要注意,Session用完后,要及时close session,否则会有数据库连接不

24、能及时释放问题return (List) this.getHibernateTemplate().execute(new HibernateCallback() public Object doInHibernate(Session session) throws HibernateException,SQLException Query query = session.createQuery(queryStr);if (targetPage != -1) query.setFirstResult(targetPage - 1) * pagesize);query.setMaxResults(

25、pagesize);return query.list();); catch (HibernateException e) throw e;/* Description: 查询* * param queryStr* hql语句* param targetPage* 当前查询页(当值为-1时,为不分页查询,否则为分页查询)* param pagesize* 分页大小* return*/public List getAllByHql(String queryStr, int targetPage, int pagesize,Map filterMap) throws HibernateException List list = null

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1