上一篇文章,自定义了jdbc工具类,但那个有一些问题,问题是把驱动,账号密码都写死了,这样是不合理的,应该把可能更改的一切配置信息写入到配置文件中,因为这样才足够灵活。
使用properties文件做配置文件
1文件位置:最好在src下,程序在编译之后,src的东西也会到bin中
2.文件名称:任意.properties
3.文件内容:一行一组数据,格式“key=value”.
4.key命名自定义,如果是多个单词,习惯使用点分隔。例如:jdbc.driver
5.value值不支持中文,如果需要使用非英文字符,将进行unicode转换。
这个配置文件创建好了之后,那么就该读取了。
FileInputStream is=new FileInputStream("database.properties");
System.out.println(is);
因为程序运行之后,properties文件会到bin下,所以我们路径写的不对,我们通过简单的流加载是无法准确读取到配置文件中的数据的,但我们可以通过类加载器的方法加载这个配置文件,具体操作如下:
代码为
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class Doing {
public static void main(String[] args) throws IOException, ClassNotFoundException, SQLException {
InputStream in=Doing.class.getClassLoader().getResourceAsStream("database.properties");
//Doing.class获取字节码.getClassLoader获取类加载器.getResourceAsStream()返回操作该文件的输入流
//类加载器是去bin下获取类的,所以去bin目录下找配置文件的,所以直接写database.properties即可获取到
Properties p=new Properties();
p.load(in);//将in流中的加载到p。直接操作p可以获取文件数据
String driverClass=p.getProperty("driverClass");
String url=p.getProperty("url");
String username=p.getProperty("username");
String password=p.getProperty("password");
Class.forName(driverClass);
Connection conn=DriverManager.getConnection(url,username,password);
System.out.println(conn);
}
}
至此我们就通过读取到了配置文件中的内容,下面一步我们需要处理的是,改版上次做的jdbc工具类工具类,使其做到真正的灵活。
就是将一些不固定的内容放到配置文件中,然后通过类加载的方式,获取到这些数据,然后连接上数据库,并且返回连接对象。