JdbcConnection.java 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. package cn.com.lzt.common.util.calendar;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. public class JdbcConnection {
  8. // 数据库用户名
  9. private static final String USERNAME = "root";
  10. // 数据库密码
  11. private static final String PASSWORD = "123456";
  12. // 驱动信息
  13. private static final String DRIVER = "com.mysql.jdbc.Driver";
  14. // 数据库地址
  15. private static final String URL = "jdbc:mysql://192.168.100.177:3306/hgl";
  16. private static Connection connection;
  17. private static PreparedStatement preparedStatement;
  18. private static ResultSet resultSet;
  19. public JdbcConnection() {
  20. // TODO Auto-generated constructor stub
  21. try {
  22. Class.forName(DRIVER);
  23. System.out.println("数据库连接成功!");
  24. } catch (Exception e) {
  25. }
  26. }
  27. /**
  28. * 获得数据库的连接
  29. *
  30. * @return
  31. */
  32. public static Connection getConnection() {
  33. try {
  34. connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
  35. } catch (SQLException e) {
  36. // TODO Auto-generated catch block
  37. e.printStackTrace();
  38. }
  39. return connection;
  40. }
  41. /**
  42. * 增删改;
  43. *
  44. * @param sql
  45. * @param obj
  46. * @return
  47. */
  48. public static int executeUpdate(String sql, Object... obj) {
  49. connection = getConnection();
  50. int result = 0;
  51. try {
  52. preparedStatement = connection.prepareStatement(sql);
  53. if (obj != null) {
  54. for (int i = 0; i < obj.length; i++) {
  55. preparedStatement.setObject(i + 1, obj[i]);
  56. }
  57. }
  58. result = preparedStatement.executeUpdate();
  59. } catch (SQLException e) {
  60. // TODO Auto-generated catch block
  61. e.printStackTrace();
  62. // 增删改返回数据,可以关闭,查询时要取数据,不可以关闭;
  63. } finally {
  64. close();
  65. }
  66. return result;
  67. }
  68. /**
  69. * 查询;
  70. *
  71. * @param sql
  72. * @param obj
  73. * @return
  74. */
  75. public static ResultSet executeQuery(String sql, Object... obj) {
  76. connection = getConnection();
  77. try {
  78. preparedStatement = connection.prepareStatement(sql);
  79. if (obj != null) {
  80. for (int i = 0; i < obj.length; i++) {
  81. preparedStatement.setObject(i + 1, obj[i]);
  82. }
  83. }
  84. resultSet = preparedStatement.executeQuery();
  85. } catch (SQLException e) {
  86. // TODO Auto-generated catch block
  87. e.printStackTrace();
  88. }
  89. return resultSet;
  90. }
  91. /**
  92. * 关闭
  93. *
  94. * @author zbw 2017年10月4日
  95. */
  96. public static void close() {
  97. try {
  98. if (resultSet != null) {
  99. resultSet.close();
  100. }
  101. if (preparedStatement != null) {
  102. preparedStatement.close();
  103. }
  104. if (connection != null) {
  105. connection.close();
  106. }
  107. } catch (SQLException e) {
  108. // TODO Auto-generated catch block
  109. e.printStackTrace();
  110. }
  111. }
  112. /**
  113. * 增加、删除、改
  114. *
  115. * @param sql
  116. * @param params
  117. * @return
  118. * @throws SQLException
  119. */
  120. // public boolean updateByPreparedStatement(String sql,
  121. // List<Object>params)throws SQLException{
  122. // boolean flag = false;
  123. // int result = -1;
  124. // pstmt = connection.prepareStatement(sql);
  125. // int index = 1;
  126. // if(params != null && !params.isEmpty()){
  127. // for(int i=0; i<params.size(); i++){
  128. // pstmt.setObject(index++, params.get(i));
  129. // }
  130. // }
  131. // result = pstmt.executeUpdate();
  132. // flag = result > 0 ? true : false;
  133. // return flag;
  134. // }
  135. /**
  136. * 查询单条记录
  137. *
  138. * @param sql
  139. * @param params
  140. * @return
  141. * @throws SQLException
  142. */
  143. // public Map<String, Object> findSimpleResult(String sql, List<Object>
  144. // params) throws SQLException{
  145. // Map<String, Object> map = new HashMap<String, Object>();
  146. // int index = 1;
  147. // pstmt = connection.prepareStatement(sql);
  148. // if(params != null && !params.isEmpty()){
  149. // for(int i=0; i<params.size(); i++){
  150. // pstmt.setObject(index++, params.get(i));
  151. // }
  152. // }
  153. // resultSet = pstmt.executeQuery();//返回查询结果
  154. // ResultSetMetaData metaData = resultSet.getMetaData();
  155. // int col_len = metaData.getColumnCount();
  156. // while(resultSet.next()){
  157. // for(int i=0; i<col_len; i++ ){
  158. // String cols_name = metaData.getColumnName(i+1);
  159. // Object cols_value = resultSet.getObject(cols_name);
  160. // if(cols_value == null){
  161. // cols_value = "";
  162. // }
  163. // map.put(cols_name, cols_value);
  164. // }
  165. // }
  166. // return map;
  167. // }
  168. /**
  169. * 查询多条记录
  170. *
  171. * @param sql
  172. * @param params
  173. * @return
  174. * @throws SQLException
  175. */
  176. // public static List<Map<String, Object>> findModeResult(String sql,
  177. // List<Object> params) throws SQLException{
  178. // List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
  179. // int index = 1;
  180. // pstmt = connection.prepareStatement(sql);
  181. // if(params != null && !params.isEmpty()){
  182. // for(int i = 0; i<params.size(); i++){
  183. // pstmt.setObject(index++, params.get(i));
  184. // }
  185. // }
  186. // resultSet = pstmt.executeQuery();
  187. // ResultSetMetaData metaData = resultSet.getMetaData();
  188. // int cols_len = metaData.getColumnCount();
  189. // while(resultSet.next()){
  190. // Map<String, Object> map = new HashMap<String, Object>();
  191. // for(int i=0; i<cols_len; i++){
  192. // String cols_name = metaData.getColumnName(i+1);
  193. // Object cols_value = resultSet.getObject(cols_name);
  194. // if(cols_value == null){
  195. // cols_value = "";
  196. // }
  197. // map.put(cols_name, cols_value);
  198. // }
  199. // list.add(map);
  200. // }
  201. //
  202. // return list;
  203. // }
  204. // public static void query(){
  205. // System.out.println("测试");
  206. // }
  207. /**
  208. * 通过反射机制查询单条记录
  209. *
  210. * @param sql
  211. * @param params
  212. * @param cls
  213. * @return
  214. * @throws Exception
  215. */
  216. // public <T> T findSimpleRefResult(String sql, List<Object> params,
  217. // Class<T> cls )throws Exception{
  218. // T resultObject = null;
  219. // int index = 1;
  220. // pstmt = connection.prepareStatement(sql);
  221. // if(params != null && !params.isEmpty()){
  222. // for(int i = 0; i<params.size(); i++){
  223. // pstmt.setObject(index++, params.get(i));
  224. // }
  225. // }
  226. // resultSet = pstmt.executeQuery();
  227. // ResultSetMetaData metaData = resultSet.getMetaData();
  228. // int cols_len = metaData.getColumnCount();
  229. // while(resultSet.next()){
  230. // //通过反射机制创建一个实例
  231. // resultObject = cls.newInstance();
  232. // for(int i = 0; i<cols_len; i++){
  233. // String cols_name = metaData.getColumnName(i+1);
  234. // Object cols_value = resultSet.getObject(cols_name);
  235. // if(cols_value == null){
  236. // cols_value = "";
  237. // }
  238. // Field field = cls.getDeclaredField(cols_name);
  239. // field.setAccessible(true); //打开javabean的访问权限
  240. // field.set(resultObject, cols_value);
  241. // }
  242. // }
  243. // return resultObject;
  244. //
  245. // }
  246. /**
  247. * 通过反射机制查询多条记录
  248. *
  249. * @param sql
  250. * @param params
  251. * @param cls
  252. * @return
  253. * @throws Exception
  254. */
  255. // public <T> List<T> findMoreRefResult(String sql, List<Object> params,
  256. // Class<T> cls )throws Exception {
  257. // List<T> list = new ArrayList<T>();
  258. // int index = 1;
  259. // pstmt = connection.prepareStatement(sql);
  260. // if(params != null && !params.isEmpty()){
  261. // for(int i = 0; i<params.size(); i++){
  262. // pstmt.setObject(index++, params.get(i));
  263. // }
  264. // }
  265. // resultSet = pstmt.executeQuery();
  266. // ResultSetMetaData metaData = resultSet.getMetaData();
  267. // int cols_len = metaData.getColumnCount();
  268. // while(resultSet.next()){
  269. // //通过反射机制创建一个实例
  270. // T resultObject = cls.newInstance();
  271. // for(int i = 0; i<cols_len; i++){
  272. // String cols_name = metaData.getColumnName(i+1);
  273. // Object cols_value = resultSet.getObject(cols_name);
  274. // if(cols_value == null){
  275. // cols_value = "";
  276. // }
  277. // Field field = cls.getDeclaredField(cols_name);
  278. // field.setAccessible(true); //打开javabean的访问权限
  279. // field.set(resultObject, cols_value);
  280. // }
  281. // list.add(resultObject);
  282. // }
  283. // return list;
  284. // }
  285. /**
  286. * 释放数据库连接
  287. */
  288. public void releaseConn() {
  289. if (resultSet != null) {
  290. try {
  291. resultSet.close();
  292. } catch (SQLException e) {
  293. e.printStackTrace();
  294. }
  295. }
  296. }
  297. /**
  298. * @param args
  299. */
  300. // public static void main(String[] args) throws SQLException {
  301. // // TODO Auto-generated method stub
  302. // JdbcUtils jdbcUtils = new JdbcUtils();
  303. // jdbcUtils.getConnection();
  304. //
  305. // /*******************增*********************/
  306. // /* String sql =
  307. // "insert into userinfo (username, pswd) values (?, ?), (?, ?), (?, ?)";
  308. // List<Object> params = new ArrayList<Object>();
  309. // params.add("小明");
  310. // params.add("123xiaoming");
  311. // params.add("张三");
  312. // params.add("zhangsan");
  313. // params.add("李四");
  314. // params.add("lisi000");
  315. // try {
  316. // boolean flag = jdbcUtils.updateByPreparedStatement(sql, params);
  317. // System.out.println(flag);
  318. // } catch (SQLException e) {
  319. // // TODO Auto-generated catch block
  320. // e.printStackTrace();
  321. // }*/
  322. //
  323. //
  324. // /*******************删*********************/
  325. // //删除名字为张三的记录
  326. // /* String sql = "delete from userinfo where username = ?";
  327. // List<Object> params = new ArrayList<Object>();
  328. // params.add("小明");
  329. // boolean flag = jdbcUtils.updateByPreparedStatement(sql, params);*/
  330. //
  331. // /*******************改*********************/
  332. // //将名字为李四的密码改了
  333. // /* String sql = "update userinfo set pswd = ? where username = ? ";
  334. // List<Object> params = new ArrayList<Object>();
  335. // params.add("lisi88888");
  336. // params.add("李四");
  337. // boolean flag = jdbcUtils.updateByPreparedStatement(sql, params);
  338. // System.out.println(flag);*/
  339. //
  340. // /*******************查*********************/
  341. // //不利用反射查询多个记录
  342. // /* String sql2 = "select * from userinfo ";
  343. // List<Map<String, Object>> list = jdbcUtils.findModeResult(sql2, null);
  344. // System.out.println(list);*/
  345. //
  346. // //利用反射查询 单条记录
  347. // String sql = "select * from userinfo where username = ? ";
  348. // List<Object> params = new ArrayList<Object>();
  349. // params.add("李四");
  350. // UserInfo userInfo;
  351. // try {
  352. // userInfo = jdbcUtils.findSimpleRefResult(sql, params, UserInfo.class);
  353. // System.out.print(userInfo);
  354. // } catch (Exception e) {
  355. // // TODO Auto-generated catch block
  356. // e.printStackTrace();
  357. // }
  358. //
  359. //
  360. // }
  361. }