Java连接Oracle(高级篇)
在项目工程目录下新建一个config文件夹,在config文件夹里创建一个database.properties文件,配置相关Oracle数据库的driver、url、username、password。
#Oracle
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:moonlight
jdbc.username=scott
jdbc.password=tiger
在DBUtil.java中封装数据库常用操作。
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class DBUtil {
public static Connection getConnection() {
Connection conn = null;
Properties props = null;
FileInputStream in = null;
try {
props = new Properties();
in = new FileInputStream("config/database.properties");
props.load(in);
in.close();
String jdbcdriver = props.getProperty("jdbc.driver");
if (jdbcdriver != null) {
System.setProperty("jdbc.driver", jdbcdriver);
}
String url = props.getProperty("jdbc.url");
String username = props.getProperty("jdbc.username");
String password = props.getProperty("jdbc.password");
conn = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void close(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(PreparedStatement pstmt) {
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
最后,在JDBCDemo.java中测试一下是否配置连接成功。
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class JDBCDemo {
public static void main(String[] args) throws Exception {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String keyword = "SMI";
String sql = "SELECT empno, ename, job FROM emp WHERE ename LIKE ?";
conn = DBUtil.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "%" + keyword + "%");
rs = pstmt.executeQuery();
while (rs.next()) {
int empno = rs.getInt("empno");
String ename = rs.getString("ename");
String job = rs.getString("job");
System.out.println("empno: " + empno + ", ename: " + ename
+ ", job: " + job);
}
DBUtil.close(rs);
DBUtil.close(pstmt);
DBUtil.close(conn);
}
}