今天用jdbc读取数据库,用的是ResultSet,每次读出来都是一大堆记录,但是为了处理方便,我只需要每次读取记录的第一条.网上说用什么rs.first()方法,但是不靠谱,最后的解决方案如下。
public static ResultSet excuteSql(String sql) {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
url = GlobalsConfig.getDBUrl();
user = GlobalsConfig.getDBUser();
password = GlobalsConfig.getDBPwd();
try {
//int parameterIndex = 1;
conn = DriverManager.getConnection(url, user, password);
ps = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//ps.setString(parameterIndex, "url");
rs = ps.executeQuery();
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
- 其实最主要就是在这句ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY
- 然后,你只需要调用即可,如下
ResultSet rs = QueryDB.excuteSql(sql);
if(rs.first()) {
System.out.println(rs.getString("url"));
}
这样就OK了!