看到一本书中介绍了数据库简单编程,讲了一些优化数据库使用的方法,这里记录如下:
在使用时连接数据库:
public Connection getConnection () throws SQLException , ClassNotFoundException {
Class . forName ( driver );
Connection con = DriverManager . getConnection ( url , userName , password );
return con ;
}
这种方法的缺点是当需要许多连接时比较麻烦,而且直接使用driver,url,userName,password字符串,以后如果程序长大后,不好更改。
使用一个类文件保存数据库连接的信息:
public class DBData{
public static final String DRIVER=”com.mysql.jdbc.Driver”;
public static final String URL=”jdbc:mysql://localhost:3306/test”;
public static final String USER_NAME=”root”;
public static final String PASSWORD=”123456”;
}
这中方法较前一种方法的好处是,以后修改可以只用修改这个类中的静态常量就行了。但缺点是修改了这个文件项目必须重新部署。
使用属性文件:
建立一个属性文件:DB.properties 内容如下
driver = "com.mysql.jdbc.Driver"
url = "..............."
userName = "..............."
password = " .............."
建立一个获取属性的类 DB.java 内容如下
import java.io.IOException ;
import java.io.InputStream ;
import java.util.Properties ;
public class DB {
private String driver , url , userName , password ;
public DB (){
driver = getProperty ( "driver" );
url = getProperty ( "url" );
userName = getProperty ( "userName" );
password = getProperty ( "password" );
}
public String getProperty ( String param ){
InputStream in ;
Properties p = new Properties ();
try {
in = Class . forName ( "DB" ). getResourceAsStream ( "DB.properties" );
p . load ( in );
} catch ( ClassNotFoundException e ){
e . printStackTrace ();
} catch ( IOException e ) {
e . printStackTrace ();
}
return p . getProperty ( param );
}
public String getDriver (){
return driver ;
}
...