word 2003表格上有一段空白无法删除和编辑,怎么办?????_百度知道> Hibernate、Spring、Struts、DWR 配备 复习学习
Hibernate、Spring、Struts、DWR 配备 复习学习
kathy7800 & &
发布时间: & &
浏览:1 & &
回复:0 & &
悬赏:0.0希赛币
Hibernate、Spring、Struts、DWR 配置 复习学习
Hibernate、Spring、Struts、DWR 配置复习学习
&!--[if !supportLists]--&第一部分Hibernate 配置复习学习
配置文件概览 hibernate.cfg.xml
&hibernate-configuration&
&session-factory&
&!—配置Hibernate数据源相关信息--&
&property
name="hibernate.connection.driver_class"&com.mysql.jdbc.Driver&/property&
&!—配置Hibernate映射文件--&
&mapping resource="com/hibernate/domain/User.hbm.xml"/&
&/session-factory&
&/hibernate-configuration&
1、hibernate 通过DBCP方式
在tomcat中配置jdbc连接
与连接池(绑定到JNDI上)
2、hibernate的配置文件的名字叫做 hibernate.cfg.xml
3、一般的映射类文件名为
xxx.hbm.xml
4、类映射文件名 配置在 hibernate.cfg.xml文件中
5、hibernate.cfg.xml主要配置 hibernate的session-factory工厂
,工厂中可以配置数据源和数据库XML文件的映射
6、多数据库配置时可以配置多个hibernate.cfg.xml文件 包含hibernateConfig和sessionfactory
名词 POJO (plain old java object)简单Java对象
7、sessionFactory是单例;
它可以打开session; sessionFactory线程安全 session非线程安全
8、创建 sessionFactory方法
SessionFactory
factory = new
Configration.config().buildSessionFactory();
9、获取Session
factory.getSession(); session使用完需要关闭
10、通过session可以打开Transaction事务
session.beginTranscation();
11、提交事务 mit();
JTA 容器里的事务、Transaction
事务 、JCA 连接器、JMX (java管理扩展)、
12、通过Configration可以动态配置XML映射文件和porperties配日文件
Configration cfg = new Configration();
cfg.addFile(...);//添加xml映射文件
cfg.addClass(...);//添加xml类映射文件
cfg.setProperties(...);//添加properties属性文件
13、可以使用动态JDBC打开一个Session,同一个连接不能打开两个并行的Session;
14、hibernate SQL方言 (hibernate.dialect)
15、hibernate事务配置
&property name="hibernate.transaction.JDBCTransactionFactory"&(默认JDBC事务)
或者 hibernate.Transaction.JTATransactionFactory
15、绑定SessionFactory到JNDI 使用
hibernate.session_factory_name配置
可以简化查找工厂和创建新的session
16、记录日志 在classpath中引入log4j.properties文件
17、创建多sessionFactory
SessionFactory sf = new
Configration.getConfig("不同的hibernate.cfg.xml文件名").buildSeesionFactory();
18、POJO持久化类需要有默认的构造器,可以设置hibernate回调方法(实现Liftcycle接口),onSave、onUpdate、onDelete、onLoad,可以设置检查(实现Validateble接口),方法:validate
19、乐观锁和悲观锁 悲观锁对数据永远处于独占的处理;乐观锁通过version进行检查,当更新数据时version版本较高时可以更新,否则将认为是过期数据不予更新。
乐观锁策略:version(常用)检查version字段、all检查所有字段、dirty检查修改过的字段、none不检查
20、id生成策略:generator 10种
(常用的有sequence、native、uuid)
21、设置联合主键
composite-id 类必须重载equals和hashcode方法与实现序列号接口
hibernate查询数据 load方式属于延时加载、get方式即时加载
22、关联映射
1、多对一(即在多的一方添加主键)many-to-one
&many-to-one
name="group" column="groupId"
cascade="save-update"/&
group:多大一方添加的类对象,groupId对应Group类的外键
程序保存对象时先要保存一的一方(除非设置了级联cascade“all/save-update/delete/none”)。级联:操作一张表的同时操作关联的表
2、一对一 one-to-one(唯一主键关联)
一方的主键策略使用foreign
¶m name="property"&另一方主键&/param&
&one-to-one
name="另一方类对象"/&
保存时要保存设置foreign的一方
(双向主键关联)双方都添加&one-to-one
name="另一方类对象"/&
&one-to-one&对数据存储的方向不起作用,必须要保存设置foreign的一方
(唯一外键关联)即多对一的特殊情况 需在many-to-one
中添加unique="true"
unique=true是指这个字段的值在多的一方不能重复,所有记录值都要唯一
(双向外键关联)
在唯一外键配置的前提下在另一方配置&one-to-one&
添加property-ref="对方表外键字段名"
3、一对多 (即在多的一方添加主键) one-to-many
(单向)一的一方添加set对象集
name="set对象名"&
column="另一方表中字段名"&//(此字段不能设置为非空)
&one-to-many
class="另一方类名"&
&/set&
(双向)在添加单向一对多的前提下
在多的一方添加&many-to-one
name="" column="指向与一对多相同的表字段名"&
只使多的一方为何关系,在一的一方添加反转属性,此属性只影响存储
name="set对象名" inverse="true"&// inverse反转控制
4、多对多 (即增加中间表) many-to-many
(单向)在一方添加set对象集
name="set对象名" table="中间表名"&
column="与中间表对应的表字段名"&
&many-to-many
class="另一方类名" column="中间表的另一表字段名"&
&/set&
(双向)在单向的前提下 在另一方类中添加set对象集
在该类的xxx.hbm.xml中添加配置,同之前单向,对应的表字段名相应调整即可。
23、在Servlet中获得SessionFactory
SessionFactory sf = (SessionFactory)getServletContext().getAtrribute("my.session.factory")
24、session操作非线程安全,
执行后需要刷新、提交和关闭session
session.flush();mit();
session.close();
&!--[if !supportLists]--&第二部分Spring 配置复习学习
Spring 优点降低耦合度 集成多种功能(如hibernate、strauts、事务)
1、控制反转(IOC) 即由外部容器负责创建和维护对象
2、依赖注入(CI) 即运行时由外部容器动态的创建对象
3、面向切面 (AOP)
4、实例化spring容器
ApplicationContext acx = new
ClassPathXmlApplicationContex(new String[]{"配置文件名",""})
5、spring管理bean的配置
&bean id="唯一值" class="实现类"&
使用时直接从spring容器中获取即可
如:acx.getBean("spring容器中的id名")
6、bean实例的作用域
&bean id="唯一值"
name="与id作用相同,可以添加特殊字符如/"
class="实现类"
scope="实例类型(单例或多例)"&//默认单例、propoType(每次新实例)
7、lazy-init延时加载, init-method设置初始化方法,destory-method设置销毁加载方法
8、spring的注入方式有构造器注入、get/set方法注入、注解方式
Bean中的属性注入&property
name="属性名" ref="注入的bean的id"&
9、使用注入方式注入基本类型的默认值
&property name="基本类型属性名"
value="默认值"&
10、set、list、map、properties类型注入
--=====================================================set
&property name="属性名"&
&value&集合值1&/value&
&value&集合值2&/value&
&/set&
&/property&
--=====================================================list
同set注入 只需将set标签改为list即可
--=====================================================properties
&property name="属性名"&
&props&
&value
key="key1"&值1&/value&
&value
key="key2"&值2&/value&
&/props&
&/property&
--=====================================================map
&property name="属性名"&
&entry
key="key1"&值1&/value&
&entry
key="key2"&值2&/value&
&/map&
&/property&
11、构造器注入配置
&bean id=""
&constructor-arg
index="构造器参数位置" type="属性类路径" ref="纳入spring管理的beanID"/&//此种方式适用于自定义对象
&constructor-arg
index="构造器参数位置" value="基本类型值"/&//此种方式适用于基本类型
&/bean&
Spring配置文件中开启注解方式 添加&context:annotation-config /&
12、spring注解注入
包含autowrite 、resource、
13、spring自动装配
在bean后添加属性autowrite(按:类型、名称、构造器)
14、spring自动扫描classpath (Spring2.5开始提供)
&context:component-scan
base-packag="路径" &
通过注解进行类注入@Component(组件)、@Service(业务组件)、@Controller(控制组件)、@Repository(dao组件)、@Scope(作用域)
15、AOP xml配置方式、注解方式
Spring——AOP(面向切面)
一、Spring 注解方式实现AOP
1、配置
a、引入命名空间
xmlns:aop=""
b、开启AOP配置
&aop:aspectj-autoproxy/&
c、各业务及操作类需纳入Spring管理
2、注解类
@Aspect//AOP切面
public Class AOP切面类{
@Pointcut("execution(* 请求AOP操作的业务类路径.*(..))")//切入点(切入方法)
//*1返回类型任意、*2方法名任意、..参数任意
public
void 切入点方法(){}
@Before("切入点方法名")
//前置通知
//@Before("切入点方法名
&& args(参数名)")//截获业务方法传人参数的前置通知
//在前置通知中 参数名即为业务方法中传人的参数,无需参数时参数可省略
public
void doBefore(String 参数名){}
@AfterReturning("切入点方法名")//后置通知
//业务方法有返回值的后置通知
//@AfterReturning(pointcut="切入点方法名",returning="参数名")
//参数名即为业务方法返回的类型值作为后置通知的传人参数,无需参数时参数可省略
public
void doAfterReturning(String 参数名){}
@After("切入点方法名")
//最终通知
public
void doAfte(){}
@AfterThrowing("切入点方法名")
//异常通知
//@AfterThrowing(pointcut="切入点方法名",throwing="e")//截获异常的异常通知
//无需参数时参数可省略
public
void doAfterThrowing(Exception e){}
@Around("切入点方法名")
//环绕通知
//格式固定、各参数及返回类型固定、必须进行proceed方法
public
Object doAround(ProceedingJoinPoint pjp)throws Throwable {
Object
result = pjp.proceed();
return
二、Spring 配置方式实现AOP
1、切面类纳入Spring管理
&bean id="切面类bean的id "
class=""/&
2、配置
&aop:config&
&aop:aspect
id="" ref="切面类bean的id"&
&aop:pointcut
id="切入点id" expression="execution(* 请求AOP操作的业务类路径.*(..))"/&
&aop:before
pointcut-ref="切入点的id" method="前置通知方法名"/&
&aop:after-returning
pointcut-ref="切入点的id" method="后置通知方法名"/&
&aop:after-throwing
pointcut-ref="切入点的id" method="异常通知方法名"/&
&aop:after
pointcut-ref="切入点的id" method="最终通知方法名"/&
&aop:around
pointcut-ref="切入点的id" method="环绕通知方法名"/&
&/aop:aspect&
&/aop:config&
16、spring配置文件加载属性文件
注解方式
&context:property-placeholder
location="classpath:properties属性文件名"/&
配置方式
&bean id="propertyConfigurer"
class="org.springframewornfig.PropertyPlaceholderConfigurer"&
&property name="locations"&
&list&
&value&properties属性文件名&/value&
&/list&
&/property&
&/bean&
17、Spring配置JDBC
配置数据源
&bean id="dataSource" class="ormons.dbcp.BasicDateSource"
destory-method="close"&
&property
name="driverClassName" value=""/&
&property
name="url" value=""/&
&property
name="username" value=""/&
&property
name="password" value=""/&
&/bean&
18、配置事务————注解方式
&bean id="txManager"
class="org.springframework.jdbc.datasource.DateSourceTranscationManager"
&property
name="dataSource" ref="dataSource"&
&/bean&
&!--配置注解处理器 --&
&tx:annotation-driven
transaction-manager="txManager" /&
配置命名空间
xmlns:tx=""
操作类实现
将数据源注入到操作类中,操作类可以定义jdbcTemplate对象操作数据源。
在操作类前添加注解符@Transactional,此操作类中所有方法将利用spring提供的事务进行管理
此事务默认在运行时异常时进行回滚操作
配置事务————配置方式
&bean id="txManager"
class="org.springframework.jdbc.datasource.DateSourceTranscationManager"
&property
name="dataSource" ref="dataSource"&
&/bean&
&tx:advice id="txAdvice"
transaction-manager="txManager"&
&tx:attributes&
&tx:method name="方法名前缀*" read-only="true" /&
&!--可进行回滚的异常--&
&tx:method name="方法名前缀*" rollback-for="Exception"/&
&!--不进行回滚的异常--&
&tx:method name="方法名前缀*" no-rollback-for="Exception" /&
&/tx:attributes&
&/tx:advice&
&aop:config&
&aop:pointcut
id="切入点id" expression="execution(* 请求AOP操作的业务类路径.*(..))"/&
&aop:advisor
pointcut-ref="切入点的id" advice-ref="txAdvice"/&
&/aop:config&
18、Spring集成hibernate
&!--配置hibernate的sessionfactory--&
&bean id="sessionFactory"
class="org.springframework.orm.hibernate.LocalSessionFactoryBean"&
&!--配置hibernate的数据源--&
&property name="dataSource"
ref="dataSource"/&
&!--配置hibernate的映射文件--&
&property
name="mappingResources"&
&list&
&value&com/hibernate/tables/SYSUSERS.hbm.xml&/value&
&/list&
&/property&
&property
name="mappingLocations"&
&!--**表示包含所有子路径,*表示所有文件名--&
&value&classpath:映射文件路径/**/*.hbm.xml&/value&
&/property&
&!--配置hibernate操作数据库的各属性--&
&property
name="hibernateProperties"&
&value&
hibernate.dialect=数据库方言
hibernate.show_sql=true
hibernate.format_sql=true
&/value&
&/property&
&/bean&
&!--配置事务管理器(hibernate)--&
&bean id="txManager"
class="org.springframework.orm.hibernate.HibernateTransactionManager"&
&property
name="sessionFactory" ref="sessionFactory"/&
&/bean&
配置事务管理器——注解方式
&tx:annotation-driven
transaction-manager="txManager"/&
配置事务管理器——配置方式(AOP)
业务类可通过注入方式获取hibernate的sessionfactory
19、Spring集成Struts 1(struts 1 通过servlet方式添加到容器中)
在web.xml文件中添加spring的监听,以便通过容器监听器实例spring
&context-param&
¶m-name&contextConfigLocation&/param-name&
¶m-value&spring配置文件名,多文件时可用","分隔&/param-value&
&/context-param&
&listener&
&listener-class&org.springframeworntext.ContextLoaderListener&/listener-class&
&/listener&
将action纳入spring管理
spring配置
&bean name="spring管理的actionID" class="action类文件名"/&
struts配置(struts-config.xml)
&action path="spring管理的actionID"$>$/action&
&!--添加spring控制器--&
&controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor"
在action业务类获取spring的applicationContext,当spring管理action后,业务类中便不用编写以下代码,直接通过spring的注入方式便可对业务类中各属性对象进行操作。
WebApplicationContext act =
WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());
20、spring集成struts 2(struts 2 通过filter方式添加到容器中)
在web.xml文件中添加以下内容
&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&
spring配置
&bean name="spring管理的actionID" class="action类文件名"/&
struts配置(struts2配置文件名为:struts.xml)
在struts.xml文件中添加
&!--spring控制器,表示其中所有action全部由spring负责创建管理--&
&constant name="struts.objectFactory"
value="spring" /&
&package name="chapter1"
namespace="/命名空间名" extends="struts-default"&
&action name="action_*" class="spring管理的actionID"
method="{1}"&
&result
name="success"&/WEB-INF/index.jsp&/result&
&/action&
&/package&
21、spring处理struts1中的乱码问题(通过filter过滤器)
在web.xml文件中加入
&filter&
&filter-name&Encoding&/filter-name&
&filter-class&org.springframework.web.filter.CharacterEncodingFilte&/filter-class&
&init-param&
¶m-name&encoding&/param-name&
¶m-value&UTF-8&/param-value&
&/init-param&
&/filter&
&filter-mapping&
&filter-name&Encoding&/filter-name&
&servlet-name&/*&/servlet-name&
&/filter-mapping&
第三部分 Struts
配置复习学习
1、struts 1 配置
Web.xml文件配置 集成struts 1
&servlet&
&servlet-name&action&/servlet-name&
&servlet-class&org.appache.struts.action.ActionServlet&/servlet-class&
&init-param&
¶m-name&config&/param-name&
¶m-value&/WEB-INF/struts-config.xml&/param-value&
&/init-param&
&/servlet&
&servlet-mapping&
&servlet-name&action&/servlet-name&
&url-pattern&*.do&/url-pattern&
&/servlet-mapping&
struts-config.xml文件配置
&!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration
&struts-config&
&form-beans&
&!--type:继承ActionForm的实现类
&form-bean
name="logonForm" type="com.zht.struts.LoginActionForm"
&/form-beans&
&action-mappings&
&!--path:访问路径,type:继承Action的实现类,
name:对ActionForm的引用,scope:请求的作用域,默认为session
&action
path="/login"
type="com.zht.struts.LoginActon"
name="logonForm"
scope="request"&
&forward
name="success" path="/success.jsp" /&
&forward
name="error" path="/error.jsp" /&
&/action&
&/action-mappings&
&/struts-config&
2、struts 2 配置
struts2的配置文件struts.xml必须放置在classes目录下
3、struts 2 action类文件可以是POJO,也可以继承SupportAction获得更好的支持
4、struts 2 拥有较强大的标签库 OGNL
5、struts.xml配置文件默认继承struts-default
第四部分 DWR
配置复习学习
1、集成DWR配置
在web.xml文件中添加
&servlet&
&servlet-name&dwr-invoker&/servlet-name&
&servlet-class&uk.ltd.getahead.dwr.DWRServlet&/servlet-class&
&init-param&
¶m-name&debug&/param-name&
¶m-value&true&/param-value&
&/init-param&
&/servlet&
&servlet-mapping&
&servlet-name&dwr-invoker&/servlet-name&
&!--用于拦截
http://localhost:8080/dwr--&
&url-pattern&/dwr/*&/url-pattern&
&/servlet-mapping&
2、在dwr.xml配置文件中添加
& xml version="1.0"
encoding="UTF-8" &
&!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
&allow&
&!--将JavaBean转换为Js页面可直接使用的bean对象,对象名为javascript中设置的名字--&
&convert converter="bean" match="com.kerryeas.dto.*" /&
&convert converter="bean" javascript="Customer" match="com.kerryeas.model.Customer" /&
&!--在与spring集成后 new改为spring,name值改为beanName,value的值改为纳 入spring管理bean的id--&
&create creator="new" javascript="js中使用的名字"&
¶m name="class" value="dwr类路径及文件名"
&/create&
&/allow&
&/dwr&
第五部分 Spring 配置补充
Spring定时器配置
1、文件名:applicationContext-quartz.xml
2、内容:
&bean id="定时任务类beanID" class="定时器调用的类路径及类名" /&
&bean id="定时任务调用方法ID"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"&
&property name="targetObject"
ref="定时任务类beanID"$>$/property&
&!—设置定时任务调用的方法--&
&property name="targetMethod" value="调用的方法名"$>$/property&
&property name="concurrent" value="false"$>$/property&
&/bean&
(配置方式1——定时启动)
&bean id="Spring定时任务id"
class="org.springframework.scheduling.quartz.CronTriggerBean"&
&property name="jobDetail"
ref="定时任务调用方法ID"&
&/property&
&!—设置确定启动定时任务的时间--&
&property name="cronExpression"&
&value&0 10 2 * *
&/property&
&/bean&
(配置方式2——循环启动)
&!—设置循环启动定时任务的间隔时间--&
&bean id="Spring定时任务id"
class="org.springframework.scheduling.quartz.SimpleTriggerBean"&
&property name="jobDetail" ref="定时任务调用方法ID"$>$/property&
&!—延迟时间(单位毫秒)--&
&property name="startDelay"
value="6000"$>$/property&
&!—间隔时间(单位毫秒)--&
&property name="repeatInterval" value="1800000"
&/bean&
注意:方式1与方式2所使用的Spring提供的class类文件不同,且配置方式不同
3、配置定时启动任务列表
&bean id="startQuertz" lazy-init="false"
autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean"&
&!—延迟时间(单位秒)--&
&property name="startupDelay" value="10"
&property name="triggers"&
&list&
&ref bean="Spring定时任务id" /&
&/list&
&/property&
&/bean&
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&W7电脑右下角任务栏有一段空白怎么弄掉?_百度知道小木虫 --- 500万硕博科研人员喜爱的学术科研平台
&&查看话题
请问origin中的图例有一大块空白怎么能去掉?
请教各位大侠,我遇到的问题如下图所示,origin中的图例不知为何有一大块空白,请问怎么能去掉?非常感谢!
我还想要框线,还不想留空白
可以删掉的
大篇幅空白,可以在粘贴后Word文档修剪。双击图标后,即可找到修饰阴影,有无框架的功能,再行编辑
弄好了,谢谢!
前面没有空格
没有删掉也没有空格
研究生必备与500万研究生在线互动!
扫描下载送金币
浏览器进程
打开微信扫一扫
随时随地聊科研}