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 package dao.dbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 /* 7 * 专门负责数据库的打开和关闭的类 8 */ 9 public class DatabaseConnection { 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 private Connection conn; 15 16 public DatabaseConnection() { 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 public Connection getConnection() { 28 return this.conn; 29 } 30 31 public void close() { 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 package dao.factory; 2 3 import dao.dao.IEmpDAO; 4 import dao.dao.proxy.EmpDAOProxy; 5 /* 6 * 通过工厂类取得Dao的实例化对象 7 */ 8 public class DAOFactory { 9 public static IEmpDAO getIEmpDAOInstance() { 10 return new EmpDAOProxy(); 11 } 12 }
5、测试访问