用struts+spring+hibernate/ibatis 框架配合,写一个输入用户名、密码,然后到数据库校验的功能
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用struts+spring+hibernate/ibatis 框架配合,写一个输入用户名、密码,然后到数据库校验的功能相关的知识,希望对你有一定的参考价值。
1、分别用hibernate和ibatis 做ORM封装;
2、页面要有ajax,后台调用功能;
3、要有注册功能,提供用户几个字段,注册之后能写入到数据库中。
4、登录要到数据库去验证用户是否存在,分别有不同的提示语。
5、注册页面有js验证数据的有效性
我想要有具体的步骤,比如每一步该做些什么
2.搭建底层的框架,调试框架是否可用,可以调用dao类操作数据库,看能否返回数据。
3.编写登录页面
4.编写接收数据端,读取前端数据,调用后端方法处理。
5.返回处理结果,根据结果作出判断,显示不同的结果在前端显示不同的提示。
js验证数据有效性与整个流程没太大关系,如果数据有效,则发送数据,否则可以提示数据不完整。 参考技术B 你是要源代码还是什么啊?
源代码去 open 社区下一个就行了啊追问
我是新手,刚接触这东西,还是个实习生,但公司给出一个小项目来检测最近几个礼拜的学习情况,所以麻烦要的是详细的步骤,代码这东西应该在网上可以找到,但我还是想自己去练习着写。
追答哦 不错。多写写有好处。
你可以从页面入手。View
如何传递参数。如何保存在Dto 数据传输对象中,如何传递数据。action——Controler
然后业务逻辑。 Service——Modle
传递到DAO中 数据库访问对象
再就是添加到数据库中。
一个一个的往里跟就行了啊。
在写的时候可以定义一些伪代码,只是定义有这个方法。具体实现等后面再写。把思路理清就可以了。
刚开始写。比较难后面就轻松多了。加油!
能教我先怎么去搭建框架不?
追答就是导入jar 包,然后配置一个下Struts2 的Filter,Spring的applicationContext.xml 再加上Hibernate的SessionFactiory
Struts2的action 和 Hibernate的Session对象都是交给spring创建的。
注意一下。Spring创建的对象默认是单实例的。所以要把struts2的action配置成多利的。还有就是配置一下hibernate的事务管理。Aop实现。
其他就没什么了啊。
Struts+Spring+Hibernate处理Lob(Blob,Clob)
在使用struts+spring+hibernate的开发中,有些时候用户会有数据库存储文件的需求,在数据库中一般会采用Blob字段或Clob字段来存储二进制图片、流媒体或文件。现就将在实际开发中遇到的问题及解决方法告之。
一、问题需求:
1.在持久化类中字段该用什么类型?
2.在Struts中文件对应的数据类型是什么?
3.在Hibernate中字段对应的类型是什么?
4.如何在Spring中处理这些文件?
二、解决方法:
1.在数据库中这些文件最终是以字节的形式存储二进制对象,所以在持久化类中将相应的属性定义为byte[]类型。
2.在Struts中可以使用<html:file property="" />标签来上传文件,所以与之对应的ActionForm的属性类型为:FormFile(org.apache.struts.upload.FormFile)类型,即使是使用了动态Form同理也是使用该类型.
提示:同时要将form标签修改为<html:form action="/Action.do" method="post" enctype="multipart/form-data"> ,以支持文件上传后取得上传数据。在给持久对象赋值时只需调用(FormFile) form.get("property")).getFileData();方法即可返回byte[]。
3、在Hibernate中文件列对应的类型可以是:
(1)org.springframework.orm.hibernate3.support.BlobByteArrayType
(2)org.springframework.orm.hibernate3.support.ClobStringType
(3)clob
(4)blob
(5)binary
什么时候用BlobBYteArrayType?什么时候用ClobStringType?
一般如果要处理的对象是数据库字段类型是blob时(主要是图片,二进制对象等),映射文件设置为:org.springframework.orm.hibernate3.support.BlobByteArrayType 数据库字段是clob(大文本对象)
类型时,要将java的属性的类型定为String,映射文件设置为: org.springframework.orm.hibernate3.support.ClobStringType。
4.如果在spring上要使用Struts中自带的上传功能必须在spring的配置文件中加以声明.否者将会出现 java.lang.IllegalStateException: No LobHandler found for configuration - lobHandler property
must be set on LocalSessionFactoryBean异常。配置如下:
(1) 声明一个处理句柄:
1 <bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true" />
(2)在sessionFactory中注入lobHandler:
1 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 2 <property name="lobHandler" ref="lobHandler"/> 3 </bean>
提示: 指定lobHandler时,对于MySQL、DB2、MS SQL Server、Oracle 10g,使用DefaultLobHandler即可,而Oracle 9i,则可以使用OracleLobHandler。因为Oracle9i处理lob的方式和不太一样,所以这里要用spring提供的SimpleNativeJdbcExtractor.处理Oracle9i lob类型的特殊声明:
1 <bean id="nativeJdbcExtractor" lazy-init="true" class="org.springframework.jdbc.support.nativejdbc. 2 SimpleNativeJdbcExtractor"/> 3 4 <bean id="lobHandler" lazy-init="true" class="org.springframework.jdbc.support.lob.OracleLobHandler"> 5 <property name="nativeJdbcExtractor"> 6 <ref bean="nativeJdbcExtractor"/> 7 </property> 8 </bean> 9 10 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 11 12 <!-- 为处理Blob类型字段的句柄声明 --> 13 <property name="lobHandler"> 14 <ref local="lobHandler" /> 15 </property> 16 </bean>
同时还应该使用对应的JDBC驱动。
Clob字段定义:<property name="属性名" column="列名" type="org.springframework.orm.hibernate.support.ClobStringType" length="1048"/>这里的length是指字节,最大可以到2G.该字段在java对象中声明为String类型。
如果使用的是mysql数据库其默认的上传文件大小只有1047552字节:如果上传的文件大于1047552字节则会出现异常org.springframework.jdbc.UncategorizedSQLException: You can change this value on the server by setting the max_allowed_packet‘ variable.根据提示可以修改mysql数据库的max_allowed_packet属性大小。
打开my.ini文件中找到# SERVER SECTION后在port=3306下面加上max_allowed_packet=?M 修改完后重启mysql服务即可成功上传。
以上是关于用struts+spring+hibernate/ibatis 框架配合,写一个输入用户名、密码,然后到数据库校验的功能的主要内容,如果未能解决你的问题,请参考以下文章
用struts+spring+hibernate/ibatis 框架配合,写一个输入用户名、密码,然后到数据库校验的功能
Struts+Spring+Hibernate处理Lob(Blob,Clob)
spring2.5+hibernate3.2+struts2.0插入数据时调用两次sql语句