zoukankan      html  css  js  c++  java
  • 通过sql语句查询出来的结果字段没有到对应实体类时的处理方法

    通过sql语句查询出来的结果字段没有到对应实体类时的处理方法,对于Person类获取用户第一个名字和年龄两个字段,常见的有两种方式:

      1、在创建一个与查询结果字段对应的类,然后通过构造函数实现:

         Query query = em.createQuery("select new com.ejb.bean.SimplePerson(p. firstname, p.age) from Person p ");

      2、通过sql语句将查询结果放到Object数组中,然后再获取一个List集合,里面存放的是Object数组:  

     Query query = em.createNativeQuery("select p.firstname,p.age from person as p");
     List list = query.getResultList();
     for (int i = 0; i < list.size(); i++) {
        Object[] obj = (Object[]) list.get(i);
        System.out.println(" firstname: "+ obj[0]+"  age: "+obj[1]);
     }

       综上所述:建议还是使用第一种(字段比较多),因为它更符合面向对象的思想,获取数据也比较方便。

    public class Person {    
        private String firstname;
        private String secondname;
        private int age;
        public String getFirstname() {
            return firstname;
        }
        public void setFirstname(String firstname) {
            this.firstname = firstname;
        }
        public String getSecondname() {
            return secondname;
        }
        public void setSecondname(String secondname) {
            this.secondname = secondname;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    }

        解决方案一,按照Object[]数据取出数据,然后自己组bean
      解决方案二,对每个表的bean写构造函数,比如表一要查出field1,field2两个字段,那么有一个构造函数就是Bean(type1 filed1,type2 field2) ,然后在hql里面就可以直接生成这个bean了。具体怎么用请看相关文档,我说的不是很清楚。

  • 相关阅读:
    java实现第六届蓝桥杯表格计算
    form表单的几种提交方式
    web项目的文件上传和 下载
    Web应用中request获取path,URI,URL
    Tomcat之——内存溢出设置JAVA_OPTS
    请问set JAVA_OPTS的各项參数是什么意思?
    input上传图片并预览
    input标签前台实现文件上传
    Bootstrap之Form表单验证神器: BootstrapValidator(转)
    jQuery Validate验证框架详解
  • 原文地址:https://www.cnblogs.com/lbangel/p/3428927.html
Copyright © 2011-2022 走看看