传统JDBC:当您进行增删改查时是不是拼写SQL到都想吐了?好不容易拼写完,想获取结果,还要再遍历封装,遇到一个字段上百的遗留表简直就疯了。
p4jorm:当使用p4jorm时,普通的CURD,也就是占据我们大部分工作的CURD就不需要再书写(真的是一行都不用写);当前端查询时我们只需要把相应数据放入formbean就可以了(如果你使用struts之类的框架formbean数据封装工作也不需要自己完成);你再多的字段也不用担心;更不会再因为忘了关闭数据库连接而被老大k了。
下面进入我们三十分钟学习时间:
(以MySQL数据库进行展示,目前也只支持了MySQL,如需要支持其他数据库,请邮件告知,会尽量添加)
首先创建一个web项目,如果你使用maven的话,请把压缩包的maven目录放入你本机(因为没有发布到公服),且加入maven依赖
[java]
<dependency>
<groupId>partner4java</groupId>
<artifactId>p4jorm</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</exclusion>
</exclusions>
</dependency>
[html]
如果没有使用maven,本架构的jar为p4jorm-1.0.0.jar,还需要依赖其他jar,你直接考入helloworld项目所有jar(p4jorm_jdbc_test\WebRoot\WEB-INF\lib)即可。
第一步:创建表
就和你平时一样创建表就ok了。
我们这里简单创建了一个user表
[sql]
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
`address` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
第二步:创建表对应的实体
换句话说,创建表数据的携带对象,这个也是我们平时所需要的。(你从数据库中取出了数据总要有地方存吧,总不能放到Map里吧?亲,我们可是面向对象啊)
[java]
public class User implements Serializable {
private static final long serialVersionUID = -8804762279661495240L;
private int id;
private String username;
private String password;
private String address;
...
你也可以借助工具通过已创建的表,自动生成实体,详细查看文章
http://blog.csdn.net/partner4java/article/details/8560289
(我们这里是不需要JPA之类的注解,生成后,你需要删除)
第三步:添加实体注解
因为我需要对实体进行识别分析,这里您一般只需要添加两个注解
P4jEntity标注于类上、P4jId标注于对应的主键字段上
(具体注解详解,请参照附件文档doc/index.html,后面我们就不再说“请参照文档”之类的客套话,有不明白的,你第一时间就去找文档即可,文档中若解释不清晰,请邮件我)
[java]
@P4jEntity
public class User implements Serializable {
private static final long serialVersionUID = -8804762279661495240L;
@P4jId
private int id;
private String username;
private String password;
private String address;
我们说过p4jorm只需要两个注解就齐活了,也就是说现在你就可以对user表进行增删改查操作了。
第四步:整理测试环境书写测试用例
环境:
我们在第一步文章中提到过,p4jorm目前版本需要借助spring,如果对spring ioc不是很熟悉的同学,可参照文章
http://blog.csdn.net/partner4java/article/details/8194747
若当前spring并不在你的学习范围内,也不用担心,你只需要把我提供的配置文件拷入相应的目录即可
p4jorm_jdbc_test\src\main\resources中有三个文件:
datasource-c3p0.xml、beans.xml
jdbc-c3p0.properties:你只需要关心这个,这里配置了你的数据库连接信息
(由于我们这里使用了c3p0,那么相应的jar也需要加入)
单元测试:
我们目前使用第一个工具类 -- P4jJdbcDaoTemplate
[java]
public class UserTest {
private P4jJdbcDaoTemplate daoTemplate;
// setUp方法其实就是为我们创建了一个P4jJdbcDaoTemplate,具体参照文档中P4jJdbcDaoTemplate说明
@Before
public void setUp() throws Exception {
// 这里为spring的容器创建
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/META-INF/spring/beans.xml");
// 创建了daoTemplate,并传入了namedParameterJdbcTemplate
daoTemplate = new P4jJdbcDaoTemplate(applicationContext.getBean("namedParameterJdbcTemplate",
NamedParameterJdbcTemplate.class));
}
// 我们进行第一个保存测试
@Test
public void testSave() {
for (int i = 0; i < 1000; i++) {
// 创建一个user实体,往里赛数据
User user = new User();
user.setPassword("123456" + i);
user.setUsername("partner4java" + i);
user.setAddress("partner4java@163.com");
// 我们就只需要这一句话就可以保存user进数据库了
daoTemplate.save(user);
}
}
}
一千条保存,当你看到数据表中新增的数据,是否心里暗暗欢喜
[java]
// 更新的数据,需要说明一点的是,我们只会更新指定id的数据,且不更新值为null的数据,你可以置空字符
@Test
public void testUpdate() {
User user = new User();
user.setPassword("");
user.setUsername("world");
// 设置id,表示需要更新的数据
user.setId(1);
daoTemplate.update(user);
}
@Test