Dbutis

Dbutis

  1. packagecn.lining.test;
  2. importjava.sql.Connection;
  3. importjava.sql.DriverManager;
  4. importjava.sql.SQLException;
  5. importjava.util.List;
  6. importjava.util.Map;
  7. importorg.apache.commons.dbutils.DbUtils;
  8. importorg.apache.commons.dbutils.QueryRunner;
  9. importorg.apache.commons.dbutils.handlers.ArrayHandler;
  10. importorg.apache.commons.dbutils.handlers.ArrayListHandler;
  11. importorg.apache.commons.dbutils.handlers.BeanHandler;
  12. importorg.apache.commons.dbutils.handlers.BeanListHandler;
  13. importorg.apache.commons.dbutils.handlers.ColumnListHandler;
  14. importorg.apache.commons.dbutils.handlers.KeyedHandler;
  15. importorg.apache.commons.dbutils.handlers.MapHandler;
  16. importorg.apache.commons.dbutils.handlers.MapListHandler;
  17. importorg.apache.commons.dbutils.handlers.ScalarHandler;
  18. publicclasstest{
  19. @SuppressWarnings("unchecked")
  20. publicstaticvoidmain(String[]args)throwsClassNotFoundException{
  21. UserFielduserField=newUserField();
  22. Connectionconn=null;
  23. StringjdbcURL="jdbc:mysql://localhost:3306/macaw4";
  24. StringjdbcDriver="com.mysql.jdbc.Driver";
  25. try{
  26. DbUtils.loadDriver(jdbcDriver);
  27. conn=DriverManager.getConnection(jdbcURL,"root","root");
  28. conn.setAutoCommit(false);//关闭自动提交
  29. QueryRunnerqRunner=newQueryRunner();
  30. //以下部分代码采用MapHandler存储方式查询
  31. System.out.println("***UsingMapHandler***");
  32. Mapmap=(Map)qRunner.query(conn,
  33. "select*frommc_user_fieldwhereid=?",
  34. newMapHandler(),newObject[]{"5"});
  35. System.out.println("id-------------name");
  36. System.out.println(map.get("id")+"-------------"
  37. +map.get("name"));
  38. //以下部分代码采用MapListHandler存储方式查询
  39. System.out.println("***UsingMapListHandler***");
  40. ListlMap=(List)qRunner.query(conn,
  41. "select*frommc_user_field",newMapListHandler());
  42. System.out.println("id-------------name");
  43. for(inti=0;i<lMap.size();i++){
  44. Mapvals=(Map)lMap.get(i);
  45. System.out.println(vals.get("id")+"-------------"
  46. +vals.get("name"));
  47. }
  48. //以下部分代码采用BeanHandler存储方式查询
  49. System.out.println("***UsingBeanHandler***");
  50. userField=(UserField)qRunner.query(conn,
  51. "select*frommc_user_fieldwhereid=?",
  52. newBeanHandler(Class.forName("cn.lining.test.UserField")),
  53. newObject[]{"5"});
  54. System.out.println("id-------------name");
  55. System.out.println(userField.getId()+"-------------"
  56. +userField.getName());
  57. //以下部分代码采用BeanListHandler存储方式查询
  58. System.out.println("***UsingBeanListHandler***");
  59. ListlBean=(List)qRunner.query(conn,
  60. "select*frommc_user_field",newBeanListHandler(Class
  61. .forName("cn.lining.test.UserField")));
  62. System.out.println("id-------------name");
  63. for(inti=0;i<lBean.size();i++){
  64. userField=(UserField)lBean.get(i);
  65. System.out.println(userField.getId()+"-------------"
  66. +userField.getName());
  67. }
  68. //以下部分代码采用ArrayHandler存储方式查询
  69. System.out.println("***UsingArrayHandler***");
  70. Object[]array=(Object[])qRunner.query(conn,
  71. "select*frommc_user_fieldwhereid=?",
  72. newArrayHandler(),newObject[]{"5"});
  73. System.out.println("id-------------name");
  74. System.out.println(array[0].toString()+"-------------"
  75. +array[1].toString());
  76. //以下部分代码采用ArrayListHandler存储方式查询
  77. System.out.println("***UsingArrayListHandler***");
  78. ListlArray=(List)qRunner.query(conn,
  79. "select*frommc_user_field",newArrayListHandler());
  80. System.out.println("id-------------name");
  81. for(inti=0;i<lArray.size();i++){
  82. Object[]var=(Object[])lArray.get(i);
  83. System.out.println(var[0].toString()+"-------------"
  84. +var[1].toString());
  85. }
  86. //以下部分代码采用ColumnListHandler存储方式查询指定列
  87. System.out.println("***UsingColumnListHandler***");
  88. ListlName=(List)qRunner.query(conn,
  89. "select*frommc_user_fieldwhereid=?",
  90. newColumnListHandler("name"),newObject[]{"5"});
  91. System.out.println("name");
  92. for(inti=0;i<lName.size();i++){
  93. Stringname=(String)lName.get(i);
  94. System.out.println(name);
  95. }
  96. //以下部分代码采用ScalarHandler存储方式查询
  97. System.out.println("***UsingScalarHandler***");
  98. Stringname=(String)qRunner.query(conn,
  99. "select*frommc_user_fieldwhereid=?",
  100. newScalarHandler("name"),newObject[]{"5"});
  101. System.out.println("name");
  102. System.out.println(name);
  103. //以下部分代码采用KeyedHandler存储方式查询
  104. System.out.println("***UsingKeyedHandler***");
  105. Map<String,Map>map2=(Map<String,Map>)qRunner.query(conn,
  106. "select*frommc_user_field",newKeyedHandler("name"));
  107. System.out.println("name:field_name2");
  108. Mapvals=(Map)map2.get("field_name2");
  109. System.out.println(vals.get("id")+""+vals.get("name")+""
  110. +vals.get("type"));
  111. //以下部分代码插入一条数据
  112. System.out.println("***Insertbegin***");
  113. userField=newUserField();
  114. qRunner.update(conn,"insertintomc_user_field("
  115. +"id,name,type,sort_order,required,visible)"
  116. +"values(?,?,?,?,?,?)",newObject[]{userField.getId(),
  117. userField.getName(),userField.getType(),
  118. userField.getSort_order(),userField.getRequired(),
  119. userField.getVisible()});
  120. System.out.println("***updateend***");
  121. //以下部分代码更新一条数据
  122. System.out.println("***updatebegin***");
  123. userField=newUserField();
  124. qRunner.update(conn,"updatemc_user_fieldset"
  125. +"name=?,type=?,sort_order=?,"
  126. +"required=?,visible=?"+"whereid=?",
  127. newObject[]{userField.getName(),userField.getType(),
  128. userField.getSort_order(),userField.getRequired(),
  129. userField.getVisible(),userField.getId()});
  130. System.out.println("***updateend***");
  131. //以下部分代码删除一条数据
  132. System.out.println("***deletebegin***");
  133. userField=newUserField();
  134. qRunner.update(conn,"deletefrommc_user_fieldwhereid2=?",
  135. newObject[]{userField.getId()});
  136. System.out.println("***deleteend***");
  137. }catch(SQLExceptionex){
  138. ex.printStackTrace();
  139. try{
  140. System.out.println("***rollbackbegin***");
  141. DbUtils.rollback(conn);
  142. System.out.println("***rollbackend***");
  143. }catch(SQLExceptione){
  144. e.printStackTrace();
  145. }
  146. }finally{
  147. DbUtils.closeQuietly(conn);
  148. }
  149. }
  150. }

· ArrayHandler:把结果集中的第一行数据转成对象数组。

· ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到List中。

· BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。

· BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。

· ColumnListHandler:将结果集中某一列的数据存放到List中。

· KeyedHandler:将结果集中的每一行数据都封装到一个Map里,然后再根据指定的key把每个Map再存放到一个Map里。

· MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。

· MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List。

· ScalarHandler:将结果集中某一条记录的其中某一列的数据存成Object。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值