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 插件来规范自己的代码.
操作数据库的强大工具:
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 插件来规范自己的代码.