package cn.liz.test; import java.io.InputStream; import java.sql.Connection; import java.sql.Driver; import java.sql.SQLException; import java.util.Properties; import org.junit.Test; public class JBDCtest { /** * 编写一个通用的方法, 在不改动源程序的情况下, 能够获取不论什么数据库的连接 * 解决方式: 把数据库驱动 Driver 实现类的全类名、url、user、password 放入一个 * 配置文件里, 通过改动配置文件的方式实现和详细的数据库解耦. * @throws Exception */ public Connection getConnection() throws Exception{ String driverClass = null; String jdbcUrl = null; String user = null; String password = null; //读取类路径下的 jdbc.properties 文件 InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties"); Properties properties = new Properties(); properties.load(in); driverClass = properties.getProperty("driver"); jdbcUrl = properties.getProperty("jdbcUrl"); user = properties.getProperty("user"); password = properties.getProperty("password"); //通过反射常见 Driver 对象. Driver driver = (Driver) Class.forName(driverClass).newInstance(); Properties info = new Properties(); info.put("user", user); info.put("password", password); //通过 Driver 的 connect 方法获取数据库连接. Connection connection = driver.connect(jdbcUrl, info); return connection; } @Test public void testGetConnection() throws Exception{ System.out.println(getConnection()); } }<span style="white-space:pre"> </span>
<span style="font-family: Arial, Helvetica, sans-serif;">jdbc.properties</span>配置文件:
#driver=oracle.jdbc.driver.OracleDriver #jdbcUrl=jdbc:oracle:thin:@localhost:1521:orcl #user=scott #password=java driver=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/test user=root password=
时间: 2024-10-14 18:40:38