前两天实现了net中DataTable功能,虽说功能不是很强大,但是完全满足了java中的多表查询,带来的编程风格改变还是存在的。
现在拿出来说下,和各位大哥探讨下。
因为我本来就是搞net的,突然来了两个项目就是要用java以及oracle,便从各种方向上寻求net的影子,便有了今天这些工具类。
不知道好不好,bug测试了一下了,性能上也只有经过项目来验证吧!!!
其中一部分涉及到双数据库操作,所以也提了一种解决方案,写的不好,大家看看吧!
我们先看效果,再说说怎么弄!
我们来试试如何用,我也写了一个测试数据
然后我们在Junit中测试
@Test
public void joinTable() {
JingZongDB jzdb=new JingZongDB();
DataTable dt1=jzdb.getDataTable("select * from newsType");
DataTable dt2=jzdb.getDataTable("select * from news");
DataTable dt=DataTable.joinTable(dt1, dt2, "id", "typeid");
wl("新闻类型表:"+dt1.getRow().size());
DataTable.outTable(dt1);
wl("新闻表:"+dt2.getRow().size());
DataTable.outTable(dt2);
wl("合并后:"+dt.getRow().size());
DataTable.outTable(dt);
}
private void wl(String s) {
System.out.println(s);
}
最后结果为
新闻类型表:4
id:1 typeName:学生工作
id:2 typeName:通知公告
id:3 typeName:招生简章
id:4 typeName:教务信息
新闻表:16
id:1 typeid:1 newsName:学生工作1
id:2 typeid:1 newsName:学生工作2
id:3 typeid:1 newsName:学生工作3
id:4 typeid:1 newsName:学生工作4
id:5 typeid:2 newsName:通知公告1
id:6 typeid:2 newsName:通知公告2
id:7 typeid:2 newsName:通知公告3
id:8 typeid:2 newsName:通知公告4
id:9 typeid:3 newsName:招生简章1
id:10 typeid:3 newsName:招生简章2
id:11 typeid:3 newsName:招生简章3
id:12 typeid:3 newsName:招生简章4
id:13 typeid:4 newsName:教务信息1
id:14 typeid:4 newsName:教务信息2
id:15 typeid:4 newsName:教务信息3
id:16 typeid:4 newsName:教务信息4
合并后:16
id:1 typeName:学生工作 id:1 typeid:1 newsName:学生工作1
id:1 typeName:学生工作 id:2 typeid:1 newsName:学生工作2
id:1 typeName:学生工作 id:3 typeid:1 newsName:学生工作3
id:1 typeName:学生工作 id:4 typeid:1 newsName:学生工作4
id:2 typeName:通知公告 id:5 typeid:2 newsName:通知公告1
id:2 typeName:通知公告 id:6 typeid:2 newsName:通知公告2
id:2 typeName:通知公告 id:7 typeid:2 newsName:通知公告3
id:2 typeName:通知公告 id:8 typeid:2 newsName:通知公告4
id:3 typeName:招生简章 id:9 typeid:3 newsName:招生简章1
id:3 typeName:招生简章 id:10 typeid:3 newsName:招生简章2
id:3 typeName:招生简章 id:11 typeid:3 newsName:招生简章3
id:3 typeName:招生简章 id:12 typeid:3 newsName:招生简章4
id:4 typeName:教务信息 id:13 typeid:4 newsName:教务信息1
id:4 typeName:教务信息 id:14 typeid:4 newsName:教务信息2
id:4 typeName:教务信息 id:15 typeid:4 newsName:教务信息3
id:4 typeName:教务信息 id:16 typeid:4 newsName:教务信息4
现在说如何实现
1 实现,net数据库参数化
package cdu.yas.xykps.util;
import java.sql.Blob;
import java.sql.Date;
/**
* @功能描述 sql参数,sql执行时传递的参数用此类封装
*