本帖最后由 u011405885 于 2013-09-17 03:46:06 编辑

解决方案 »

  1.   

    方法2:public class ConnectionProvider { static String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static String DBURL = "jdbc:mysql://localhost:3306/recipe";
    static String USERNAME = "root";
    static String PW = "poiu0000"; public static Connection connection = null; public static Connection getConnection() {
    try {
    Class.forName(JDBC_DRIVER);
    } catch (ClassNotFoundException e) {
    System.out.println("Where is Driver?");
    e.printStackTrace();
    // return null;
    }
    System.out.println("Registered!"); try {
    connection = DriverManager.getConnection(DBURL, USERNAME, PW);
    System.out.println("Connected!!!");
    } catch (SQLException ee) {
    System.out.println("Connection Failed! ");
    ee.printStackTrace();
    // return null;
    }

    return connection;
    }
    }
      

  2.   

    都不对,connection怎么能是static的呢
      

  3.   

    两种都不对。放在static中的变量都只初始化一次。驱动只需加载一次。所以驱动放在static中。public class ConnectionProvider {
     
        static String JDBC_DRIVER = "com.mysql.jdbc.Driver";
        static String DBURL = "jdbc:mysql://localhost:3306/recipe";
        static String USERNAME = "root";
        static String PW = "poiu0000";
     
        public static Connection connection = null;
     
        static {
            try {
                Class.forName(JDBC_DRIVER);
            } catch (ClassNotFoundException e) {
                System.out.println("Where is Driver?");
                e.printStackTrace();
                // return null;
            }
            System.out.println("Registered!");
        }
            
     
        public static Connection getConnection() {
            try {
                connection = DriverManager.getConnection(DBURL, USERNAME, PW);
                System.out.println("Connected!!!");
            } catch (SQLException ee) {
                System.out.println("Connection Failed! ");
                ee.printStackTrace();
                // return null;
            }
            return connection;
        }
    }
      

  4.   

    刚才没注意那个static,谢楼上。
      

  5.   

    static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。 用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。 
      

  6.   


    static对象 是指什么??
      

  7.   

     我这个是J2EE,一个简单的菜单程序。怎样测试这两种方法?
      

  8.   

     我这个是J2EE,一个简单的菜单程序。怎样测试这两种方法?写个添加数据的页面 然后用loadrunner做压力测试。
      

  9.   

     我这个是J2EE,一个简单的菜单程序。怎样测试这两种方法?或者用两个线程来模拟一下 下面这种情况。比如说有A,B两个业务模块,对应的事物操作分别是
    A: a1,a2,a3.
    B:  b1,b2,b3.先执行A事物,在A事物执行的过程中B请求到达,开始B的事物,例如:A: --------- a1 --------- a2-----------a3----commit
    B:----------------------------------b1-----------------b2-----发生异常,rollback 
    这时你会发现b1被提交了,无法回滚。 
           
      

  10.   


     请详细说说,我是菜鸟,要避免吃亏其实我也是个棒槌,半道出家的,主要是大家多交流,相互学习,共同升大神.
    1,这里且不说事务的问题,首先变量最好不要用全局的,例如:定义一个全局List,你再run了就昨得了。
    2,connection要用连接池,你那例子表面上看是没有问题,但多线程测一下,你的程序就要报SQLException,因为你的连接资源只有一个,供不应求了。
    还是多练多测就会发现问题。
    祝各位中秋吃好,喝好,玩好。
      

  11.   


     我试这个吧看网上有这么写的
    如果不用STATIC,那应该怎么写啊?
    private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    private static final String DBURL = "jdbc:mysql://localhost:3306/recipe";
    private static final String USERNAME = "root";
    private static final String PW = "poiu0000"; private static Connection connection = null;