JDBC
使用前提:在Oracle安装路径下找到classes12.jar文件,并复制粘贴到lib文件下,右键jar包–>Build Path–>Add Build Path
1.载入JDBC驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
2.定义连接URL
String url="jdbc:oracle:thin:@localhost:1521:orcl";//jdbc:oracle:thin:@<主机名或IP>:1521<端口号>: <数据库名>
3.建立连接
Connection conn=DriverManager.getConnection(url,"scott","123456");
System.out.println(conn)//连接成功!
4.创建Statement对象
Statement stat=conn.createStatment();
5.执行查询或更新
String sql="select empno,ename,job,hiredate from emp"
stat.execute(sql);
//如果查询到的结果为ResultSet对象则返回true;
//如果返回的是查询结果数或者不存在结果则返回false.
stat.excuteQuery(sql);
//适用于查询,返回一个ResultSet结果集。
stat.excuteUpdate(sql);
//适用于增删改查,返回操作改变的记录行数,如果返回0怎么说明修改不成功
ResultSet re=stat.excuteQuery(sql);
6.结果处理
ArrayList<Emp> empList=new ArrayList<>();
while(rs.next()){
Emp emp=new Emp();
//声明Emp对象
emp.setEmpno(rs.getInt("empno"));
//将每个对象的属性提取出来并存储。
emplist.add(emp);
//把对象放进集合。
}
return empList;
7.关闭连接
finally{
if(rs!=null){
rs.close();
}
if(conn!=null){
conn.close();
}
//检查一开始声明的对象是否放在try前面。
}
参数绑定
sql语句中的参数用”?”代替
stat.setInt(1,emp.getEmpno());
//"1"代表第一个参数,"emp.getEmpno()"代表传进去的参数。
封装重复的连接过程
新建config文件夹–>新建file,db.properties
#Oracle
classDriver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
userName=scott
passWord=123456
新建DButil文件,封装连接过程。
package firstproject;
import java.io.FileInputStream;
import java.io.IOException;
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 {
private static Properties properties = new Properties();
static {
Connection conn = null;
PreparedStatement stat = null;
ResultSet rs = null;
try {
// 加载外部配置文档db.properties
properties.load(new FileInputStream("config/db.properties"));
// 1.载入JDBC驱动程序
Class.forName(properties.getProperty("classDriver"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 连接
public static Connection getConnection() {
try {
// 2.定义连接URL
String url = properties.getProperty("url");
String userName = properties.getProperty("userName");
String passWord = properties.getProperty("passWord");
// 3.建立连接
Connection conn = DriverManager.getConnection(url, userName, passWord);
// 4.返回连接
return conn;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
// 关闭连接
public static void close(Connection conn, PreparedStatement stat, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if (stat != null) {
stat.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}