标签: apache-commons-dbutils

如何使用commons dbutils生成密钥?

我不明白如何使用commons-dbutils获取自动生成的密钥?

java jdbc apache-commons apache-commons-dbutils

7
推荐指数
1
解决办法
3641
查看次数

如何使用DBUtils查询List <String>?

查看DBUtils API文档,我无法查看是否List<String>可以List<MyBean>使用查询使用BeanListHandler 的相同方式查询.

我可以这样做是创建一个包装String并使用BeanListHandler的Bean,或者可能返回一个List<Object[]>并以这种方式捕获我的字符串.

但是有一种更直接的方式,DBUtils可以传回List<String>一个查询,从而从varchar表列生成一堆String值吗?

java apache-commons-dbutils

5
推荐指数
1
解决办法
5193
查看次数

Apache Dbutils在更新Sql中更改列名

我有一个Dbutils的奇怪问题,我正在尝试运行参数化更新sql,我提供正确数量的参数,但dbutils通过更改修改它的名称修改时间戳列名称

当timestamp columnname是一个字母表时

java.sql.SQLException:错误的参数数量:预期4,给出了5个查询:UPDATE WEATHER_2 SET WEATHER =?,O = TO_TIMESTAMP(?,'YYYY-MM-DD HH24:MI:SS.FF'),湿度=?,TEMP =?在哪里ID =?参数:[804,2015-06-05 17:21:05.809,16.0,25.15,1347927]

当timestamp columnname为normal时,将省略第二个字母

java.sql.SQLException:ORA-00904:"OSTIME":无效的标识符查询:UPDATE WEATHER_2 SET WEATHER =?,OBSTIME = TO_TIMESTAMP(?,'YYYY-MM-DD HH24:MI:SS.FF'),HUMIDITY =?,TEMP =?在哪里ID =?参数:[804,2015-06-05 17:27:46.139,16.0,25.15,1347927]

这可能是数据库的事吗?此外,只有类型为Date或Timestamp的列才会发生这种情况.

sql apache oracle apache-commons-dbutils

5
推荐指数
1
解决办法
1798
查看次数

使用QueryRunner插入ArrayList <Object []>

我想使用QueryRunner来执行ArrayList的插入.我在网上找到的唯一信息是插入一个Object [].有点像:

qr.update("insert into MyTable (param1,param2,param3) values (?,?,?)",
new Object[] { str1, str2, str3});
Run Code Online (Sandbox Code Playgroud)

我显然希望避免循环遍历整个ArrayList并一次插入一个索引,因为每次要插入的行数是未知的.

我只想知道是否有人这样做过.查询返回一个List,所以我不明白为什么我不能插入List.任何建议表示赞赏.谢谢.

java sql insert apache-commons-dbutils

3
推荐指数
1
解决办法
5574
查看次数

DBUtils QueryRunner实例化

我有一个webservice,在初始化时实例化一个带有数据源的QueryRunner.它将这一个QueryRunner对象用于webapp使用的多个不同servlet的所有servlet请求,方法是将其作为servlet上下文属性传递.即:

// in servlet context listener (on app initialization)
QueryRunner myQueryRunner = new QueryRunner(myDataSource);
myServletContext.setAttribute("queryRunner", myQueryRunner);

// in the servlets
QueryRunner myQueryRunner = (QueryRunner) myServletContext.getAttribute("queryRunner");
myQueryRunner.query(myStoredProcedure, handler, params)
Run Code Online (Sandbox Code Playgroud)

我想弄清楚这是不是瓶颈.servlet是否应该为QueryRunner每个请求实例化一个新的?

在寻找答案时,我也发现了这个AsyncQueryRunner.但我更加困惑,因为QueryRunnerAsyncQueryRunner的API文档中的解释说的完全相同.

我查看了这里的示例,似乎应该对每个请求进行实例化,但我不确定这是否只是因为它是示例代码.

换句话说,当QueryRunner我使用DBUtils时:

  1. QueryRunner每个请求都使用一个实例?(我现在在做什么)
  2. QueryRunner每个servlet请求都实例化一个新的?
  3. AsyncQueryRunner每个请求都使用一个实例?

java servlets object instantiation apache-commons-dbutils

3
推荐指数
1
解决办法
1823
查看次数

DBUtils 无法填充 Java Bean 的字段

我有一个像这样的 mysql 表:

CREATE TABLE `sezione_menu` (
 `id_sezione_menu` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `nome` varchar(256) NOT NULL DEFAULT '',
 `ordine` int(11) DEFAULT NULL,
    PRIMARY KEY (`id_sezione_menu`)
 )ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

我使用 apache dbutils 来查询我的数据库,方法如下:

public static List<SezioneMenu> getSezioniMenu() {
    String sql = "SELECT * FROM sezione_menu";  
    try {
        QueryRunner qr = new QueryRunner(createDataSource());
        ResultSetHandler rsh = new BeanListHandler(SezioneMenu.class);
        List<SezioneMenu> sezioni = (List<SezioneMenu>)qr.query(sql, rsh);
        return sezioni;
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;  
}

private static DataSource createDataSource() { …
Run Code Online (Sandbox Code Playgroud)

java mysql javabeans apache-commons-dbutils

3
推荐指数
1
解决办法
3822
查看次数

从 Databricks 中的 dbutils.fs.ls 输出创建数据框

所以,我是一个初学者,正在 Databricks 上学习 Spark 编程 (pyspark) -

我想做什么?

列出目录中的所有文件并将其保存到数据框中,以便我能够在此文件列表上应用过滤、排序等。为什么 ?因为我试图找到目录中最大的文件。

为什么下面不起作用? 我缺少什么?

from pyspark.sql.types import StringType

sklist = dbutils.fs.ls(sourceFile)

df = spark.createDataFrame(sklist,StringType())
Run Code Online (Sandbox Code Playgroud)

python apache-commons-dbutils pyspark databricks

3
推荐指数
2
解决办法
1万
查看次数

如何将 DBUtils 结果集转换为由更多域对象组合而成的 JavaBeans?

我正在 Spring Framework 中创建 MVC Web 应用程序,我需要将 Apache DBUtils 结果集中的行转换为由嵌套对象组成的 JavaBeans。

关于我发现的极少数示例,我创建了这个 RowProcessor 实现。

public class MonthOrderCountHandler extends BasicRowProcessor {

    @Override
    public Object toBean(ResultSet rs, Class type) throws SQLException {

        // Year
        Year year = new Year();
        year.setYearNo(rs.getInt("yearNo"));
        year.setYear4(rs.getString("year4"));
        year.setYear2(rs.getString("year2"));

        // Quarter
        Quarter quarter = new Quarter();
        quarter.setQuarter(rs.getInt("quarter"));

        // Month
        Month m = new Month();
        m.setYear(year);
        m.setQuarter(quarter);
        m.setMonthAbbreviation(rs.getString("monthAbbreviation"));
        m.setMonthName(rs.getString("monthName"));
        m.setMonthNo(rs.getInt("monthNo"));

        // Final bean
        MonthOrderCount result = new MonthOrderCount();
        result.setMonth(m);
        result.setOrderCount(rs.getInt("orderCount"));

        return result;

    }
}
Run Code Online (Sandbox Code Playgroud)

问题:我想知道如何在我的 DAO 对象中使用这个行处理器,以及这个实现是否正确?


通常我以这种方式将行转换为 JavaBeans: …

java spring javabeans apache-commons-dbutils

2
推荐指数
1
解决办法
3689
查看次数

如何使用apache-commons-dbutils将数据库列名称映射到Java类字段

我想使用Apache DBUtils库从数据库填充POJO(State.java)。但是,由于Bean属性的名称与DB列名称不完全匹配,因此某些属性未填写。

现在,我通过谷歌搜索对此进行了一些研究,发现可以通过以下方法实现:

  1. 编写SQL查询时使用列别名(我不喜欢这样做,因为在一些较大的表中有多个联接,因此需要大量别名)
  2. 使用BeanProcessor(在任何地方都找不到很好的示例)

谁能提供一个很好的例子说明如何使用BeanProcessor将列名映射到属性?调整示例为我提供的效果会更好。

数据库表

CREATE TABLE public.states (
  state_id INTEGER DEFAULT nextval('states_seq'::regclass) NOT NULL,
  state_cd VARCHAR(2) NOT NULL,
  name VARCHAR(100) NOT NULL,
  tax_pct NUMERIC(10,2) DEFAULT 0.00 NOT NULL,
  active CHAR(1) DEFAULT 'Y'::bpchar NOT NULL,
) 
Run Code Online (Sandbox Code Playgroud)

State.java

  public class State implements Serializable {

    private int stateId;
    private String stateCode;
    private String name;
    private BigDecimal taxPct = new BigDecimal(0);
    private Date expiryDate;
    private String createdBy;
    private Date createdOn;
    private String active;

    //getters and setters here …
Run Code Online (Sandbox Code Playgroud)

java jdbc apache-commons-dbutils

2
推荐指数
1
解决办法
6253
查看次数

dbutils库中的BeanListHandler无法从数据库结果集中创建Java类对象

我在apache derby数据库中创建了一个名为Product的类和一个具有相同名称(Product)的表。现在,无论何时我使用BeanListHandler从数据库中检索行时,我都希望获得相应的Product对象,但总是会得到一个错误。我几乎到处都在搜索解决方案,之后我仍然看不到我的代码出了什么问题。有人可以告诉我我哪里错了。我的代码如下所示。

public class Product {

private long uniqueId; //Auto increment
private String productCode;  
private String productName;
private String productCategory;
private boolean available;
private double productPrice;
private int quantityOnHand;    

public Product(long uniqueId, String productCode, String productName, String productCategory, boolean available, double productPrice, int quantityOnHand) {
    this.uniqueId = uniqueId;    //Auto increment
    this.productCode = productCode;
    this.productName = productName;
    this.productCategory = productCategory;
    this.available = available;
    this.productPrice = productPrice;
    this.quantityOnHand = quantityOnHand;    }

@Override
public String toString() {
    return "Product{" + "uniqueId=" + uniqueId …
Run Code Online (Sandbox Code Playgroud)

java derby resultset javabeans apache-commons-dbutils

2
推荐指数
1
解决办法
1097
查看次数

如何将准备好的语句与Apache DBUtils一起使用?

如何将准备好的语句与Apache DBUtils一起使用?

似乎org.apache.commons.dbutils.*的大多数方法都需要字符串参数.令人惊讶的是,没有一种方法可以接受PreparedStatements.

java prepared-statement apache-commons-dbutils

0
推荐指数
1
解决办法
4803
查看次数

批量插入和 Apache DBUtils

我们需要使用第三方库来执行 SQL 语句,在开始实施之前,我们希望确保库可以做我们想做的任何事情。我们目前正在评估 Apache DBUtils。

我们尝试执行类似的查询

INSERT INTO MyTable(ColA, ColB, ColC) VALUES (?, ?, ?),
                                             (?, ?, ?),
                                             (?, ?, ?);
Run Code Online (Sandbox Code Playgroud)

使用 insertBatch,但看起来它失败了,因为它想运行类似的东西:

INSERT INTO MyTable(ColA, ColB, ColC) VALUES (?, ?, ?);
INSERT INTO MyTable(ColA, ColB, ColC) VALUES (?, ?, ?);
INSERT INTO MyTable(ColA, ColB, ColC) VALUES (?, ?, ?);
Run Code Online (Sandbox Code Playgroud)

从性能的角度来看,这是更糟糕的。

我们做错了什么吗?有什么办法可以使用Apache DBUtils实现以前的SQL语句吗?

java sql batch-insert apache-commons-dbutils

0
推荐指数
1
解决办法
1839
查看次数