pom.xml
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.197</version>
<scope>runtime</scope>
</dependency>
spring.xml
<!--使用内存数据库H2替换MySQL数据库-->
<jdbc:embedded-database id="dataSource" type="H2">
<jdbc:script location="classpath:schema.sql" encoding="UTF-8"/>
<jdbc:script location="classpath:data.sql" encoding="UTF-8"/>
</jdbc:embedded-database>
JavaConfig
@Bean
public DataSource dataSource() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.H2)
.setScriptEncoding("UTF-8")
.addScripts("test_h2.sql")
.build();
}
schema.sql
drop table if exists t_user;
create table t_user(
id bigint identity, /*identity 表示自增*/
name varchar(50),
address varchar(50),
primary key (id)
);
data.sql
insert into t_user(name,address)values('tom','shanghai');
insert into t_user(name,address)values('kite','hangzhou');
单元测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/spring.xml")
public class UserServiceTest {
@Autowired
private UserMapper userMapper;
@Test
public void list(){
List<User> users = userMapper.selectByExample(null);
System.out.println(users);
}
}
为什么使用H2?
有时候,做个简单的Demo,还连接数据库,有点大题小做。 而使用H2正好满足个人的轻量级开发测试。