DbUtil操作数据库的工具

DbUtil这个操作数据库的工具
操作数据库的强大工具:

http://commons.apache.org/dbutils/examples.html 

dbutils:这个网站有操作数据库更简洁的实例,,比加说增加,修改,查询,删除.

用它实例里的方法可以省去我们以前用的预编译.例如增加这个功能:

Example:QueryRunner run = new QueryRunner( dataSource );
try
{  
    Object[] insertParams =
{"John Doe", new Double( 1.82 )}

;
    int inserts = run.update( "INSERT INTO Person (name,height) VALUES (?,?)",insertParams );
    Object[] updateParams =
{new Double( 2.05 ), "John Doe"}

;
    int updates = run.update( "UPDATE Person SET height=? WHERE name=?",
                              updateParams );
}
catch(SQLException sqle) {
         System.out.println(“”sqle);
}

DbUtils 关闭链接等操作

QueryRunner 进行查询的操作


rg.apache.commons.dbutils.handlers


ArrayHandler :将ResultSet中第一行的数据转化成对象数组


ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是Object[]


BeanHandler :将ResultSet中第一行的数据转化成类对象


BeanListHandler :将ResultSet中所有的数据转化成List,List中存放的是类对象


ColumnListHandler :将ResultSet中某一列的数据存成List,List中存放的是Object对象


KeyedHandler :将ResultSet中存成映射,key为某一列对应为Map。Map中存放的是数据


MapHandler :将ResultSet中第一行的数据存成Map映射


MapListHandler :将ResultSet中所有的数据存成List。List中存放的是Map


ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object








代码规范:


1.         servlet和身在循环,不能放sql语句.


2.         如果在区分临时的变量,就在后面加TMP.


3.         做主键的列没有任何业务逻辑,没有任何实际意义,而且任何时候都不能修改。


4.         提交代码前如果有TODO标签,要删除掉,如果要标记没有做完的任务或者以后要改进的任务,用LXTODO.


5.         id一般不用int类型,用long类型


6.         PreparedStatement 最好不要声明为类字段.


7.         两个不同的包不能出现相同的文件名


8.         类字段 初始化不能调用别的函数有可能你调用的那个函数又调用这个类,会造成死循环





9>:如果要用到接口里的常量,不要用实现,直接用接口/类名.常量名,


也就是组合优先大于继承与实现,所谓的组合是直接引用.


10>:如果在一个类里,这个变量及方法,被多次使用,就把它抽取到父类里.


11>:QueryRunner不要做全局声明.


12>:如果有很多的DAO的增,删,查,改,就建一个BaseDAO抽象类,它里面写


出增,删,查,改的抽象方法,这样不管是学生的,老师的增,删,查,改.你只要继承这个类.


然后重写就行了,这样就更统一管理了.




PMD是一个代码检查工具,用于检查Java源代码,以便发现如下的潜在问题:


1.潜在的bug:空的try/catch/finally/switch语句


2.未使用的代码:未使用的局部变量、参数、私有方法等


3.可选的代码:String/StringBuffer的滥用


4.复杂的表达式:不必须的if语句、可以使用while循环完成的for循环


5.重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs

收获:学到这用DbUtil做增,删,查,改,还有学会了写测试类,及用PDM 插件来规范自己的代码.

你可能感兴趣的:(DAO,apache,sql,servlet,单元测试)