public static void main(String[] args) throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521/orcl", "scott", "tiger");
String sql = "select * from T_LX_SYS_PARAMETER_REG where PARA_SYSTEM='LX'";
Statement stmt = conn.createStatement();
//ResultSet rs = stmt.executeQuery(sql);
//List<ResultSet> rs = (List<ResultSet>) stmt.executeQuery(sql);
//for(int i=0;i<rs.size();i++){
// System.out.println(i);
//}
????????????????????????????
stmt.close();
conn.close(); }将sql查询出来的结果放入List集合中,并打印出来
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521/orcl", "scott", "tiger");
String sql = "select * from T_LX_SYS_PARAMETER_REG where PARA_SYSTEM='LX'";
Statement stmt = conn.createStatement();
//ResultSet rs = stmt.executeQuery(sql);
//List<ResultSet> rs = (List<ResultSet>) stmt.executeQuery(sql);
//for(int i=0;i<rs.size();i++){
// System.out.println(i);
//}
????????????????????????????
stmt.close();
conn.close(); }将sql查询出来的结果放入List集合中,并打印出来
ResultSet rs = stmt.executeQuery(sql);
List<String> list = new ArrayList<String>();
while(rs.next()){
list.add(rs.getString("*"));
}
for(String str : list){
System.out.println(str);
}sql语句最好不要用*,上面代码里的*只能把它当做一个字段了
如果你要输出多个字段的值的话你就必须把所有字段封装到一个javabean里面
1 创建一个这个类的对象。
2 从结果集里读出字段赋值给相应属性。
3 把对象放到list 里。
4 重复2-3直到把结果集的记录全部转出。
5 用迭代显示list的内容。
/**
* 以list map封装查询结果
* @param sql
* @return
* @throws SQLException
*/
public List<Map<String, String>> queryList(String sql) throws SQLException
{
rs = stmt.executeQuery(sql);
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map = new HashMap<String, String>();
while (rs.next())
{
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++)
{
map.put(rs.getMetaData().getColumnName(i), rs.getString(rs.getMetaData().getColumnName(i)));
}
list.add(map);
}
return list;
}
class T_LX_SYS_PARAMETER_REG_CLASS{
private xx xxxx
...
//表中字段
}伪代码
ArrayList<T_LX_SYS_PARAMETER_REG_CLASS> lss;
while(rs.next()){
T_LX_SYS_PARAMETER_REG_CLASS ls = new T_LX_SYS_PARAMETER_REG_CLASS();
ls.set(rs.getString(1));
......
lss.add(ls);
}return lss;
(
PARA_REG_ID NUMBER(20) NOT NULL,
PARA_SYSTEM VARCHAR2(30) NOT NULL,
PARA_NAME VARCHAR2(80) NOT NULL,
PARA_SYS_DEFAULT_VALUE NUMBER(20,2) NOT NULL,
PARA_USER_SET_VALUE NUMBER(20,2) NOT NULL,
NOTE VARCHAR2(100),
BACK1 VARCHAR2(30),
BACK2 VARCHAR2(30),
CREATED_TIME DATE,
CREATED_PERSON VARCHAR2(30),
UPDATE_TIME DATE,
UPDATE_PERSON VARCHAR2(30),
PRIMARY KEY (PARA_REG_ID)
)insert into SCOTT.T_LX_SYS_PARAMETER_REG (PARA_REG_ID, PARA_SYSTEM, PARA_NAME, PARA_SYS_DEFAULT_VALUE, PARA_USER_SET_VALUE, NOTE, BACK1, BACK2, CREATED_TIME, CREATED_PERSON, UPDATE_TIME, UPDATE_PERSON) values (1, 'LX', 'LX_SEC_RULE_NET_INCOME_LOSS', 0, 0, null, null, null, null, null, null, null);String sql = "select PARA_NAME,PARA_SYS_DEFAULT_VALUE,PARA_USER_SET_VALUE from T_LX_SYS_PARAMETER_REG where PARA_SYSTEM='LX'";
将查询的结果放入List中。从List中获取“PARA_USER_SET_VALUE ”的值。本来可以在Bean中get set就可以获取这个值,但要求不用这方法,bean定义如下
public class SystemParaBean{
public static Double LX_SEC_RULE_NET_INCOME_LOSS = 0.0;
}怎么从List中获取PARA_USER_SET_VALUE 值。
hashmap.put(PARA_REG_ID ,rs.getobject(1);
............
hashmap.put( PARA_USER_SET_VALUE,rs.getobject(5);.................}虽然村的时候麻烦一点点,但是 取就方便了很多啊!!mapObject.get(PARA_USER_SET_VALUE);
public static List<Map<String, String>> queryList() throws SQLException{
DbUtils.loadDriver("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/orcl", "bshare", "bshare");
String sql1 = "select PARA_NAME,PARA_SYS_DEFAULT_VALUE,PARA_USER_SET_VALUE from T_LX_SYS_PARAMETER_REG where PARA_SYSTEM like ?";
PreparedStatement prep = conn.prepareStatement(sql1);
prep.setString(1,"LX%");
ResultSet rs = prep.executeQuery();
//rs = stmt.executeQuery(sql);
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map = new HashMap<String, String>();
while (rs.next())
{
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++)
{
map.put(rs.getMetaData().getColumnName(i), rs.getString(rs.getMetaData().getColumnName(i)));
}
list.add(map);
}
return list;
}
public static void main(String[] args) throws SQLException{
List list = queryList();
System.out.print(list.size());
for(int i =0; i<list.size(); i++){
System.out.println(list.get(i) +"____" + i);
}
}
执行结果:
24{PARA_SYS_DEFAULT_VALUE=.8, PARA_NAME=LX_COM_RISK_BOND, PARA_USER_SET_VALUE=.8}____0
{PARA_SYS_DEFAULT_VALUE=.8, PARA_NAME=LX_COM_RISK_BOND, PARA_USER_SET_VALUE=.8}____1
……………………………………………………………………………………………………………………………24
“map.put(rs.getMetaData().getColumnName(i), rs.getString(rs.getMetaData().getColumnName(i)));
”这句什么意思?
就是说将查询到的字段名和值分别作为Map的键和值存放到Map里
rs.getString(rs.getMetaData().getColumnName(i)) //根据列名取第i列的值