1、第一步:我们要有我们的数据库以及对应的表
这里我们需要用到sql语句对其进行创建或者通过一些数据库工具对其进行创建。这里我用sql语句进行创建。
a、create database hcp;
b、use hcp;
c、create table Emp(
empno int,
ename char(255),
job char(255),
hiredate char(255),
sal decimal(16,3));
这里我们在hcp库中创建了一个名为Emp的表。
2、第二步:与我们的数据库建立连接
1 packagedao.dbc;2
3 importjava.sql.Connection;4 importjava.sql.DriverManager;5 importjava.sql.SQLException;6 /*
7 * 专门负责数据库的打开和关闭的类8 */
9 public classDatabaseConnection {10 private static final String DBDRIVER = "org.gjt.mm.mysql.Driver";11 public static final String DBURL = "jdbc:mysql://localhost:3306/hcp";12 public static final String DBUSER = "root";13 public static final String DBPASS = "";14 privateConnection conn;15
16 publicDatabaseConnection() {17 try{18 Class.forName(DBDRIVER);19 this.conn =DriverManager.getConnection(DBURL, DBUSER, DBPASS);20 } catch(ClassNotFoundException e) {21 e.printStackTrace();22 } catch(SQLException e) {23 e.printStackTrace();24 }25 }26
27 publicConnection getConnection() {28 return this.conn;29 }30
31 public voidclose() {32 if (this.conn != null) {33 try{34 this.conn.close();35 } catch(SQLException e) {36 e.printStackTrace();37 }38 }39 }40 }
这里有一点注意的是,无论是什么数据库,我们都需要在我们的myeclipse或者eclipse中添加相应的数据库驱动,一定要注意!!!!
3、建立与数据库对应的实体:名字一定要和数据库的名字一样,还有表中的值也要和实体的对应。
package dao;
import java.util.Date;
/*
* 属性与表中的字段相对应,每一个对象表示表中的一条记录
*/
public class Emp {
private int empno;
private String ename;
private String job;
private Date hiredate;
private float sal;
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;
}
public float getSal() {
return sal;
}
public void setSal(float sal) {
this.sal = sal;
}
}
这里我刚开始学的时候,有一个疑问,我们为什么要用实体,不用实体我们同样可以通过sql语句获取到相应的数据呀??后来,想了一下,数据库中取到的数据是一堆很乱的数据,假如我们把取到的数据添加到实体中的话,就很有条理,方便后期维护,易于我们对数据进行操作,非常的棒!放在数据库中可能只是单纯的数据,取出来之后放到实体中可就是对象了,我们想干啥就干啥。
4、写静态工厂方法:静态工厂方法可以让对数据库操作的实例只有一个
1 packagedao.factory;2
3 importdao.dao.IEmpDAO;4 importdao.dao.proxy.EmpDAOProxy;5 /*
6 * 通过工厂类取得Dao的实例化对象7 */
8 public classDAOFactory {9 public staticIEmpDAO getIEmpDAOInstance() {10 return newEmpDAOProxy();11 }12 }
5、测试访问