在HashMap关系数据映射技术产品
JadePool中,
ProcessVO是cn.jadepool.sql.Jdml实现类,实现事务型数据库DML操作。统一抛出SQLException异常。创建该对象后,由用户决定开启事务、处理异常。
Jade是简化的ProcessVO应用类,对异常进行了捕获。创建该对象后,便开启了数据库事务。 在大多数情况下推荐使用Jade,它超级简便、超级实用。
1、调用并执行一个sql文件
6、插入或更新一条记录
7、插入或更新一组记录
8、插入或更新一条主表记录、并插入或更新一组子表记录
9、【实例】在Servlet中保存一组由表单提交的记录
使用的数据库表
表单范例。在多组记录中,第一个字段不要用check、radio按钮,使用这两个属性值 method="post" enctype="multipart/form-data"
万能表单解析
保存后输出的查询结果
10、查询一条记录
11、查询一组记录
12、大型记录分组索引查询
13、删除记录
14、取消插入、更新、删除等操作
JadePool CRUD举例
1、调用并执行一个sql文件
Jade j = new Jade(); //开始事务
boolean b = j.executeSqlFile("d:\\createTable.sql");
j.commit();//事务提交并关闭连接
2、查询数据库的结构信息
Jade j = new Jade();
String s = j.queryDbInfo();
System.out.println(s);
j.commit();
3、查询数据库的一个表的结构信息
Jade j = new Jade();
String s = j.queryTableInfo(tableName);
System.out.println(s);
j.commit();
4、插入一组记录
List<Map> list=...;
Jade j = new Jade();
j.insert(tableName, list);
j.commit();
5、更新一组记录
List<Map> list=...;
Jade j = new Jade();
j.update(tableName, list);
j.commit();
6、插入或更新一条记录
Map m=...;//一条记录
Jade j = new Jade();
Object keyValue=j.saveOne(tableName, m);//或者int num=j.save(tableName, m);
j.commit();
7、插入或更新一组记录
List<Map> list=...;//一组记录
Jade j = new Jade();
int num=0;
for(Map m:list){
num=num+j.save(tableName, m);
}
j.commit();
8、插入或更新一条主表记录、并插入或更新一组子表记录
Map m=...;//一条主表记录
List<Map> list=...;//一组子表记录
Jade j = new Jade();
Object keyValue=j.saveOne(tableName, m);
int num=0;
for(Map mm:list){
mm.put(keyName, keyValue);
num=num+j.save(subTableName, mm);
}
j.commit();
9、【实例】在Servlet中保存一组由表单提交的记录
使用的数据库表
create table test_tel( /*通信录*/
id bigint primary key, /*主键*/
danwei varchar(50), /*单位*/
dianhua varchar(16), /*电话*/
zhaopian image /*照片*/
)
表单范例。在多组记录中,第一个字段不要用check、radio按钮,使用这两个属性值 method="post" enctype="multipart/form-data"
<form action="./TelServlet" method="post" enctype="multipart/form-data">
<table>
<tr>
<th>姓名</th><th>单位</th><th>电话</th><th>照片</th>
</tr>
<tr>
<td><input type="hidden" name="id" value="1"/><input name="xingming" value="张山月"/></td>
<td><textarea name="danwei">华联超市</textarea></td>
<td><input name="dianhua" value="400-1230-1000"/></td>
<td><input type="file" name="zhaopian"/></td>
</tr>
<tr>
<td><input type="hidden" name="id" value="2"/><input name="xingming" value="李海江"/></td>
<td><textarea name="danwei">中国电信</textarea></td>
<td><input name="dianhua" value="400-1230-1001"/></td>
<td><input type="file" name="zhaopian"/></td>
</tr>
<tr>
<td><input type="hidden" name="id" value="3"/><input name="xingming" value="王大鹏"/></td>
<td><textarea name="danwei">中国移动</textarea></td>
<td><input name="dianhua" value="400-1230-1002"/></td>
<td><input type="file" name="zhaopian"/></td>
</tr>
<tr>
<td colspan="4" align="center"><input type=submit value='提交'/></td>
</tr>
</table>
</form>
万能表单解析
ProcessForm form = ProcessForm.instance();//万能表单解析,包括对所有的文本字段、上传文件(图片多媒体等文件)字段的解析
form.parse(request);
List<Map> list = form.getRecordList();//获取多条记录//Map m = form.getRecord();//获取一条记录
Jade j = new Jade();
for (Map m : list) {
j.save("test_tel", m);
}
List<Map> v=j.query("select * from test_tel");//查询
for (Map m : v) {
System.out.println(m);
}
j.commit();
保存后输出的查询结果
{id=1, danwei=华联超市, dianhua=400-1230-1000, zhaopian=[B@1dbb3e7}
{id=2, danwei=中国电信, dianhua=400-1230-1001, zhaopian=[B@1003b09}
{id=3, danwei=中国移动, dianhua=400-1230-1002, zhaopian=[B@2406db}
10、查询一条记录
Jade j = new Jade();
Map m=j.queryOne(querySql);//可以是任意复杂的查询语句
j.commit();
11、查询一组记录
Jade j = new Jade();
List<Map> list=j.query(querySql);//可以是任意复杂的查询语句
j.commit();
12、大型记录分组索引查询
/*
* 假设表tableName中含有100万条记录,按每组1000条记录分组,查找第99组记录[索引号98]
*/
Jade j = new Jade();
List<Map> v = j.indexByIndexNodes(tableName, new String[]{fieldName1, fieldName2, fieldName3}, 98, false降序, false不重新创建索引数组);
j.commit();
13、删除记录
Jade j = new Jade();
int num=j.delete(deleteSql);//sql删除语句
j.commit();
14、取消插入、更新、删除等操作
Jade j = new Jade();
int num=j.delete(deleteSql);//sql删除语句
j.cancel();//事务回滚,并关闭连接
说明:
1、jadepool-1.0-GBK下载的网址:
http://download.youkuaiyun.com/detail/wj800/5109413
http://www.jadepool.cn/
2、初次使用JadePool工具,可以参阅本人的优快云博文 “高效JDBC编程工具JadePool快速入门 “