JDBC: 两种方法,哪个对? 本帖最后由 u011405885 于 2013-09-17 03:46:06 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 方法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; }} 都不对,connection怎么能是static的呢 两种都不对。放在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; }} 刚才没注意那个static,谢楼上。 static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。 用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。 static对象 是指什么?? 我这个是J2EE,一个简单的菜单程序。怎样测试这两种方法? 我这个是J2EE,一个简单的菜单程序。怎样测试这两种方法?写个添加数据的页面 然后用loadrunner做压力测试。 我这个是J2EE,一个简单的菜单程序。怎样测试这两种方法?或者用两个线程来模拟一下 下面这种情况。比如说有A,B两个业务模块,对应的事物操作分别是A: a1,a2,a3.B: b1,b2,b3.先执行A事物,在A事物执行的过程中B请求到达,开始B的事物,例如:A: --------- a1 --------- a2-----------a3----commitB:----------------------------------b1-----------------b2-----发生异常,rollback 这时你会发现b1被提交了,无法回滚。 请详细说说,我是菜鸟,要避免吃亏其实我也是个棒槌,半道出家的,主要是大家多交流,相互学习,共同升大神.1,这里且不说事务的问题,首先变量最好不要用全局的,例如:定义一个全局List,你再run了就昨得了。2,connection要用连接池,你那例子表面上看是没有问题,但多线程测一下,你的程序就要报SQLException,因为你的连接资源只有一个,供不应求了。还是多练多测就会发现问题。祝各位中秋吃好,喝好,玩好。 我试这个吧看网上有这么写的如果不用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; 提示进入debug视图 java中冒号等号是什么(即:=) xpath有读取xml文本内容 或者 属性值的功能吗 不带XML文档标签 纯文本 我要在内存缓存一些数据除了单例还有什么方式 命令行下运行java文件 关于Hibernate3.2 blob类型的问题 这个错误提示是什么意思?帮忙看看 alert怎么没有弹出来呢? ( !高手请进!)两个web应用相互访问 请教有没有解析XML Schema的程序包 SSH框架下Oracle xmlType数据存储问题 hibernate 注解如何绑定自定义oracle sequence
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;
}
}
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;
}
}
static对象 是指什么??
A: a1,a2,a3.
B: b1,b2,b3.先执行A事物,在A事物执行的过程中B请求到达,开始B的事物,例如:A: --------- a1 --------- a2-----------a3----commit
B:----------------------------------b1-----------------b2-----发生异常,rollback
这时你会发现b1被提交了,无法回滚。
请详细说说,我是菜鸟,要避免吃亏其实我也是个棒槌,半道出家的,主要是大家多交流,相互学习,共同升大神.
1,这里且不说事务的问题,首先变量最好不要用全局的,例如:定义一个全局List,你再run了就昨得了。
2,connection要用连接池,你那例子表面上看是没有问题,但多线程测一下,你的程序就要报SQLException,因为你的连接资源只有一个,供不应求了。
还是多练多测就会发现问题。
祝各位中秋吃好,喝好,玩好。
我试这个吧看网上有这么写的
如果不用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;