一、 eclipse连接oracle数据库
1、创建lib文件与src目录平行
2、然后在oracle安装目录下寻找classxx.ja文件并复制过去上面建好的lib文件里
3、右键点击文件选择Build Path 再选择add to…
4、完成上面操作文件就会自动跳到引用库文件Referenced Libraries下,导入成功可以看到这么多的包。
5、来个例子测试下oracle数据是否连接成功
Jdbc类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class jdbc {
public static void main(String[] args) {
ArrayList<Emp> empList =selectEmp();
for (Emp emp : empList) {
System.out.println(emp);
}
}
public static ArrayList<Emp> selectEmp() {
//使用前提:在Oracle安装路径下找到classes12.jar文件,并复制粘贴到lib文件夹下,右键jar包 Build Path-->Add Build Path
Connection conn=null;
Statement stat=null;
ResultSet rs=null;
try {
//1.载入JDBC驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.定义连接URL
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//3.建立连接
conn=DriverManager.getConnection(url,"scott","123456");
System.out.println(conn);
//4.创建Statement对象
stat = conn.createStatement();
String sql="select empno,ename,job,hiredate from emp";
//5.执行查询或更新
rs = stat.executeQuery(sql);
//6.结果处理
ArrayList<Emp> empList =new ArrayList<>();
while (rs.next()) {
//创建Emp对象
Emp emp=new Emp();
//将结果集中的每行数据以对象储存
emp.setEmpno(rs.getInt("empno"));
emp.setEname(rs.getString("ename"));
emp.setJob(rs.getString("job"));
emp.setHiredate(rs.getDate("hiredate"));
//将对象放进集合中
empList.add(emp);
}
//这里的return不能漏写 否则返回不了数据
return empList;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//7.关闭连接
if (rs!=null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (stat!=null) {
try {
stat.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
return null;
}
}
Emp类(可看做是与数据表相关的数据)
import java.util.Date;
/**
* 实体类是设置:
* 1.私有属性
* 2.公开的get和set方法
* 3.有参构造函数
* 4.无参构造函数
* 5.重写toString方法
*/
public class Emp {
private int empno; //员工编号
private String ename; //姓名
private String job; //岗位
private Date hiredate; //入职日期
public Emp(int empno, String ename, String job, Date hiredate) {
super();
this.empno = empno;
this.ename = ename;
this.job = job;
this.hiredate = hiredate;
}
public Emp() {
super();
// TODO Auto-generated constructor stub
}
public int getEmpno() {
return empno;
}
public void setEmpno(int empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}
@Override
public String toString() {
return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", hiredate=" + hiredate + "]";
}
}
结果截图: