1. 程式人生 > >DBUtils學習一 增刪該查

DBUtils學習一 增刪該查

junit .com run jin exc query 完全 jdbc 問題

  1 package com.mozq.jdbc.test;
  2 
  3 import java.sql.SQLException;
  4 import java.util.List;
  5 import java.util.Map;
  6 import java.util.Map.Entry;
  7 
  8 import org.apache.commons.dbutils.QueryRunner;
  9 import org.apache.commons.dbutils.handlers.BeanHandler;
 10 import org.apache.commons.dbutils.handlers.BeanListHandler;
11 import org.apache.commons.dbutils.handlers.BeanMapHandler; 12 import org.apache.commons.dbutils.handlers.ColumnListHandler; 13 import org.apache.commons.dbutils.handlers.MapHandler; 14 import org.apache.commons.dbutils.handlers.MapListHandler; 15 import org.apache.commons.dbutils.handlers.ScalarHandler;
16 import org.junit.Test; 17 18 import com.mozq.domain.User; 19 import com.mozq.jdbc.C3P0Utils; 20 21 public class DBUtilsTest_R { 22 /** 23 * 測試查詢用戶數量,ScalarHandler處理器,new ScalarHandler<Long>(),註意類型參數只能寫Long,不能寫Integer 24 */ 25 @Test 26 public void findAll_ScalarHandler() {
27 try { 28 //1.創建核心執行對象 29 QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); 30 //2.寫sql 31 String sql = "select count(*) from t_user"; 32 //3.準備參數 33 //4.執行sql,進行結果處理 34 Long row = queryRunner.query(sql, new ScalarHandler<Long>()); 35 System.out.println("操作行數:" + row); 36 } catch (SQLException e) { 37 e.printStackTrace(); 38 } 39 } 40 /** 41 * 測試根查詢所有用戶,MapListHandler處理器,new MapListHandler() 42 */ 43 @Test 44 public void findAll_MapListHandler() { 45 try { 46 //1.創建核心執行對象 47 QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); 48 //2.寫sql 49 String sql = "select * from t_user"; 50 //3.準備參數 51 //4.執行sql,進行結果處理 52 List<Map<String, Object>> users = queryRunner.query(sql, new MapListHandler()); 53 for(Map<String, Object> user : users) { 54 for(Entry<String, Object> entry : user.entrySet()) { 55 System.out.print(entry.getKey()+":"+entry.getValue()+";"); 56 } 57 System.out.println(); 58 } 59 } catch (SQLException e) { 60 e.printStackTrace(); 61 } 62 } 63 /** 64 * 測試根據id查詢單個用戶,MapHander處理器,new MapHandler() 65 */ 66 @Test 67 public void findById_MapHandler() { 68 try { 69 //1.創建核心執行對象 70 QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); 71 //2.寫sql 72 String sql = "select * from t_user where id=?"; 73 //3.準備參數 74 Object[] params = {9}; 75 //4.執行sql,進行結果處理 76 Map<String, Object> user = queryRunner.query(sql, new MapHandler(), params); 77 for (Entry<String, Object> entry : user.entrySet()) { 78 System.out.println(entry.getKey()+ ":" + entry.getValue()); 79 } 80 /* 81 id:9 82 name:劉備 83 password:liu456 84 */ 85 } catch (SQLException e) { 86 e.printStackTrace(); 87 } 88 } 89 /** 90 * 測試查詢全部用戶名,ColumnList處理器,按列索引處理(需要在查詢語句中明確列順序)和按列名處理 91 */ 92 @Test 93 public void findAllName_ColumnListHandler() { 94 try { 95 //1.創建核心執行對象 96 QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); 97 //2.寫sql 98 String sql = "select password, name, id from t_user"; 99 //3.準備參數 100 //4.執行sql,進行結果處理 101 List<String> userNames = queryRunner.query(sql, new ColumnListHandler<String>()); 102 for (String userName : userNames) { 103 System.out.println(userName); 104 } 105 List<String> userNames2 = queryRunner.query(sql, new ColumnListHandler<String>("name")); 106 for (String userName : userNames2) { 107 System.out.println(userName); 108 } 109 110 } catch (SQLException e) { 111 e.printStackTrace(); 112 } 113 } 114 /** 115 * 測試查詢全部,BeanMap處理器,new BeanMapHandler<Integer, User>(User.class, "id") 116 */ 117 @Test 118 public void findAll_BeanMapHandler() { 119 try { 120 //1.創建核心執行對象 121 QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); 122 //2.寫sql 123 String sql = "select id, name, password from t_user"; 124 //3.準備參數 125 //4.執行sql,進行結果處理 126 /*用主鍵列來當鍵,完全沒有問題*/ 127 System.out.println("new BeanMapHandler<Integer, User>(User.class, \"id\")"); 128 Map<Integer, User> users = queryRunner.query(sql, new BeanMapHandler<Integer, User>(User.class, "id")); 129 for (Entry<Integer, User> it : users.entrySet()) { 130 System.out.println(it.getValue()); 131 } 132 133 /*用可重復的列來當鍵,會發生記錄覆蓋*/ 134 System.out.println("new BeanMapHandler<String, User>(User.class, \"name\")----------"); 135 Map<String, User> users2 = queryRunner.query(sql, new BeanMapHandler<String, User>(User.class, "name")); 136 for (Entry<String, User> it : users2.entrySet()) { 137 System.out.println(it.getValue()); 138 } 139 140 } catch (SQLException e) { 141 e.printStackTrace(); 142 //java.sql.SQLException: Cannot determine value type from string ‘liu123‘ Query: select * from t_user Parameters: [] 143 } 144 } 145 /** 146 * 測試查詢全部,BeanList處理器,new BeanListHandler<User>(User.class) 147 */ 148 @Test 149 public void findAll_BeanListHandler() { 150 try { 151 //1.創建核心執行對象 152 QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); 153 //2.寫sql 154 String sql = "select * from t_user"; 155 //3.準備參數 156 //4.執行sql,進行結果處理 157 List<User> users = queryRunner.query(sql, new BeanListHandler<User>(User.class)); 158 for (User user : users) { 159 System.out.println(user); 160 } 161 } catch (SQLException e) { 162 e.printStackTrace(); 163 } 164 } 165 /** 166 * 測試根據id查詢單個,Bean處理器,new BeanHandler<User>(User.class) 167 */ 168 @Test 169 public void findById_BeanHandler() { 170 try { 171 //1.創建核心執行對象 172 QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); 173 //2.寫sql 174 String sql = "select * from t_user where id=?"; 175 //3.準備參數 176 Object[] params = {9}; 177 //4.執行sql,進行結果處理 178 User user = queryRunner.query(sql, new BeanHandler<User>(User.class), params); 179 System.out.println(user);//User [id=9, name=劉備, password=liu123] 180 } catch (SQLException e) { 181 e.printStackTrace(); 182 } 183 } 184 }
  1 package com.mozq.jdbc.test;
  2 
  3 import java.sql.SQLException;
  4 
  5 import org.apache.commons.dbutils.QueryRunner;
  6 import org.apache.commons.dbutils.handlers.BeanHandler;
  7 import org.junit.Test;
  8 
  9 import com.mozq.domain.User;
 10 import com.mozq.jdbc.C3P0Utils;
 11 
 12 /**
 13  * 測試DBUtils工具類的增刪改操作
 14  * @author jie
 15  *
 16  */
 17 public class DBUtilsTest_CUD {
 18     /**
 19      * 根據id刪除用戶
 20      */
 21     @Test
 22     public void DeleteUserById() {
 23         try {
 24             // 1.創建核心類
 25             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
 26             // 2.寫sql
 27             String sql = "delete from t_user where id=?";
 28             // 3.準備參數
 29             Object[] params = { 8 };
 30             // 4.執行sql,進行結果處理
 31             int row = queryRunner.update(sql, params);
 32             if (row > 0) {
 33                 System.out.println("刪除成功");
 34             } else {
 35                 System.out.println("刪除失敗");
 36             }
 37         } catch (SQLException e) {
 38             e.printStackTrace();
 39         }
 40     }
 41 
 42     /**
 43      * 根據id修改用戶
 44      */
 45     @Test
 46     public void UpdateUserById() {
 47         try {
 48             // 1.創建核心類
 49             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
 50             // 2.寫sql
 51             String sql = "update t_user set password=? where id=?";
 52             // 3.準備參數
 53             Object[] params = { "jingdong", 8 };
 54             int row = queryRunner.update(sql, params);
 55             if (row > 0) {
 56                 System.out.println("修改成功");
 57             } else {
 58                 System.out.println("修改失敗");
 59             }
 60         } catch (SQLException e) {
 61             e.printStackTrace();
 62         }
 63     }
 64 
 65     /**
 66      * 插入用戶方法
 67      */
 68     @Test
 69     public void addUser() {
 70         try {
 71             // 1.創建核心類
 72             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
 73             // 2.寫sql
 74             String sql = "insert into t_user(name, password) values(?,?)";
 75             // 3.準備參數
 76             Object[] params = { "京東0", "劉強東0" };
 77             int row = queryRunner.update(sql, params);
 78             if (row > 0) {
 79                 System.out.println("插入成功");
 80             } else {
 81                 System.out.println("插入失敗");
 82             }
 83         } catch (SQLException e) {
 84             e.printStackTrace();
 85         }
 86     }
 87 
 88     /**
 89      * 測試insert方法,查看返回對象
 90      */
 91     @Test
 92     public void insert2() {
 93         try {
 94             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
 95             String sql = "insert into t_user(id, name, password) values(?, ?, ?)";
 96             User userObj = queryRunner.insert(sql, new BeanHandler<User>(User.class), 31, "京東5", "劉強東");
 97             System.out.println(userObj);
 98         } catch (SQLException e) {
 99             e.printStackTrace();
100         }
101     }
102 }

DBUtils學習一 增刪該查