InputStream is = DBConn.class.getClassLoader().getResourceAsStream("database.propertie")
database.propertie是一个文件。
getClassLoader()表示返回类加载器,关键是为什么要加个class这个class是关键字class DBConn.class. 这个什么意思呢
下面是源代码:public class DBConn {
private static String jdbcDriver = null;
private static String jdbcUrl =null ;
private static String jdbcUser = null;
private static String jdbcPasswd = null;
static{
InputStream is = null;
try {
is = DBConn.class.getClassLoader().getResourceAsStream("database.properties");
Properties p = new Properties();
p.load(is);//加载流
//解析流
jdbcDriver = p.getProperty("jdbcDriver");
jdbcUrl = p.getProperty("jdbcUrl");
jdbcUser = p.getProperty("jdbcUser");
jdbcPasswd = p.getProperty("jdbcPasswd");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static Connection getConn (){
/**
* @return指定数据库的连接对象
*/
Connection conn =null;
try {
Class.forName(jdbcDriver);
conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPasswd);//导入import java.sql.DriverManager;且捕获异常。
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}/**
* @关闭用到的对象。
*
*/
public static void closeAll(ResultSet rt,Statement st,Connection conn){
if(rt != null){
try {
rt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(st != null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}public static void main(String[] args) {
DBConn.getConn();
}
}
database.propertie是一个文件。
getClassLoader()表示返回类加载器,关键是为什么要加个class这个class是关键字class DBConn.class. 这个什么意思呢
下面是源代码:public class DBConn {
private static String jdbcDriver = null;
private static String jdbcUrl =null ;
private static String jdbcUser = null;
private static String jdbcPasswd = null;
static{
InputStream is = null;
try {
is = DBConn.class.getClassLoader().getResourceAsStream("database.properties");
Properties p = new Properties();
p.load(is);//加载流
//解析流
jdbcDriver = p.getProperty("jdbcDriver");
jdbcUrl = p.getProperty("jdbcUrl");
jdbcUser = p.getProperty("jdbcUser");
jdbcPasswd = p.getProperty("jdbcPasswd");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static Connection getConn (){
/**
* @return指定数据库的连接对象
*/
Connection conn =null;
try {
Class.forName(jdbcDriver);
conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPasswd);//导入import java.sql.DriverManager;且捕获异常。
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}/**
* @关闭用到的对象。
*
*/
public static void closeAll(ResultSet rt,Statement st,Connection conn){
if(rt != null){
try {
rt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(st != null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}public static void main(String[] args) {
DBConn.getConn();
}
}
就是类的类有点绕,面向对象里称为元类
拿到这个就可以通过反射进行操作
DBConn.class 返回一个管理DBConn的Class对象
DBConn.class.getClassLoader()得到这个DBConn类的加载器