通用增删改查java类_JDBC工具类 访问数据库 增删改查CRUD的通用方法

1 package com.zmh.util;

2

3 import java.sql.*;

4 import java.util.ArrayList;

5 import java.util.HashMap;

6 import java.util.List;

7 import java.util.Map;

8 /**

9 * JDBC工具类

10 */

11 public class Util1 {

12 //加载驱动

13 static {

14 try {

15 Class.forName("com.mysql.jdbc.Driver");

16 } catch (ClassNotFoundException e) {

17 e.printStackTrace();

18 }

19 }

20 //获得连接

21 public static Connection getConnection(){

22 try {

23 DriverManager.getConnection("jdbc:mysql://localhost:3306/qy97?characterEnconding=utf-8","root","root");

24 } catch (SQLException e) {

25 e.printStackTrace();

26 }

27 return null;

28 }

29 /** 增删改的通用方法

30 * @param String sql 要执行的sql

31 * @param Object[] obj 对象类型的数组 里面存放着 sql执行的占位符参数

32 * 【name,age,id】

33 * 【id】

34 * 【name,age】

35 * Object... 可变参数

36 * */

37 public static boolean executeUpdate(String sql,Object... args){

38 Connection conn = null;

39 PreparedStatement ps = null;

40 try {

41 conn = getConnection();

42 ps = conn.prepareStatement(sql);

43 //有参数

44 for(int i=0;i

45 ps.setObject(i+1,args[i]);

46 }

47 //执行sql语句

48 int i = ps.executeUpdate();

49 //返回 true

50 return i>0;

51 } catch (SQLException e) {

52 e.printStackTrace();

53 }finally{

54 //关闭资源

55 close(conn,ps,null);

56 }

57 return false;

58 }

59 /**

60 * 查询的通用方法

61 * @param sql;

62 * @param args;

63 * @return

64 * */

65 public static List> executeQuery(String sql,Object... args){

66 Connection conn = null;

67 PreparedStatement ps = null;

68 ResultSet rs = null;

69 try {

70 conn = getConnection();

71 ps = conn.prepareStatement(sql);

72 //有可能有参数

73 for(int i=0;i

74 ps.setObject(i+1,args[i]);

75 }

76 //执行sql语句

77 rs = ps.executeQuery();

78 //创建List集合

79 List> list = new ArrayList<>();

80 //获取本次查询结果集有多少列

81 int count = rs.getMetaData().getColumnCount();

82 //while循环

83 while(rs.next()){

84 //创建Map集合 获取一个数据封装成一个Map集合

85 Map map = new HashMap<>();

86 //for循环 遍历所有的列

87 for(int i=0;i

88 //获取本次查询结果集的列名

89 String name = rs.getMetaData().getColumnLabel(i + 1);

90 map.put(name,rs.getObject(name));

91 }

92 //把所有的map集合添加到List集合中

93 list.add(map);

94 }

95 //返回值

96 return list;

97 } catch (SQLException e) {

98 e.printStackTrace();

99 }finally{

100 //关闭资源

101 close(conn,ps,rs);

102 }

103 return null;

104 }

105 /**

106 * 关闭资源的通用方法

107 * */

108 public static void close(Connection conn,Statement stat,ResultSet rs){

109 try{

110 if(rs!=null){

111 rs.close();

112 }

113 if(stat!=null){

114 stat.close();

115 }

116 if(conn!=null){

117 conn.close();

118 }

119 }catch(Exception e){

120 e.printStackTrace();

121 }

122 }

123 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值