idea连接mysql并增删改查,idea连接数据库(增删改查)通用方法

//1、多条查询方法

public class TestCrud {

public static void main(String[] args) {

String sql="select*from stus";

List users = TestCrud.queryOne(User.class, sql);

System.out.println(users.toString());

}

public static List queryOne(Class clazz, String sql, Object... ags) {

Connection connection = null;

PreparedStatement pst = null;

ResultSet rs = null;

try {

//1:连接数据库(我这边调用的是方法)

connection = JDBCutil.getConn();

//2:预编译

pst = connection.prepareStatement(sql);

//3:填充占位符

for (int i = 0; i < ags.length; i++) {

pst.setObject((i + i), ags[i]);

}

//4执行操作

rs = pst.executeQuery();

//5:判断是否有值,然后打印

//创建一个元数据类型接收返回值

ResultSetMetaData metaData = rs.getMetaData();

//获取表中具体的列数

int count = metaData.getColumnCount();

List list = new ArrayList();

while (rs.next()) {

T t = clazz.newInstance();

for (int i = 0; i < count; i++) {

//获取对应的字段值

Object value = rs.getObject((i + 1));

//获取到对应字段的别名

String label = metaData.getColumnLabel((i + 1));

//获取到对应的字段

Field field = clazz.getDeclaredField(label);

//设置可以自己设置的权限

field.setAccessible(true);

//将值装配对象

field.set(t,value);

}

list.add(t);

}

return list;

} catch (Exception e) {

e.printStackTrace();

}finally {

//关闭流(通用的方法)

JDBCutil.closeResourse2(rs,pst,connection);

}

return null;

}

}

//查询单条的方法

// public static T queryOne(Classclazz, String sql, Object... args) {

// Connection connection = null;

// PreparedStatement pstm = null;

// ResultSet rs = null;

// //连接数据库

// connection = JDBCutil.getConn();

// try {

// pstm = connection.prepareStatement(sql);

// for (int i = 0; i < args.length; i++) {

// pstm.setObject((i + 1), args[i]);

// }

// rs = pstm.executeQuery();

// ResultSetMetaData metaData = rs.getMetaData();

// int columnCount = metaData.getColumnCount();

// T t = clazz.newInstance();

// if (rs.next()) {

// for (int i = 0; i < columnCount; i++) {

// Object value = rs.getObject((i + 1));

// String label = metaData.getColumnLabel((i + 1));

// Field declaredField = clazz.getDeclaredField(label);

// declaredField.setAccessible(true);

// declaredField.set(t, value);

// }

// return t;

// }

// } catch (Exception e) {

// e.printStackTrace();

// }finally {

// JDBCutil.closeResourse2(rs,pstm,connection);

// }

// return null;

// }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值