今天学习了用配置文件和实现接口等方式来访问数据库。
知识点1. 采用系统api的properties方法来加载配置文件,根据Key,value方式来读取数据库配置信息, driver, url, username, password。
知识点2. 使用接口方式来实现获得数据库连接以及关闭连接
后续还将学习数据库访问连接池等技术。
上述的代码都来自与java学习笔记.
知识点1. 采用系统api的properties方法来加载配置文件,根据Key,value方式来读取数据库配置信息, driver, url, username, password。
知识点2. 使用接口方式来实现获得数据库连接以及关闭连接
后续还将学习数据库访问连接池等技术。
上述的代码都来自与java学习笔记.
/**
*
*/
package db;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
/**
* 数据库连接测试类
* 1. dbsource 实例化
* 2. 获得connection
* 3. 根据connection是否关闭的状态,打印相应的状态语句
* @author Administrator
*
*/
public class ConnectionDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
DBSource dbSource;
try {
dbSource = new SimpleDBSource();
Connection conn = dbSource.getConnect();
if( !conn.isClosed()){
System.out.println("数据库连接开启!");
}
dbSource.closeConn(conn);
if(conn.isClosed()){
System.out.println("数据库连接关闭");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package db;
import java.sql.Connection;
import java.sql.SQLException;
/**
* 接口类
* getConnection()
* closeConn()
* @author sean
*
*/
public interface DBSource {
public Connection getConnect() throws SQLException;
public void closeConn(Connection conn) throws SQLException;
}
/**
*
*/
package db;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
/**
* @author sean
*
* 构造函数
* 加载配置文件、赋值、加载驱动程序
* 获得数据库连接getConn
* 关闭数据库连接close()
*
*/
public class SimpleDBSource implements DBSource{
private String url;
private String username;
private String password;
private Properties props;
/**
* 构造函数
* 加载配置文件
* @throws FileNotFoundException
* @throws IOException
* @throws ClassNotFoundException
*/
public SimpleDBSource() throws FileNotFoundException, IOException, ClassNotFoundException{
this("jdbc.properties");
}
/**
* 1. 初始化Properties, 2. loadfile, 3. assignment
* @param configFile
* @throws FileNotFoundException
* @throws IOException
* @throws ClassNotFoundException
*/
public SimpleDBSource(String configFile) throws FileNotFoundException, IOException, ClassNotFoundException{
//TODO 1. 初始化Properties, 2. loadfile, 3. assignment
props = new Properties();
props.load(new FileInputStream(configFile));
url = props.getProperty("net.tuolian.url");
username = props.getProperty("net.tuolian.username");
password = props.getProperty("net.tuolian.password");
Class.forName(props.getProperty("net.tuolian.Driver"));
}
/**
* 获得数据库连接Connection
*/
public Connection getConnect() throws SQLException {
// TODO Auto-generated method stub
return DriverManager.getConnection(url, username, password);
}
/**
* 关闭当前连接
*/
public void closeConn(Connection conn) throws SQLException {
// TODO Auto-generated method stub
if( conn == null){
return;
}
conn.close();
}
}
net.tuolian.Driver=com.mysql.jdbc.Driver
net.tuolian.url=jdbc:mysql://localhost:3306/demo
net.tuolian.username=root
net.tuolian.password=root