关于 Class.forName(); Class.forName();这个表达式具体有什么用处啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 利用java中的反射机制,运行时加载一个class,并实例化 public class cookie { static{ System.out.println("loading cookie"); }}public class sweetshop { public static void main(String[] args) { try { Class.forName("cookie"); } catch (ClassNotFoundException ex) { } }}但是我这样写没有打印出 loading cookie这句话啊?哪里错了 catch (ClassNotFoundException ex) { e.printStackTrace();//达因信息看看 } 你是不是没写包名阿? 你上面这段程序怎么能用两个public类呢?首先你的程序本身运行就会报错 。同样的程序在eclipse中能打印出 jbuilder就不行...郁闷 答:zr_dixuexiongying ,真可爱啊!楼主,程序应该是可以的啊。 加载驱动的如:import java.sql.Connection;import java.sql.ResultSet;import java.sql.PreparedStatement;import java.sql.DriverManager;/** * 建立数据库连接和关闭数据库连接的类*/public final class ConnectionManager { private static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver"; private static final String URL = "jdbc:odbc:sql"; private static Connection con = null; private ConnectionManager() { } //建立数据库联接 public static Connection getConnection() { try { Class.forName(DRIVER); //加载并注册驱动 con = DriverManager.getConnection(URL); //取得连接 if (con != null) { System.out.println("连接数据库成功"); } } catch (Exception e) { System.out.println("连接数据库不成功" + e.getMessage()); } return con; } //关闭ResultSet对象 public static void closeResultSet(ResultSet rs) { try { if (rs != null) { rs.close(); } } catch (Exception e) { System.out.println("ConnectionManager中的closeResultSet()方法有错误" + e.getMessage()); } } //关闭PreparedStatement对象 public static void closeStatement(PreparedStatement pstm) { try { if (pstm != null) { pstm.close(); } } catch (Exception e) { System.out.println("ConnectionManager中的closeStatement()方法有错误" + e.getMessage()); } } //关闭Connection对象 public static void closeConnection(Connection con) { try { if (con != null && con.isClosed() == false) { con.close(); } } catch (Exception e) { System.out.println("ConnectionManager中的closeConnection()方法有错误" + e.getMessage()); } }} 这个Class.forName();是一个通过类路径读取类文件,并在虚拟机中生成一个该类的类对象。这个方法常用来加载数据库驱动。 这个Class.forName()是加载参数所表示的类的,但是现在还没有任何实例。参数表示的是“全限定的类名”,并且改类能在classpath里找到。这时还没有创建任何实例,改调用只是返回一个Class对象,通过调用其newInstance()方法创建实例(前提是你的类有不带参数的构造方法) 程序运行时,通过反射加载一个class并实例化. 关于不同类型数据运算结果的问题 关于JTable java基础问题 请教高手:jdk1.4.2无法安装 菜鸟遇到枚举类型求助 一个File文件怎么转换成一个Document?只能用Java自带的包! 求用户注册登陆图片验证码的实现 泛型的一个小问题??请教下. 给分一百,请教个小问题 高分求教:关于矩阵转换问题,可用即给分 谁能帮我看看这个程序加顺便问个小问题(^_^) 关于Class类
static{
System.out.println("loading cookie");
}
}
public class sweetshop {
public static void main(String[] args) {
try {
Class.forName("cookie");
} catch (ClassNotFoundException ex) {
}
}
}
但是我这样写没有打印出 loading cookie这句话啊?哪里错了
e.printStackTrace();//达因信息看看
}
你是不是没写包名阿?
楼主,程序应该是可以的啊。
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.sql.DriverManager;/**
* 建立数据库连接和关闭数据库连接的类*/
public final class ConnectionManager {
private static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
private static final String URL = "jdbc:odbc:sql";
private static Connection con = null; private ConnectionManager() {
} //建立数据库联接
public static Connection getConnection() {
try {
Class.forName(DRIVER); //加载并注册驱动 con = DriverManager.getConnection(URL); //取得连接
if (con != null) {
System.out.println("连接数据库成功");
}
} catch (Exception e) {
System.out.println("连接数据库不成功" + e.getMessage());
}
return con;
} //关闭ResultSet对象
public static void closeResultSet(ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
} catch (Exception e) {
System.out.println("ConnectionManager中的closeResultSet()方法有错误" +
e.getMessage());
}
} //关闭PreparedStatement对象
public static void closeStatement(PreparedStatement pstm) {
try {
if (pstm != null) {
pstm.close();
}
} catch (Exception e) {
System.out.println("ConnectionManager中的closeStatement()方法有错误" +
e.getMessage());
}
} //关闭Connection对象
public static void closeConnection(Connection con) {
try {
if (con != null && con.isClosed() == false) {
con.close();
}
} catch (Exception e) {
System.out.println("ConnectionManager中的closeConnection()方法有错误" +
e.getMessage());
}
}
}
这个方法常用来加载数据库驱动。
这时还没有创建任何实例,改调用只是返回一个Class对象,通过调用其newInstance()方法创建实例(前提是你的类有不带参数的构造方法)