首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自定义java.sql.Driver实现连接处理

自定义java.sql.Driver实现连接处理
EN

Stack Overflow用户
提问于 2012-02-16 10:11:26
回答 2查看 1.3K关注 0票数 0

目前,我加载下面的自定义驱动程序(TestDriver.java),获取连接,创建语句,执行查询,获取结果并关闭连接。我为每个查询打开和关闭一个连接。这是常见的做法,还是有一种标准的方式来共享开放的连接?

代码语言:javascript
运行
复制
    public static void main(String[] args) {
        Class.forName("com.sql.TestDriver");
        java.sql.Connection conn = DriverManager.getConnection("jdbc:test://8888/connectme", props);
        Statement stmt = conn.createStatement;
        ResultSet rs = stmt.executeQuery("select * from table");
        //loop through rs and pull out needed data
        conn.close();  
    }


    public class TestDriver implements java.sql.Driver{
        private final TestSchema schema;
        private Properties props = null;
        static {
            try {
                DriverManager.registerDriver(new TestDriver());
            } catch (SQLException e) {
                e.printStackTrace();
            }

        protected TestDriver() throws SQLException {
            schema = TestSchemaFactory.getInstance().getDbSchemaFromFile(SCHEMA_FILE);
            //loads in and parses a file containing tables, columns used for business logic
        }
        public Connection connect(String url, Properties info) 
                throws SQLException {
           TestSqlConnection conn=null;
           //connect logic here
           return conn; //will return an instance of TestSqlConnection
        }

    @Override
    public boolean jdbcCompliant() {
        return false;
    }
}
EN

Stack Overflow用户

发布于 2012-02-16 10:30:48

  1. 理想情况下,你应该写一个单独的工厂类(可以是静态的),比如ConnectionFactory,它返回一个连接对象。
  2. 我也看到你在创建连接时没有使用try/catch/finally块。我强烈建议在finally子句中关闭连接,否则你的程序可能会遭受连接泄漏如果引发任何异常并导致突然的behavior.
  3. Ideally你应该在你的操作完成后在finally clause.In基于web的应用程序中关闭连接如果你正在使用连接池,那么关闭连接将把连接返回到池中并可供使用。
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9304546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档