`
leign
  • 浏览: 166754 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
无乱码截取汉字字母数字混合字符串 其实思路很简单,一个汉字占两个字节,其他英文字母占一个,故,只要截的地方不在那个汉字的‘中间’就行了。 思路:奖字符串字节化,转化为字节数组,统计到限制长度左右的汉字数以及其他字母数,最后再来取舍。 public class SubString { private String target; public static String getSubString(String str,int limitLen) { String sub = null; int len = str.length(); byte[ ...
问题引入 我们知道Spring通过各种DAO模板类降低了研发者使用各种数据持久技术的难度。这些模板类都是线程安全的,也就是说,多个DAO能够复用同一个模板实例而不会发生冲突。 我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源。但这些资源本身是非线程安全的,也就是说他们不能在同一时刻被多个线程共享。 虽然模板类通过资源池获取数据连接或会话,但资源池本身解决的是数据连接或会话的缓存问题,并非数据连接或会话的线程安全问题。 按照传统经验,假如某个对象是非线程安全的,在多线程环境下,对对象的访问必须采用synchronized进行线程同步。但Spring的 ...
Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,TransactionManager的实现为HibernateTransactionManager。 根据代理机制的不同,总结了五种Spring事务的配置方式,配置文件如下: 第一种方式:每个Bean都有一个代理 ...
用Resin跑别人的一个工程,发现内存不够用而抛错,于是想把Resin的使用内存调大。其参数的配置方法如下: 文件Httpd.sh参数配置或直接在MyEclipse的服务器配置中加上参数 文件位置:/bin/httpd.sh args='-J-server -Xms200m -Xmx1024m -Xloggc:./log/gc.log -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true' a)-J-server -Xms200m -Xmx1024m 其中,-Xms200m 表示启动时,初时内存大小,-Xmx1 ...
最近为一活动做技术支持,需要建几个表,其主键都需要自增,每次访问时在最大主键的基础上继续自增。开始的时候,笨得去手动查询、保存、使用ID,后来才想起了Hibernate的主键生成方式,于是用了native(SQL建表时增加autocrement说明). 在网上找了另外的hibernate主键生成方式,如下 主键产生器的可选项说明: 1) Assigned      主键由外部程序负责生成,无需Hibernate参与。 2) hilo      通过hi/lo 算法实现的主键生成机制,需要额外的数据库表保存主键生成历史状态。 3) seqhilo      与hilo 类似,通 ...
Spring中事物定义 一、Propagation : 对于特定的方法或方法命名模式,代理的具体事务行为由事务属性驱动,如下面的例子所示: <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="store*">PROPAGATION_REQUIRED ...
这两天优化一个模块,那模块的问题是有时用户量访问量大时就慢了,于是想起去优化数据库操作,使用Hibernate的二级缓存。 先是看了一些参考手册,然后找了几个配置的实例,测试成功。对二级缓存有了更多的认识。 缓存本 ...
Hibernate与延迟加载: Hibernate对象关系映射提供延迟的与非延迟的对象初始化。非延迟加载在读取一个对象的时候会将与这个对象所有相关的其他对象一起读取出来。这有时会导致成百的(如果不是成千的话) select 语句在读取对象的时候执行。这个问题有时出现在使用双向关系的时候,经常会导致整个数据库都在初始化的阶段被读出来了。当然,你可以不厌其烦地检查每一个对象与其他对象的关系,并把那些最昂贵的删除,但是到最后,我们可能会因此失去了本想在 ORM 工具中获得的便利。 一个明显的解决方法是使用 Hibernate 提供的延迟加载机制。这种初始化策略只在一个对象调用它的一对多或多对多关系时才 ...
若某字段是datetime或timestamp,要想用日期(yyyy-mm-dd)去筛选,用取子字符串函数先获取日期,再做判断。 例如: select * from table where substring(updateTime,1,10) = '2009-11-24'; 其中updateTime字段是datetime或timestamp类型. substring(string,start,length)取从 ...
1.RequestDispatcher.forward()    是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递.   但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同时forward()无法在后面带参数传递,比如servlet?name=frank,这样 ...
JAVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。 在进一步阐述之前,我们需要明确几点: A.无论synchronized关键字加在方法上还是对象上,他取得的锁都是对象,而不是把一段代码或函数当作锁――而且同步方法很可能还会被其他线程的对象访问。 B.每个对象只有一个锁(lock)和之相关联。 C.实现同步是要很大的系统开销作为代价的, ...
Spring2.0.1以后的版本已经支持配置多数据源,并且可以在运行的时候动态加载不同的数据源。通过继承AbstractRoutingDataSource就可以实现多数据源的动态转换。目前做的项目就是需要访问12个数据源,每个数据源的表结构都是相同的,所以要求数据源的变动对于编码人员来说是透明,也就是说同样SQL语句在不同的环境下操作的数据库是不一样的。具体的配置如下: 一、首先需要写一个静态的键值对照类: 代码 package cn.com.xinli.ccp.dynamicds; public class DataSourceMap { publi ...
这几天在用Strus2写Action以及页面的跳转,0基础... Struts2的Action与1.x的有很大不同,更好使用,也更灵活一些。 最简单的使用,自己编写的Action继承ActionSupport,实现execute()函数,根据返回值的不同,而实现不同的跳转。 如: public String execute() { if(condition1) return SUCCESS; else return ERROR; return CONST_STRING_MADEBYYOURSELF; //Struts2自带有一些常量返回字符串,如SUCC ...
程序中需要一些常量,但可能因为突变情况而得去改变这些常量,如果在程序中写死的话,难免会很不方便,没有灵活性。 这样就想起了以前写算法题时用程序读文件,改文件总比改程序好吧。。 Spring通过配置可以读取2种格式的配置文件,xml和properties文件。 1、读XML文件 首先你得有一个需要读取变量对应的javaBean public class Test { private int var; //setter和getter //... }在spring中配置这个javaBean,id为test. 然后自制一个XML配置文件,里面放入需要读取的值,形式如下: & ...
1、JSP内容对应一个action时,JSP中的${var}可直接与action中相同变量名对应,同时与id为var的对象对应,前提是在action类中对应变量有getter和setter 如: 在JSP页中 <input type="text" id="var" value="">变量var对应Action类中的var变量(带setter\getter) 2、Action之间可通过session传值,用session的setAttribute和getAttribute方法.记得传完值后把属性移除. 如在Action1和A ...
Global site tag (gtag.js) - Google Analytics