java遍历mysql结果集_java 原生 jdbc api 获取通用的查询sql语句的结果集(自定义)...

maven依赖

mysql

mysql-connector-java

5.1.31

1、获取数据库连接 connection

private static String driverName = "com.mysql.jdbc.Driver";

private static String jdbcUrl = "jdbc:mysql://192.168.1.6:3306/10bei_portal";

private static String user = "root";

private static String pwd = "123456";

public static Connection getConnection() {

Connection conn = null;

// 加载驱动

try {

Class.forName(driverName);

conn = DriverManager.getConnection(jdbcUrl, user, pwd);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return conn;

}

2、用获取到的connection对象执行查询sql

//这里是将 sql 的select 字段映射成map的key值

public static List> execQuerySql(String sql) {

Connection conn = getConnection();

if(conn == null) {

System.err.println("获取数据库连接失败,请重试");

return null;

}

List> resultList = new ArrayList<>();

try {

ListcolumnNames = new ArrayList<>();

PreparedStatement ps = conn.prepareStatement(sql);

ResultSet rs = ps.executeQuery();

int columnCount = rs.getMetaData().getColumnCount();

MapcolTypeMap = new HashMap<>();

//这里的循环是获取select 语句中的 表字段 名称 及 表字段类型

for(int i = 1;irowMap = new HashMap<>();

for(String colName : columnNames ) {

if("INT".equals(colTypeMap.get(colName))) {

rowMap.put(colName, rs.getInt(colName));

continue;

}

if("VARCHAR".equals(colTypeMap.get(colName))) {

rowMap.put(colName, rs.getString(colName));

continue;

}

if("SMALLINT".equals(colTypeMap.get(colName))) {

rowMap.put(colName, rs.getShort(colName));

continue;

}

if("TINYINT".equals(colTypeMap.get(colName))) {

rowMap.put(colName, rs.getShort(colName));

continue;

}

if("DATETIME".equals(colTypeMap.get(colName))) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

rowMap.put(colName, sdf.format(rs.getDate(colName)));

continue;

}

// 这里的getObject 可以获取 int/varchar/datetime等字段类型的值

rowMap.put(colName, rs.getObject(colName));

}

resultList.add(rowMap);

}

rs.close();

ps.close();

return resultList;

} catch (SQLException e) {

e.printStackTrace();

}finally {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

return null;

}

以上可以获取通用的select语句

局限是此处的sql语句的条件参数没有实现通用的赋值 ^~^  !!!!!,读者这里可以自行补充。。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值