2, public int deleteByVO(Object obj)//返回删除的记录数
注:如果未对obj设置任何条件将不会进行删除操作(因为个人认为这一般是不可能的,比较危险,所以加以控制)
程序:删除姓 李 的记录
TbPerson tp =new TbPerson();
tp.setPerName("李%");
ds.deleteByVO(tp);
----------------------------------------------
程序:删除年龄大于等于 19岁的记录
TbPerson tp =new TbPerson();
tp.setPerAge(new Long(19),">=");//所有双参数方法都是为一些条件选择而用,后面一参数是用来设操作符的 > < >= <= !=,这些,方便吧
ds.deleteByVO(tp);
----------------------------------------------
程序:删除年龄为空的记录
TbPerson tp =new TbPerson();
tp.setPerAge(null);
ds.deleteByVO(tp);
----------------------------------------------
3 public int update(Object obj)
此操作必须对主键进行设置,否则报错,设置其它字段属于为更新字段,其它字段未设置也会报错,说明没有可更新的字段,
程序 略
4 public int update(Object src,Object tar)//两对象必须同类(代表同一表)
此操作 以前一对象做为条件进行批量更新后一对象设置的值,条件如是字符串可设置带%,条件对象也可加操作符,使用所有双参数设置都相同,其它可设置null,对''字符串不处理
程序 略
5 public boolean insert(Object obj)//未进行设置的字段为null
程序 插入一个叫 刘德华 年龄为38的记录
TbPerson tp =new TbPerson();
pt.setPerName("刘德华");
pt.setPerAge(new Long(38));//age为Long型的话
ds.insert(pt);
----------------------------------------------
程序 插入一个叫 罗拿多 的,年龄未知
TbPerson tp =new TbPerson();
pt.setPerName("罗拿多");
ds.insert(pt);
----------------------------------------------
6 public List selectAll(Class class1)
返回所有记录(但此处为考虑程序的效率,设置了一个最大数,可参看原文件中定义的MAX_SIZE可进行更改,
程序 查出所有tb_person表的记录
List list = ds.selectAll(TbPerson.class);//也简单吧
-----------------------------------------------
7 public void selectByPK(Object obj)
根据主键查找记录 ,这个是无返回值的,返回的就是本身的这个obj,为了省点内存,不用多new一个对象,而且实现的话主键已经设好,只要设其它字段,而且个人认为这样更好用,如果一个表无主键,那么查出来的就是数据库的第一条记录,利用 rownum=1实现,而不是查出的第一条,最大程度地提高数据库的效率,
程序 查出名叫 刘德华的记录
TbPerson tp =new TbPerson("刘德华");
ds.selectByPK(tp);
然后 这个tp就是一个与数据库主键为刘德华的记录,可以用它了
-------------------------------------------------
8 public List selectByVO(Object obj)
此方法跟上面的deleteByVO的使用基本相同,返回值是vo的一个系列,
有一点不同的是,deleteByVO不设置任何查询条件将不会做操作,而此方法不设置任何条件的话就会查出所有的(个人认为查询是无危害性的,要查就查吧)
程序 参考 deleteByVO
9 public List selectByVO(Object obj, int i, int j)
此方法是上一方法的扩充,主要是用于分页操作,
程序 查姓 刘 的第11条记录到20条
ds.selectByVO(new TbPerson("刘%"),11,20);//呵呵,感觉这样有点别扭
本应该 TbPerson tp =new TbPerson();
tp.setPerName("刘%");
ds.selectByVO(tp,11,20);//效果一样,
--------------------------------------------------
10 public int sqlExcute(String s, List list)
这个是用于直接调 sql语句的操作,主要是执行一些更新,删除操作, list就是按条件顺序设置的参数集,PreparedStatement的操作
程序 略
11 public List selectBySQL(String s, List list)
这个是用于直接调 sql语句的操作,执行查询操作, list就是按条件顺序设置的参数集,PreparedStatement的操作
return List 含map的list,key为字段全部小写
程序 略
12 public List selectByQuery(String s, List list)
这个是用于直接调 sql语句的操作,执行查询操作, list就是按条件顺序设置的参数集,PreparedStatement的操作
return List 含map的list,key为字段全部小写
程序 略
13 public List selectByQuery(String s, List list,int i,int j)
同上,但主要是为了分页操作,
throws DAOException;
public void close()throws SQLException;
数据库联接关闭
关于事物提义及回滚请使用ConnectionUtil.currentConnection("piliskys")的操作。
此程序支持在控制台显示sql语句,可以在配制文件中设置是否显示,具体操作参看包中的说明。
========================================================================
当然个人的能力是有限的,如果你认为还应该实现什么功能,程序哪方面不如人意,本人只是按照自己的观点,站在一个编程者的角度考虑问题,不足之处可能很多,希望多提见意和建议,程序只是经本人进行测试,可能不是很全面,希望共同完善。
关于如何部署于程序,包中有说明。
注意事项:不支持复合主键作为其它表的外键,下次改进吧。
最后:请尊重他人成果,谢谢您的支持,本人邮箱piliskys@itpub.net希望得到你的意见和建议。
========================================================================
此处下载原程序http://www.blogjava.net/Files/piliskys/jdbcutil.rar
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/134308/viewspace-140589/,如需转载,请注明出处,否则将追究法律责任。