关于Model中Find方法-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

关于Model中Find方法

2016-06-08 11:18:34 2322 1

Model中有这样一个方法, 是不是考虑开放?

/**
 * Find model.
 */
private List<M> find(Connection conn, String sql, Object... paras) throws Exception {
    Class<? extends Model> modelClass = getClass();
    if (DbKit.devMode)
        checkTableName(modelClass, sql);
     
    PreparedStatement pst = conn.prepareStatement(sql);
    for (int i=0; i<paras.length; i++) {
        pst.setObject(i + 1, paras[i]);
    }
     
    ResultSet rs = pst.executeQuery();
    List<M> result = ModelBuilder.build(rs, modelClass);
    DbKit.closeQuietly(rs, pst);
     
    return result;
}

因为我在使用每次查询之前可能都需要执行“set names latin1”来进行编码转换, 而执行这个语句和执行查询的语句,要求使用同一个数据库连接。看了下,貌似只能通过这个方法来进行。
这个方法开放之后,我就可以自己通过Dbkit来获取数据库连接,做我想做的事, 然后再用同一个连接,做其他事。

Db.execute(new ICallback() {
                 
                @Override
                public void run(Connection connection) throws SQLException {
                    Statement statement = connection.createStatement();
                    statement.execute("set names latin1;");
                     
                    List<Abc> abcList = Abc.dao.find(connection, sql, params);
                }
            });
Connection connection = DbKit.getConnection();
            Statement statement = connection.createStatement();
            statement.execute("set names latin1;");
            List<Abc> abcList = Abc.dao.find(connection, sql, params);
取消 提交回答
全部回答(1)
  • 小旋风柴进
    2019-07-17 19:31:29

    因为ActiveRecordPlugin需要的只是一个DataSource对象,可以自己实现一个,在构造函数的地方把真正的DataSource传入,只需要在两个getConnection()方法实现的地方执行完set names latin1再返回。其他方法全部直接用封装在内部的DataSource处理。

    这样就可以既不破坏作者原有的想法,也不用在每个数据库操作之前都要重复写set names latin1的代码。

    0 0
相关问答

4

回答

关于备案问题

2019-02-22 17:35:07 635浏览量 回答数 4

1

回答

关于备案申请备案号的问题

2018-08-29 16:59:48 888浏览量 回答数 1

2

回答

关于备案问题

2018-08-13 17:20:27 571浏览量 回答数 2

6

回答

关于备案问题

2017-05-13 01:13:33 1904浏览量 回答数 6

2

回答

关于备案问题

2015-09-22 10:16:22 3421浏览量 回答数 2

1

回答

关于备案问题

2015-04-21 21:48:24 3376浏览量 回答数 1

5

回答

关于备案问题

2015-01-30 16:37:55 3293浏览量 回答数 5

1

回答

关于备案问题

2014-06-18 12:35:20 5238浏览量 回答数 1

4

回答

关于备案问题

2014-05-29 06:50:40 6019浏览量 回答数 4

5

回答

关于备案问题

2014-05-21 23:59:02 5615浏览量 回答数 5
2709
文章
6591
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载