JAVA三大框架知识Word下载.docx
- 文档编号:20698716
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:21
- 大小:22.63KB
JAVA三大框架知识Word下载.docx
《JAVA三大框架知识Word下载.docx》由会员分享,可在线阅读,更多相关《JAVA三大框架知识Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
通常每个包都应该继承struts-default包,struts-default包是由struts内置的,它定义了struts2内部的众多拦截器和Result类型。
struts2的处理流程
FilterDispatcher---》Interceptor---》Action---》Result---》Jsp/html
Struts2内置的一些拦截器或用户自定义拦截器用户编写的action类,类似struts1中的Action************************************************************************************************
struts中action后如果没有class则默认访问ActionSupport类的excute()方法,该方法的返回值与其下方的result中的name值进行比较,如果result后没有写name则默认为name=“success”,如果excute()方法的返回值与name的值相等则跳转到result后对象的相应JSP页面。
如果struts中action后写相应的类那么此类需要继承ActionSupport这个类,并覆写其中excute()方法,excute()方法的返回值为字符串类型,返回值与result中的值进行比较,然后跳转到后边相应的JSP页面。
jar包拷贝到项目中构建路径之后,部署程序,点击浏览,如果struts21\WEB-INF\lib路径下没有相关的jar包那么解决办法为:
将jar包直接拷贝到本项目中的web-inf/lib下。
访问项目的时候访问路径要根据struts的配置中命名空间进行访问,访问是逐层往回访问的,只要访问路径最前面的路径是命名空间的路径就可以访问成功。
例如:
明明空间是/aaa,则访问的时候输入/aaa/bbb/ccc也可以访问成功。
action接口定义了5个字符串常量:
publicstaticStringSUCCESS="
success"
;
publicstaticStringNONE="
none"
publicstaticStringERROR="
error"
publicstaticStringINPUT="
input"
publicstaticStringLOGIN="
login"
在excute()方法中return值可以直接写常量
例如:
returnSUCCESS;
result配置:
struts2中提供了多种结果类型,如:
dispatcher(默认值):
表示转发。
redirect:
表示重定向。
redirectAction:
重定向到其他的action。
plainText:
页面以源码的形式展现。
struts配置中action有method属性,method属性值是所访问的类的一个方法名,method属性值是什么,访问类的时候就调用哪个方法。
struts中要修改访问时的后缀名,语句为:
<
struts>
constantname="
struts.action.extension"
value="
do"
>
/constant>
/struts>
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。
如:
do,go"
/>
如果Action中存在多个方法时,我们可以使用!
+方法名调用指定方法。
全局变量,访问的时候如果在action中没用找到result值那么会到全局变量中去寻找
package....>
global-results>
resultname="
message"
/message.jsp<
/result>
/global-results>
/package>
includefile="
struts-user.xml"
struts-order.xml"
通过这种方式,我们就可以将Struts2的Action按模块配置在多个配置文件中。
struts2中表单提交的属性名可以直接在类中定义成变量,并必须为变量设置get和set方法。
表单的action就可以直接提交到struts的配置文件的action访问路径。
struts2标签:
%@taglibprefix="
s"
uri="
/struts-tags"
%>
Hibernate
hibernate项目的创建流程:
1.将hibernate的jar包以及mysql的jar包拷贝的项目中
2.将user.hbm.xml拷贝到实体类中并将名字改为对应的类名
3.配置user.hbm.xml中的内容配置要生成表的相应的字段以及主键:
hibernate-mapping>
classname="
cn.cgq.domain.Student"
table="
t_student"
idname="
id"
generatorclass="
native"
/generator>
/id>
propertyname="
name"
column="
student_name"
length="
30"
/property>
age"
/class>
/hibernate-mapping>
4.将hibernate的配置文件hibernate.cfg.xml导入到src路径下,并配置:
hibernate-configuration>
session-factory>
hibernate.connection.driver_class"
com.mysql.jdbc.Driver<
hibernate.connection.url"
jdbc:
mysql:
//localhost:
3306/hibernate<
hibernate.connection.username"
root<
hibernate.connection.password"
hibernate.dialect"
org.hibernate.dialect.MySQLDialect<
mappingresource="
cn/cgq/domain/Student.hbm.xml"
/session-factory>
/hibernate-configuration>
regedit搜索注册表
hibernate中创建一个学生对象,把学生对象保存到数据库中的步骤:
1.读取hibernate.cfg.xml配置文件
Configurationcfg=newConfiguration().configure();
2.创建一个会话工厂
SessionFactorysf=cfg.buildSessionFactory();
3.从会话工厂取得会话
Sessionsession=sf.openSession();
4.开启事务
session.beginTransaction();
5.持久化学生对象
6.提交事务
session.getTransaction().commit();
7.释放资源
session.close();
在查询数据的时候用session.load()方法会形成懒加载,在输出的时候才会发出SQL语句,而session.get()方法则不会形成,使用session.get()方法会直接发出sql语句解决懒加载的办法是在session资源关闭之前输出所要查询的对象,那么session资源关闭之后仍然可以输出所要查询的对象。
many-to-onename="
classes"
classid"
cascade="
all"
/many-to-one>
表示的是多对一的关系在多的那个类的配置文件中加入
************************************************************************************************
一对一的关系中在只有主键的那个类中加入
one-to-onename="
idCard"
/one-to-one>
一对一的关系在有外键和主键的类中加入
foreign"
paramname="
property"
person<
/param>
person"
constrained="
true"
在一对一的外键唯一
在只有主键的类中加入
wife"
property-ref="
husband"
在有主键和外键的类中加入
unique="
在一对多的关系中
在一端配置文件中加入:
setname="
pupils"
keycolumn="
collageid"
/key>
one-to-manyclass="
Pupil"
/set>
如果要双向关联需要在多端加入:
Collage"
特别注意的是:
两端指定的外键列名要相同要不然会出现两列都是外键
在多对多的关系中
两端的配置文件:
teachers"
teacher_course"
courseid"
>
many-to-manycolumn="
teacherid"
class="
Teacher"
/many-to-many>
courses"
Course"
两端的配置是相反的
组件映射:
映射文件:
User"
t_user"
i_id"
32"
v_name"
componentname="
contact"
email"
address"
zipCode"
contactTel"
/component>
其中contact不会被创建成表,它里面的这些属性会自动创建成相应的字段,因为它不是实体类,它只是实体类的一个组成部分。
复合主键也称之为联合主键,就是多个字段构成唯一性。
复合(联合)主键映射
通常将复合主键相关的属性,单独放到一个类中:
此类必须实现序列化接口覆写hashcode和equals方法
hibernate中hql查询语句:
1.单一属性查询
//返回结果集属性列表,元素类型和实体类中相应的属性类型一致
Listcourses=session.createQuery("
selectnamefromCourse"
).list();
for(Iteratoriter=courses.iterator();
iter.hasNext();
){
Stringname=(String)iter.next();
System.out.println(name);
}
2.多个属性查询
//查询多个属性,其集合元素是对象数组
//数组元素的类型和对应的属性在实体类中的类型一致
//数组的长度取决与select中属性的个数
selectid,namefromCourse"
Object[]obj=(Object[])iter.next();
System.out.println(obj[0]+"
"
+obj[1]);
3.返回实体对象
//如果认为返回数组不够对象化,可以采用hql动态实例化Course对象
//此时list中为Course对象
selectnewCourse(id,name)fromCourse"
Coursecourse=(Course)iter.next();
System.out.println(course.getId()+"
+course.getName());
但是此时在类中必须有相应的构造函数
4.使用别名
//可以使用别名
selectc.id,c.namefromCoursec"
5.使用as命名别名
//可以使用as命名别名
Listcourses=ses
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 框架 知识