//1jar包的导入 我的jar包为:ojdbc6.jar
//配置文件的编写,在这里我的配置文件为jdbc. properties
//entity层:根据数据库的表格创建实体类
//dao层:根据实体类创建的实体类的抽象类
//dao层—impl:为实体类抽象类的子类,直接操作数据库的子类
// utils层:为工具类,为了降低代码直接的耦合性随之产生的工具类
下面果断copy我的代码:
entity层:Temp.java(根据数据库的信息创建的实体类)
import java.io.Serializable;
import java.util.Date;
/**
* @author ljk
* 创建Temp实体类
*/
public class Temp implements Serializable {
private int empno;
private String ename;
private String job;
private int mgr;
private Date hiredate;
private double sal;
private double comm;
private int deptno;
public Temp(int empno, String ename, String job, int mgr, Date hiredate,
double sal, double comm, int deptno) {
this.empno = empno;
this.ename = ename;
this.job = job;
this.mgr = mgr;
this.hiredate = hiredate;
this.sal = sal;
this.comm = comm;
this.deptno = deptno;
}
public Temp() {
}
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 int getMgr() {
return mgr;
}
public void setMgr(int mgr) {
this.mgr = mgr;
}
public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
public double getComm() {
return comm;
}
public void setComm(double comm) {
this.comm = comm;
}
public int getDeptno() {
return deptno;
}
public void setDeptno(int deptno) {
this.deptno = deptno;
}
@Override
public String toString() {
return "Temp [empno=" + empno + ", ename=" + ename + ", job=" + job
+ ", mgr=" + mgr + ", hiredate=" + hiredate + ", sal=" + sal
+ ", comm=" + comm + ", deptno=" + deptno + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
long temp;
temp = Double.doubleToLongBits(comm);
result = prime * result + (int) (temp ^ (temp >>> 32));
result = prime * result + deptno;
result = prime * result + empno;
result = prime * result + ((ename == null) ? 0 : ename.hashCode());
result = prime * result
+ ((hiredate == null) ? 0 : hiredate.hashCode());
result = prime * result + ((job == null) ? 0 : job.hashCode());
result = prime * result + mgr;
temp = Double.doubleToLongBits(sal);
result = prime * result + (int) (temp ^ (temp >>> 32));
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Temp other = (Temp) obj;
if (Double.doubleToLongBits(comm) != Double
.doubleToLongBits(other.comm))
return false;
if (deptno != other.deptno)
return false;
if (empno != other.empno)
return false;
if (ename == null) {
if (other.ename != null)
return false;
} else if (!ename.equals(other.ename))
return false;
if (hiredate == null) {
if (other.hiredate != null)
return false;
} else if (!hiredate.equals(other.hiredate))
return false;
if (job == null) {
if (other.job != null)
return false;
} else if (!job.equals(other.job))
return false;
if (mgr != other.mgr)
return false;
if (Double.doubleToLongBits(sal) != Double.doubleToLongBits(other.sal))
return false;
return true;
}
}
utils层:SxtJDBCUtil.java(为了降低代码直接的耦合性)
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.sql.Statement;
import java.util.Properties;
/**
* @author ljk
* @JDBC工具类
*/
public class BjsxtUtils {
private static String url;
private static String dirver;
private static String uname;
private static String pwd;
static{
//创建properties对象
Properties pro= new Properties();
try {
//将jdbc.properties文件数据加载到当前类中
pro.load(BjsxtUtils.class.getClassLoader().getResourceAsStream("jdbc.properties"));
dirver=pro.getProperty("dirver");
url=pro.getProperty("url");
uname=pro.getProperty("uname");
pwd=pro.getProperty("pwd");
Class.forName(dirver);
System.out.println(dirver+"======"+url+"=========="+uname+"========="+pwd);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* @建立连接
* @return
*/
public static Connection getcoConnection(){
Connection conn=null;
//2加载驱动
try {
conn= DriverManager.getConnection(url,uname,pwd);
conn.setAutoCommit(false);
}catch (SQLException e) {
e.printStackTrace();
}
//3创建连接
return conn;
}
/**
* @param conn
* @param sql
* @return
* @获取命令发送器
*/
public static Statement getStatement(Connection conn){
Statement state=null;
try {
state=conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
return state;
}
public static PreparedStatement getpPreparedStatement(Connection conn,String sql){
PreparedStatement pstate=null;
try {
pstate=conn.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return pstate;
}
public static ResultSet getrResultSet(){
return null;
}
public static void closeAll(ResultSet resul,Statement state,Connection conn){
if(resul!=null){
try {
resul.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(state!=null){
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
dao层:ITempDao(根据实体类创建的抽象类)
import java.util.List;
import com.bjsxt.entity.Temp;
public interface ITempDao {
//查询所有员工信息
public List<Temp> findAll();
}
dao层—impl:TempDaoimpl(实现了实体类的抽象类,可以直接对数据库信息进行操作)
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.bjsxt.dao.ITempDao;
import com.bjsxt.entity.Temp;
import com.bjsxt.utils.SxtJDBCUtil;
public class TempDaoimpl implements ITempDao {
public static void main(String[] args) {
List<Temp> temps=new TempDaoimpl().findAll();
System.out.println(temps.size());
}
@Override
public List<Temp> findAll() {
//创建接受集合
List<Temp> lists=new ArrayList<>();
//声明连接
Connection conn=null;
PreparedStatement pstat=null;
ResultSet rs=null;
try {
//创建连接
conn=SxtJDBCUtil.getConnection();
//创建命令发送器
String sql="SELECT * FROM TEMP";
pstat=SxtJDBCUtil.getPreparedStatement(conn, sql);
//执行sql语句获取结果集
rs=pstat.executeQuery();
while(rs.next()){
Temp temp=new Temp();
temp.setEmpno(rs.getInt("empno"));
temp.setEname(rs.getString("ename"));
temp.setJob(rs.getString("job"));
temp.setMgr(rs.getInt("mgr"));
temp.setHiredate(rs.getDate("hiredate"));
temp.setSal(rs.getDouble("sal"));
temp.setComm(rs.getDouble("comm"));
temp.setDeptno(rs.getInt("deptno"));
lists.add(temp);
}
if(lists.size() >0){
return lists;
}
} catch (SQLException e) {
e.printStackTrace();
}
//关闭资源
finally{
SxtJDBCUtil.closeAll(rs, pstat, conn);
}
return null;
}
}
转载请注明原文地址: https://ju.6miu.com/read-26091.html