小编sam*_*nta的帖子

Console无法访问内存模式下的H2数据库

我在servlet上下文启动时通过以下代码在H2数据库中创建一个内存数据库

    void initDb()  {
    try {

        webserver = Server.createWebServer().start();

        Class.forName("org.h2.Driver");
        Connection conn = DriverManager.getConnection("jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1","SA","");
        InputStream in = getClass().getResourceAsStream("script.sql");
        if (in == null) {
            System.out.println("Please add the file script.sql to the classpath, package " + getClass().getPackage().getName());
        } else {
            RunScript.execute(conn, new InputStreamReader(in));
            Statement stat = conn.createStatement();
            ResultSet rs = stat.executeQuery("SELECT TO_CHAR(bday,'DD/MM/yyyy hh24:mi') FROM TEST2");
            while (rs.next()) {
                System.out.println(rs.getString(1));
            }
            rs.close();
            stat.close();
            conn.commit();
            conn.close();
        }




    //accessed using url jdbc:h2:tcp://localhost/mem:db1    
    try{ 

                CachedRowSet crs = new DBConnector().executeQuery("select * from  test2"); 
                while(crs.next()){ 
                System.out.println("ARGUMENT_NAME:"+crs.getString(1)); 
               // System.out.println(",DATA_TYPE:"+crs.getString("DATA_TYPE")); …
Run Code Online (Sandbox Code Playgroud)

h2 embedded-database

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

Javascript for..in循环参数ie.for(参数中的arg)在IE8中不起作用但它在Chrome 8中有效

我遇到了这种奇怪的情况,其中像javascript构造的foreach在IE中不起作用,但它在FF中工作.好吧,并非所有for..in这些特殊的功能都不起作用.我会发布代码.在IE8中测试过.使用XHTML DTD进行测试.

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <HTML>
  <HEAD>
   <TITLE> Test </TITLE>
   <META NAME="Generator" CONTENT="EditPlus">
   <META NAME="Author" CONTENT="">
   <META NAME="Keywords" CONTENT="">
   <META NAME="Description" CONTENT="">
  </HEAD>
 <script type="text/javascript">
 <!--
  String.prototype.format = function() {         
   var formatted = this;       
   var mycars = new Array(); //some 
   mycars[0] = "Saab";
   mycars[1] = "Volvo";
   mycars[2] = "BMW";
    var arg;
     for (arg in mycars) {        alert('it comes here');     
      formatted = formatted.replace("{" + arg + "}", arguments[arg]);         }         
      return formatted;
     };

  String.prototype.format2 = function() …
Run Code Online (Sandbox Code Playgroud)

javascript foreach internet-explorer arguments

8
推荐指数
1
解决办法
8087
查看次数

多次使用class.forname会导致内存泄漏吗?(在tomcat中运行)

1)如果我使用以下Class.forName()被多次调用,它会导致内存泄漏吗?

Class.forName("MyClass") 
Run Code Online (Sandbox Code Playgroud)

2)或者,是tomcat的WebAppClassLoader将检查是否"MyClass"已经加载并使用缓存的实例.

3)如果问题(2)的答案是"否"那么,如果我已经打开PermGen扫描并设置相关的jvm参数,那么先前加载的类是否会被垃圾收集.

如果我想避免重新加载类,那么使用类实例缓存的最佳方法是什么.我可以将类实例存储为HashMap

java memory-leaks classloader

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

使用rownum和嵌套子查询的MyBatis RowBounds与Oracle分页查询

我想知道以下哪个在使用100k +记录执行查询的时间方面表现更好

1)Oracle的分页

SELECT *
FROM  (
   SELECT id, col1, col2, rownum rn
   FROM (
      SELECT /*+ first_rows(50) */ id, col1, col2
      FROM   table1
      ORDER  BY id DESC
   )
   WHERE   rownum <= 50
)
WHERE  rn >= 20;
Run Code Online (Sandbox Code Playgroud)

2)使用MyBatis RowBounds进行分页.

MyBatis RowBounds使用普通的JDBC,在触发select之后,它会跳过前20个记录,然后获取接下来的30个(pagesize).

此外,随着页面数量的增加,MyBatis方法会变慢,因为需要跳过更多行吗?

sql oracle ibatis jdbc mybatis

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

使用@Field注释关闭Groovy 2.4变量范围

有人可以向我解释为什么在声明中使用closure2时initVars('c')无法修改引用的对象@Field

import groovy.transform.Field;

@Field def lines4 = "a";

void initVars(String pref){
    println('init:'+lines4+'  '+pref)      //*3.init:a  b   *7.init:b  c
    lines4 = pref;  
}
println("closure1")    ///1. closure1
1.times {
    println(lines4)    ///2. a
    initVars('b')      ///3. init:a  b
    lines4 += 'p1'
    println(lines4)    ///4. bp1
}
println("closure2")    ///5. closure2
1.times {
    println(lines4)    ///6. bp1
    initVars('c')      ///7. init:b  c
    println(lines4)    ///8. bp1     Why not c
    lines4 += 'q1'
    println(lines4)    ///9. bp1q1   Why not cq1
}
Run Code Online (Sandbox Code Playgroud)

输出:

C:\projects\ATT>groovy test.groovy
1. closure1
2. a
3. …
Run Code Online (Sandbox Code Playgroud)

groovy

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