- 浏览: 286971 次
- 性别:
- 来自: 深圳
最新评论
-
cheetah_ysc:
不错不错,我喜欢!
Java固定时间间隔执行 -
voyage_mh:
阿选百度竟然一下可以吧你百度出来
使用DWR注解Annotation
文章列表
动态改变表格的值,下拉的值等
下面就是一个简单的动态改变表格的值的一个例子:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getSer ...
第一个简单的例子(getElementById()):
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+pa ...
? 单例类有如下特点: § 单例类只有一个实例。 § 单例类自行创建并提供这个唯一的实例。
? 单例模式有以下的特点: § 单例类只能有一个实例。 § 单例类必须自己创建自己的惟一的实例。 § 单例类必须给所有其他对象提供这一实例。
下面就是两种单例模式的例子(看注解):
/**
* 单例模式(饿汉式单例类) 从速度和反应时间角度来讲,饿汉式单例类稍好
* @author Administrator
*
*/
public class Singleton {
private static Singleton singlet ...
事务定义:数据库事务是指由一个或多个SQL语句组成的工作单元,这个工作单元中的SQL语句相互依赖,如果有一个SQL语句执行失败,就必须撤销整个工作单元。
事务的特性ACID:原子性,一致性,独立性,持久性
事务可能出现的问题:
第一类丢失更新 lost update
脏读, 读到还没体检的事务数据 dirty read
non-repeatable read 不可重复读
second lost update problem 第二次丢失更新
phantom read 幻读(插入和删除)
只要考虑2,3,5 其他都是特殊情况
...
什么是缓存??
答:缓存就是在内存中开辟一块空间,把本来要存放的数据放在此内存中,将来要用的时候直接去内存中取出来用。
什么是一级缓存???
答:一级缓存也就是session缓存。 一个session是不可以访问其他session的,这就会导致出一个问题,当多线程访问同一数据的时候,在不做二级缓存的情况下,每个线程都要开一个session,也就是每一个session都要发出一个sql语句,这时对性能很不好,处理的办法就是开启二级缓存。
什么是二级缓存???
答:二级缓存也就是SessionFactory级别的缓存,可以越过session的存在。。。 ...
由于JDK只能基于接口进行动态代理,所以Spring使用JDK和Cglib结合使用来产生动态代理,Cglib可以进行类的动态代理
下面就是一个简单的动态代理例子:
被代理的类
package com.lbx.dog;
public class Dog {
public void info() {
// TODO Auto-generated method stub
System.out.println("这是一只狗");
}
public void run() {
// TODO Auto-generated met ...
Template Method Pattern(模版方法模式)定义:定义一个操作中方法的骨架,以将一些步骤延缓到子类中实现,模版方法让子类重新定义一个方法的某些步骤而无须改变方法的结构。
其中类与对象的关系为:
AbstractClass:抽象类
定义一个抽象原始的操作,其子类可以重定义他的实现
ConcreteClass:具体子类
实现原始的操作以完成子类特定方法的步骤
下面就是一个简单的例子(模仿Spring封装Hibernate 的try catch):
AbstractClass:抽象类
import ...
1+N问题的描述:举例,多个主题(Topic)属于一个帖子(Category),一个帖子含有多个主题。当只需要查询Topic时不要查询Category时,如果@ManyToOne的属性fetch=FetchType.EAGER,这时查询所有Topic时,每查询一个Topic就会多产生一个SQL语句查询相关的Category表的数据,这样要是有N条Topic数据,就会产生1+N条SQL语句。同样的在@OneToMany的情况下,要是在Many方设置fetch=FetchType.EAGER,同样也会产生1+N的问题。
解决方案有三种:
fetch=FetchType.LAZY, ...
使用Servlet过滤器来实现OSIV模式(Open Session In View 模式)
util中的代码,用于获得SessionFactory
package com.lbx.util;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateSessionFactoryUtil {
private static final SessionFactory sessionFactory ;
private H ...
将需要的jar包加到lib下
修改web.xml文件,增加一个listener,代码如下
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<!--
默认找的 ...
通过继承HibernateDaoSupport来获得HibernateTemplate(最好使用IoC来注入)
dao层代码
package com.lbx.dao.impl;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.lbx.dao.LogDAO;
import com.lbx.model.Log;
public class LogDAOImpl extends HibernateDaoSupport implements LogDAO {
...
要得到HibernateTemplate就得先获得SessionFactory或者DataSource,前面已经介绍了SessionFactory和DataSource的获得。
beans.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta ...
要在Spring中使用事务,先要在beans.xml中,把命名空间的名字和Location定义好,然后加一句话<tx:annotation-driven transaction-manager="txManager" />,接下来就是通过SessionFactory来获得txManager(最好查API),然后就可以通过AOP来处理事务(增强等)
beans.xml文件的配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="ht ...
单独使用Hibernate的时候,连接数据库时,Hibernate自己获得DataSource。整合Spring后,Spring容器也可以获得DataSource,而且还可以实现HIbernate相关的功能,这样就可以不要写Hibernate.cfg.xml文件了,直接在Spring的容器中配置就OK了。
先看bean.xml文件,通过读取jdbc.properties中的属性,连接数据库,也就是获得DataSource,得到了DataSource就可以通过DataSource来获得SessionFactory。
<?xml version="1.0" enc ...
SiteMesh框架是由OpenSymphony组织来开发的,下载地址:http://www.opesymphony.com/sitemesh/download.action
使用步骤:
将下载的sitemesh-2.4.jar文件复制到Web应用的lib下
为了能是SiteMesh框架可以处理所有的用户请求,修改web.xml文件,配一个Filter,class为com.opensymphony.module.sitemesh.filter.PageFilter, url-mapping 为/*
要在Jsp页面中使用SiteMesh的标签库。还要导入Si ...