JDBC
1 package cn.com.ecinc.ecoa.todo; 2 3 import java.io.InputStream; 4 import java.sql.Connection; 5 import java.sql.DriverManager; 6 import java.sql.PreparedStatement; 7 import java.sql.ResultSet; 8 import java.sql.ResultSetMetaData; 9 import java.sql.SQLException; 10 import java.util.ArrayList; 11 import java.util.HashMap; 12 import java.util.List; 13 import java.util.Map; 14 import java.util.Properties; 15 16 17 18 public class DBUtil { 19 20 21 22 // 表示定义数据库的用户名 23 private static String USERNAME ; 24 25 // 定义数据库的密码 26 private static String PASSWORD; 27 28 // 定义数据库的驱动信息 29 private static String DRIVER; 30 31 // 定义访问数据库的地址 32 private static String URL; 33 34 // 定义数据库的链接 35 private Connection connection; 36 37 // 定义sql语句的执行对象 38 private PreparedStatement pstmt; 39 40 // 定义查询返回的结果集合 41 private ResultSet resultSet; 42 43 static{ 44 //加载数据库配置信息,并给相关的属性赋值 45 loadConfig(); 46 } 47 48 /** 49 * 加载数据库配置信息,并给相关的属性赋值 50 */ 51 public static void loadConfig() { 52 try { 53 InputStream inStream = DBUtil.class 54 .getResourceAsStream("/application.properties"); 55 Properties prop = new Properties(); 56 prop.load(inStream); 57 USERNAME = prop.getProperty("jdbc.username_nw"); 58 PASSWORD = prop.getProperty("jdbc.password_nw"); 59 DRIVER= prop.getProperty("jdbc.driverClassName"); 60 URL = prop.getProperty("jdbc.url_nw"); 61 } catch (Exception e) { 62 throw new RuntimeException("读取数据库配置文件异常!", e); 63 } 64 } 65 66 /** 67 * 获取数据库连接 68 * 69 * @return 数据库连接 70 */ 71 public Connection getConnection() { 72 try { 73 Class.forName(DRIVER); // 注册驱动 74 connection = DriverManager.getConnection(URL, USERNAME, PASSWORD); // 获取连接 75 } catch (Exception e) { 76 throw new RuntimeException("get connection error!", e); 77 } 78 return connection; 79 } 80 81 public Connection getConnection(String URL, String USERNAME, String PASSWORD) { 82 try { 83 Class.forName(DRIVER); // 注册驱动 84 connection = DriverManager.getConnection(URL, USERNAME, PASSWORD); // 获取连接 85 } catch (Exception e) { 86 throw new RuntimeException("get connection error!", e); 87 } 88 return connection; 89 } 90 91 /** 92 * 执行更新操作 93 * 94 * @param sql 95 * sql语句 96 * @param params 97 * 执行参数 98 * @return 执行结果 99 * @throws SQLException 100 */ 101 private boolean updateByPreparedStatement(String sql, List<?> params) 102 throws SQLException { 103 boolean flag = false; 104 int result = -1;// 表示当用户执行添加删除和修改的时候所影响数据库的行数 105 pstmt = connection.prepareStatement(sql); 106 int index = 1; 107 // 填充sql语句中的占位符 108 if (params != null && !params.isEmpty()) { 109 for (int i = 0; i < params.size(); i++) { 110 pstmt.setObject(index++, params.get(i)); 111 } 112 } 113 result = pstmt.executeUpdate(); 114 flag = result > 0 ? true : false; 115 return flag; 116 } 117 118 119 120 121 /** 122 * 执行查询操作 123 * 124 * @param sql 125 * sql语句 126 * @param params 127 * 执行参数 128 * @return 129 * @throws SQLException 130 */ 131 public List<Map<String, Object>> findResult(String sql, List<?> params) 132 throws SQLException { 133 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); 134 int index = 1; 135 pstmt = connection.prepareStatement(sql); 136 if (params != null && !params.isEmpty()) { 137 for (int i = 0; i < params.size(); i++) { 138 pstmt.setObject(index++, params.get(i)); 139 } 140 } 141 resultSet = pstmt.executeQuery(); 142 ResultSetMetaData metaData = resultSet.getMetaData(); 143 int cols_len = metaData.getColumnCount(); 144 while (resultSet.next()) { 145 Map<String, Object> map = new HashMap<String, Object>(); 146 for (int i = 0; i < cols_len; i++) { 147 String cols_name = metaData.getColumnName(i + 1); 148 Object cols_value = resultSet.getObject(cols_name); 149 if (cols_value == null) { 150 cols_value = ""; 151 } 152 map.put(cols_name, cols_value); 153 } 154 list.add(map); 155 } 156 return list; 157 } 158 159 /** 160 * 释放资源 161 */ 162 public void releaseConn() { 163 if (resultSet != null) { 164 try { 165 resultSet.close(); 166 } catch (SQLException e) { 167 e.printStackTrace(); 168 } 169 } 170 if (pstmt != null) { 171 try { 172 pstmt.close(); 173 } catch (SQLException e) { 174 e.printStackTrace(); 175 } 176 } 177 if (connection != null) { 178 try { 179 connection.close(); 180 } catch (SQLException e) { 181 e.printStackTrace(); 182 } 183 } 184 } 185 186 public static void main(String[] args) { 187 DBUtil jdbcUtil = new DBUtil(); 188 jdbcUtil.getConnection(); 189 try { 190 List<Map<String, Object>> result = jdbcUtil.findResult( 191 "select * from BASE_ROLE", null); 192 for (Map<String, Object> m : result) { 193 System.out.println(m); 194 } 195 } catch (SQLException e) { 196 e.printStackTrace(); 197 } finally { 198 jdbcUtil.releaseConn(); 199 } 200 } 201 202 203 public static List<Object> excuteSql(String sql) { 204 DBUtil jdbcUtil = new DBUtil(); 205 jdbcUtil.getConnection(); 206 List<Object> result = null; 207 try { 208 result = jdbcUtil.findResultBySql(sql); 209 } catch (SQLException e) { 210 e.printStackTrace(); 211 } finally { 212 jdbcUtil.releaseConn(); 213 } 214 215 return result; 216 } 217 218 public List<Object> findResultBySql(String sql) throws SQLException { 219 List<Object> list = new ArrayList<Object>(); 220 int index = 1; 221 pstmt = connection.prepareStatement(sql); 222 resultSet = pstmt.executeQuery(); 223 ResultSetMetaData metaData = resultSet.getMetaData(); 224 int cols_len = metaData.getColumnCount(); 225 while (resultSet.next()) { 226 for (int i = 0; i < cols_len; i++) { 227 String cols_name = metaData.getColumnName(i + 1); 228 Object cols_value = resultSet.getObject(cols_name); 229 if (cols_value == null) { 230 cols_value = ""; 231 } 232 list.add(cols_value); 233 } 234 } 235 return list; 236 } 237 238 }
1 String sql =" SELECT COUNT(WF_TASK_ITEM.ID) FROM WF_TASK_ITEM left join WF_INSTANCE on WF_TASK_ITEM.WF_INSTANCE_ID=WF_INSTANCE.ID " + 2 " WHERE OWNER_ACCOUNT='"+SystemUtil.getLoginObject().getPersonAccount()+"' AND WF_TASK_ITEM.STATUS='0' AND ITEM_TYPE='TODO' and (WF_INSTANCE.MODULE='shouwen' or WF_INSTANCE.MODULE='fawen' or WF_INSTANCE.MODULE='hytz' or WF_INSTANCE.MODULE='dzgg' or WF_INSTANCE.MODULE='qsbg')"; 3 String resurn = ""; 4 List<Object> list = DBUtil.excuteSql(sql); 5 if(list!=null && list.size()>0){ 6 resurn = "("+list.get(0)+")"; 7 }