- 浏览: 36693 次
-
最新评论
文章列表
package com.taobao.dbunit.dao;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.dbunit.Assertion;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.DataSetExc ...
大概流程:
1.用dbunit创建初始的测试数据。
2.用spring-mock 维护测试过程中的数据会滚,这样可以保证测试后数据库保持原状态。
3.用junit架构测试。
4.用dbunit销毁初始测试数据。
对Dao进行单元测试,一般有两种思路。一是Mock,对使用的底层API进行Mock,比如Hibernate和JDBC接口,判断接口有没有正确调用,另一种是实际访问数据库,判断数据库有没有正确读写。更多的情况下,我更倾向于后者,因为在使用ORM工具或者jdbcTemplate的情况下,dao一般只有简单的几行代码,没有复杂的逻辑,Mock测试一般没有什么意义,我们更关心的是,Hibern ...
1:将局部变量的作用域最小化
2:for-each循环优先于传统的for循环
3:如果需要精确计算,避免使用float和double,尽量使用int,long,Bigdecimal
4:基本类型优先于装箱基本类型
5:字符串连接应优先选择stringBuffer,stringBulider
6:尽量通过接口来引用对象
synchronized的4种用法
1.方法声明时使用,放在范围操作符(public等)之后,返回类型声明(void等)之前.即一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候,当前线程(就是在synchronized方法内部的线程)执行完该方法后,别的线程才能进入.
例如:
public synchronized void synMethod() {
//方法体
}
2.对某一代码块使用,synchronized后跟括号,括号里是变量,这样,一次只有一个线程进入该代码块.例如:
publ ...
1.对表按查询条件建立索引
2.对查询语句进行优化
3.可以考虑对查询数据使用缓存
4.先将数据保存到缓存中,当数据达到一定的数量后,再更新到数据库中
以下是对查询语句优化的注意事项
1.应尽量避免在 where 子句中对字段 ...
Spring中提供一些Aware相关接口,像是BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,实作这些 Aware接口的Bean在被初始之后,可以取得一些相对应的资源,例如实作BeanFactoryAware的Bean在初始后,Spring容器将会注入BeanFactory的实例,而实作ApplicationContextAware的Bean,在Bean被初始后,将会被注入 ApplicationContext的实例等等。
例如
加载Spring配置文件时,如果Spring配 ...
今天遇到一个oracle的问题,经过多次测试,得出以下结论。
1:表中的数据
id name age(char(3))
12 yyj 21
2:sql语句
SELECT * FROM TABLE WHERE age > '111';
结果:12 yyj 21
正常应给不被检索出来。
3:原因分析
oracle中,字符串比较时,如果两边位数不一致,将长的一方自动截位。
第一:事务并发访问控制策略
当前J2EE项目中,面临的一个共同问题就是如果控制事务的并发访问,虽然有些持久层框架已经为我们做了很多工作,但是理解原理,对于我们开发来说还是很有用处的。
事务并发访问主要可以分为 ...
在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法。通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance( )静态方法来实例化对象以便操作。因此,单单使用Class.forName( )是动态加载类是没有用的,其最终目的是为了实例化对象。
这里有必要提一下就是Class下的newInstance()和new有什么区别?,首先,newInstance( )是一个方法,而new是一个关键字,其次,Class下的newInstan ...