精华内容
下载资源
问答
  • 使用ResultSet接口查询数据 二,具体内容 数据库的操作主要分为增删查改,查询操作会将全部的结果返回给用户。 在操作的时候使用Statement中的executeQuery方法进行数据库查询操作,此方法返回值就是...

    一,本章目标

    掌握ResultSet接口的主要作用

    使用ResultSet接口查询数据


    二,具体内容

    数据库的操作主要分为增删查改,查询操作会将全部的结果返回给用户。


    在操作的时候使用Statement中的executeQuery方法进行数据库的查询操作,此方法返回值就是RusultSet接口。

    查询实例操作:


    注意,如果生日的格式里月份是一个数字的话,要在前边加上一个0,例如生日是1月,则要写2011-01-20,而不是2011-1-20

    否则会出现报错。

    另外,也可以通过编号的方式取得结果集。



    问题:使用SELTCT * FROM user 不是更加简单吗?

    的确是更加简单,但是在开发中是不能直接使用*的,因为这样在查询的时候并不能明确地表示要取的内容是什么,所以在开发中查询肯定要明确地写出需要查找的列。



    三,总结

    ResultSet查询的时候是将全部的查询结果以ResultSet的形式返回

    通过ResultSet接口依次取得内边的内容

    所有的查询结果实际上最终都是报错在内存之中,所以对于数据库的查询操作来说,尽量不要使用全部查询



    展开全文
  • 打印数据库查询结果ResultSet

    千次阅读 2017-04-15 17:25:10
    ResultSet rs = statement.executeQuery(); ResultSetMetaData rsmd = rs.getMetaData(); int columnsNumber = rsmd.getColumnCount(); while (rs.next()) { for (int i = 1; i ; i++) { if (i > 1) System.out....
    ResultSet rs = statement.executeQuery();
    ResultSetMetaData rsmd = rs.getMetaData();
    int columnsNumber = rsmd.getColumnCount();
    while (rs.next()) {
        for (int i = 1; i <= columnsNumber; i++) {
            if (i > 1) System.out.print(",  ");
            String columnValue = rs.getString(i);
            System.out.print(columnValue + " " + rsmd.getColumnName(i));
        }
        System.out.println("");
    }
    
    展开全文
  • * 将数据库查询的结果转换为List>类型 * @param res * @return */ public List> getResultList(ResultSet res) { List> list = new ArrayList>(); try { ResultSetMetaData md = res.g

    ResultSet类型 转 List类型

    	/**
    	 * 将数据库查询的结果转换为List<Map<String,Object>>类型
    	 * @param res
    	 * @return
    	 */
    	public List<Map<String,Object>> getResultList(ResultSet res) {
    		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
    		try {
    			ResultSetMetaData md = res.getMetaData();
    			int columnCount = md.getColumnCount();
    			while (res.next()) {
    				Map<String, Object> rowData = new HashMap<String, Object>();
    				for (int i = 1; i <= columnCount; i++)
    					rowData.put(md.getColumnName(i), res.getObject(i));
    				list.add(rowData);
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return list;
    	}
    }
    


    展开全文
  • banq http://www.jdon.com Aug 21, 2002 2:23 PM既然我们把数据库访问封装起来了,那么如果查询数据库返回的是一系列结果,比如我们从数据库中得到所有人的用户名,然后在Jsp页面显示出来。这里就有一个普遍疑问,我...

    banq http://www.jdon.com Aug 21, 2002 2:23 PM

    既然我们把数据库访问封装起来了,那么如果查询数据库返回的是一系列结果,比如我们从数据库中得到所有人的用户名,然后在Jsp页面显示出来。

    这里就有一个普遍疑问,我这个javabean是返回ResultSet到Jsp中还是Collection?

    我曾经有段时间图省事,直接返回ResultSet,然后在我的jsp页面中是大量的ResultSet遍历。这其实还是将数据层和显示层混淆在一起。在EJB CMP中,返回的是Collection,这样偶合性降低,不用在修改数据库结构后,一直修改程序到前台Jsp页面,这和以前的php Asp开发方式没两样。

    但是返回Collection效率不是很高,因为意味着在内存中要开辟一个内存存放所有的结果。

    我看了http://builder.com.com/article.jhtml?id=u00220020814R4B01.htm这篇文章后,觉得启发很大,返回Iterator就可以了。

    Iterator也是个模式,在Jive中大量使用了Iterator,我以前很奇怪,为什么他没事自己写个Iterator,现在知道原因了,这样节省内存,而且效率高。

    看下面比较:

    public List getUsers() {
    ResultSet rs = userDbQuery();
    List retval = new ArrayList();
    while (rs.next()) {
    retval.add(rs.getString(1));
    }
    return retval;
    }
    上面是个我们采取返回Collection后最常用的方法,将ResultSet中的用户名加入List再返回,显然这很耗费内存。

    使用Iterator返回:
    public Iterator getUsers() {
    final ResultSet rs = userDbQuery();
    return new Iterator() {
    private Object next;

    public void hasNext() {
    if (next == null) {
    if (! rs.next()) {
    return false;
    }
    next = rs.getString(1);
    }
    return true;
    }

    public Object next() {
    if (! hasNext()) {
    throw new NoSuchElementException();
    }
    String retval = next;
    next = null;
    return retval;
    }

    public void remove() {
    throw new UnsupportedOperationException("no remove allowed");
    }
    }
    }

    这里返回的是一个内部类,其实你可以象Jive那样,专门做个Iterator类,这样,这里写得就不那么难看,你自己定义的Iterator和Collection中的Iterator没有任何关系,自己定义了三个方法 hasNext(); next(); remove();这样看上去和Collection的Iterator是一样的。

    从自己作的这个Iterator类中看到,这个Javabean只是做了一个指针传递作用,将调用本Javabean的指针传递到ResultSet,这样既提高了效率,节约了内存,又降低了偶合性,这是堪称中间件典型的示范。

    既然返回iterator这么好,有人经常用到一个简单的返回Iterator方法:
    public Iterator getUsers() {
    ResultSet rs = userDbQuery();
    List list = new ArrayList()
    while (rs.next()) {
    list.add(rs.getString(1));
    }
    return list.iterator();
    }

    这其实和直接返回list没区别,还是浪费内存。

    展开全文
  • 执行后查询语句后rs一直为空,但是将sql语句放到数据库中进行查询却能得到结果. 解决:sql=“select * from table where name=‘张三’”;当查询语句中涉及中文的时候就会出现上述问题,主要是编码问题,数据库的...
  • 上两篇博客讲了如何对数据库中的内容进行增删改的操作,这一篇博客来说说如何实现对数据库内容进行读取查询操作。
  • 执行后查询语句后rs一直为空,但是将sql语句放到数据库中进行查询却能得到结果. 解决:sql=“select * from table where name=‘张三’”;当查询语句中涉及中文的时候就会出现上述问题,主要是编码问题,数据库的...
  • 是这样的我在用JDBC读取一个我刚刚在pl/sql里新建的的数据,于是乎问题就来了, 我的ResultSet.next()一直是false! 刚开始我的心情还是很平静的:不就是个小bug吗,分分钟搞定! 开始以为查询语句错了,于是把...
  • 将每次操作数据库的重复获取连接和释放资源的代码整合到一个工具类中 工具类代码: import java.sql.*; /* 创建工具类,用来获取连接和释放资源 */ public class Utils11 { static{//加载驱动 try { Class.for...
  • //注意:要求数据库的列名必须和JAVA实体类的属性名、类型完全一致 public static List resultSetToList(ResultSet rs,Class cls) { //定义接收的集合 List list = new ArrayList(); //创建一个对象,方便后续反射...
  • 数据库查询数据,在使用聚集函数时,代码中执行之后即使没有数据,rs中也会有数据,注:在数据库中执行该sql时是没有数据的,不知道为什么在java代码中会有,我当时使用的聚集函数是sum(),没有数据的部分都显示为0,...
  • 代码: DButil.java import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; import com.mysql.jdbc.Connection; public class DButil { ... * 打开数据库 */ private
  • 数据库结果集ResultSet详解

    千次阅读 2014-08-19 22:56:40
    这篇文章并没有给出如何... 结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等。
  • 后来到数据库中的用户查了一下用户信息,用户确实存在,这才是最头痛的问题,我了个艹。 仔细想了一下,会不会是表字段的问题,于是我就看了他建表的语句,这下终于恍然大悟了。原来是我同学把用户名和密码的类
  • ResultSet查询数据库后,返回的值如何判断为空还是不为空? 我想这样判断 if(rs.next()){ do{ for(int i = 1; i ;i++){ // 两列 if(rs.getString(i) != null){ re= new Record( rs.getString("uid") ,rs....
  • 28.ResultSet的主要作用是? A. 链接数据库 B. 缓存数据结果集 C. 执行存储过程 D. 删除数据 正确答案是:B 数据库基础面试32题
  • 查询数据库所有并统计数量

    千次阅读 2016-08-18 17:49:24
    查询数据库所有并统计数量
  • 数据库结果集ResultSet转json实现

    千次阅读 2015-10-30 12:30:38
    public String resultSetToJson(ResultSet rs) throws SQLException,JSONException { // json数组 JSONArray array = new JSONArray(); // 获取列数 ResultSetMetaData metaData = rs.getMetaD
  • 最近刚好在做数据库课程设计,发现ResultSet数据库ResultSet的使用。 代码: ResultSet rs; Sting s=rs.getString(1) 问题:括号中的1是什么意思? 例子:比如我中的为id,username,password,其中...
  • ResultSet查询mysql 数据库中的enum值

    千次阅读 2016-12-23 11:32:37
    直接说吧,前两天碰到查询mysql 数据库enum值 怎么也搞不定。getObject 等都不对。 之后尝试 结果集 enum_string=resultSet.getString(). 然后通过 xxx xxxInstance=Enum.valueOf(xxx.class,enum_string); 获取...
  • Java数据库ResultSet转json实现

    万次阅读 多人点赞 2013-02-26 10:19:13
    现在有很json相关的Java工具,如json-lib、gson等,它们可以直接把JavaBean转换成json格式。 在开发中,可能会从数据库中获取数据,希望直接转成json数组,中间不通过bean。
  • 我用java访问oracle数据库resultset结果集中的getfloat、getdouble等去小数的方法中得到的结果于真是在数据库里存贮的值不一样这个问题怎么解决?
  • if 条件内,如果 rs.findColumn(columnName) > 0 ,ResultSet结果集中的列索引从1开始,不同于数组和...这样在mapRow 中,如果个属性的时候,每次可以判断下,该ResultSet 中是否查询出来该列,查询出来了就做映射,
  • Demo.java:package ... import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Demo { public static void main(String[] ...
  • 上篇文章已经使用Statement实现了对数据库的增删改操作,接下来使用ResultSet结果集执行查询操作 步骤如下: ResultSet:结果集.封装了使用JDNC进行查询的结果 1.调用Statement对象的executeQuery(sql) 可以得到...
  • ![![图片说明]... 我使用orcale11 输入相同的语句是可以查询的到数据的,并且已经commit过了 但是我用java jdbc连接成功数据库之后,却发现next方法的返回值始终为false 麻烦各位大神指点迷津
  • jdbcTemplate查询数据库金额字段的精度问题:ResultSet中如何取值的问题 //数据中Money字段是Number类型 number(8,2) List query = this.getJdbcTemplate().query(sql,new Object[]{ aac001 } ,new RowMapper(){ ...
  • 今天调用DbUtil类直接操作数据库,取得ResultSet,想判断其是否为空(sql中有exists判断有无相关记录),结果出现异常:  Java代码  [ERROR] 2009-03-19 11:04:44 [http-8080-1] ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 145,410
精华内容 58,164
关键字:

数据库多表查询resultset