========数据库连接========
oracle数据库连接:
oracle驱动:oracle.jdbc.driver.OracleDriver/oracle.jdbc.OracleDriver
oracle_URL:jdbc:oracle:thin:@<主机名>:<端口号(默认1521)>:<实例名>
实例:
//1、装载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2、建立连接
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","system","orcl");
mysql数据库连接:
mysql驱动:com.mysql.jdbc.Driver
mysql_url:jdbc:mysql://<主机名>:<端口号(默认3306)>/<数据库名>
=========针对数据库驱动、连接代码重复使用的问题=========
针对数据库驱动、连接代码重复使用的问题
解决方案:
第一种:
将重复代码提取出来封装成一个DBUtil数据库工具类,其中方法为静态方法
将数据配置在工具类中
package tarena.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* 数据库操作工具类
* @author Administrator
*
*/
public class DBUtil {
private static String driver = null;
private static String url = null;
private static String username = null;
private static String password = null;
/**
* 类的代码块:类加载时执行,只执行一次
*/
static {
try {
driver="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl";
username = "system";
password = "orcl";
//3、加载驱动:只需加载一次就行
Class.forName(driver);
} catch (Exception e) {
System.out.println("配置文件读取异常!");
e.printStackTrace();
}
}
/**
* 获取连接对象
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException{
Connection con=DriverManager.getConnection(url,username,password);
return con;
}
/**
* 关闭所有资源
* @param con
* @param stmt
* @param rs
*/
public static void close(Connection con,Statement stmt,ResultSet rs){
try {
if(stmt!=null){
stmt.close();
}
if(rs!=null){
rs.close();
}
if(con!=null){
con.close();
}
} catch (Exception e) {
System.out.println("数据库关闭产生异常!");
e.printStackTrace();
}
}
}
第二种(灵活、适应多种数据库连接):
1、将重复代码提取出来封装成一个DBUtil数据库工具类,其中方法为静态方法
2、创建db.properties属性文件,将数据配置在属性文件中
例:
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc\:oracle\:thin\:@localhost\:1521\:orcl
jdbc.username=system
jdbc.password=orcl
3、DBUtil工具类中读取属性文件,配置数据信息
public class DBUtil {
private static String driver = null;
private static String url = null;
private static String username = null;
private static String password = null;
/**
* 类的代码块:类加载时执行,只执行一次
*/
static {
try {
// 1、加载db.properties文件
Properties properties = new Properties();
String path = "tarena/dao/db.properties";
//DBUtil.class.getClassLoader():定位到当前目录下的src目录
properties.load(DBUtil.class.getClassLoader().getResourceAsStream(path));
// 2、从db.properties文件中读取配置信息
driver=properties.getProperty("jdbc.driver");
url=properties.getProperty("jdbc.url");
username=properties.getProperty("jdbc.username");
password=properties.getProperty("jdbc.password");
//测试代码
// System.out.println(driver);
// System.out.println(url);
// System.out.println(username);
// System.out.println(password);
//3、加载驱动:只需加载一次就行
Class.forName(driver);
} catch (Exception e) {
System.out.println("配置文件读取异常!");
e.printStackTrace();
}
}
/**
* 获取连接对象
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException{
Connection con=DriverManager.getConnection(url,username,password);
return con;
}
/**
* 关闭所有资源
* @param con
* @param stmt
* @param rs
*/
public static void close(Connection con,Statement stmt,ResultSet rs){
try {
if(stmt!=null){
stmt.close();
}
if(rs!=null){
rs.close();
}
if(con!=null){
con.close();
}
} catch (Exception e) {
System.out.println("数据库关闭产生异常!");
e.printStackTrace();
}
}
。。。。。其他封装的方法
}
oracle数据库连接:
oracle驱动:oracle.jdbc.driver.OracleDriver/oracle.jdbc.OracleDriver
oracle_URL:jdbc:oracle:thin:@<主机名>:<端口号(默认1521)>:<实例名>
实例:
//1、装载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2、建立连接
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","system","orcl");
mysql数据库连接:
mysql驱动:com.mysql.jdbc.Driver
mysql_url:jdbc:mysql://<主机名>:<端口号(默认3306)>/<数据库名>
=========针对数据库驱动、连接代码重复使用的问题=========
针对数据库驱动、连接代码重复使用的问题
解决方案:
第一种:
将重复代码提取出来封装成一个DBUtil数据库工具类,其中方法为静态方法
将数据配置在工具类中
package tarena.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* 数据库操作工具类
* @author Administrator
*
*/
public class DBUtil {
private static String driver = null;
private static String url = null;
private static String username = null;
private static String password = null;
/**
* 类的代码块:类加载时执行,只执行一次
*/
static {
try {
driver="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl";
username = "system";
password = "orcl";
//3、加载驱动:只需加载一次就行
Class.forName(driver);
} catch (Exception e) {
System.out.println("配置文件读取异常!");
e.printStackTrace();
}
}
/**
* 获取连接对象
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException{
Connection con=DriverManager.getConnection(url,username,password);
return con;
}
/**
* 关闭所有资源
* @param con
* @param stmt
* @param rs
*/
public static void close(Connection con,Statement stmt,ResultSet rs){
try {
if(stmt!=null){
stmt.close();
}
if(rs!=null){
rs.close();
}
if(con!=null){
con.close();
}
} catch (Exception e) {
System.out.println("数据库关闭产生异常!");
e.printStackTrace();
}
}
}
第二种(灵活、适应多种数据库连接):
1、将重复代码提取出来封装成一个DBUtil数据库工具类,其中方法为静态方法
2、创建db.properties属性文件,将数据配置在属性文件中
例:
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc\:oracle\:thin\:@localhost\:1521\:orcl
jdbc.username=system
jdbc.password=orcl
3、DBUtil工具类中读取属性文件,配置数据信息
public class DBUtil {
private static String driver = null;
private static String url = null;
private static String username = null;
private static String password = null;
/**
* 类的代码块:类加载时执行,只执行一次
*/
static {
try {
// 1、加载db.properties文件
Properties properties = new Properties();
String path = "tarena/dao/db.properties";
//DBUtil.class.getClassLoader():定位到当前目录下的src目录
properties.load(DBUtil.class.getClassLoader().getResourceAsStream(path));
// 2、从db.properties文件中读取配置信息
driver=properties.getProperty("jdbc.driver");
url=properties.getProperty("jdbc.url");
username=properties.getProperty("jdbc.username");
password=properties.getProperty("jdbc.password");
//测试代码
// System.out.println(driver);
// System.out.println(url);
// System.out.println(username);
// System.out.println(password);
//3、加载驱动:只需加载一次就行
Class.forName(driver);
} catch (Exception e) {
System.out.println("配置文件读取异常!");
e.printStackTrace();
}
}
/**
* 获取连接对象
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException{
Connection con=DriverManager.getConnection(url,username,password);
return con;
}
/**
* 关闭所有资源
* @param con
* @param stmt
* @param rs
*/
public static void close(Connection con,Statement stmt,ResultSet rs){
try {
if(stmt!=null){
stmt.close();
}
if(rs!=null){
rs.close();
}
if(con!=null){
con.close();
}
} catch (Exception e) {
System.out.println("数据库关闭产生异常!");
e.printStackTrace();
}
}
。。。。。其他封装的方法
}