保证Oracle两个服务打开:
监听服务:OracleOraDb11g_home1TNSListener
实例服务:OracleServiceMLDN
新建一个项目,随后配置好数据库驱动程序。右键项目,属性,Java Build Path,Libraies,Add External JARs,添加ojdbc6.jar。
开发数据库连接类
JDBC操作需要有连接,以及链接必须进行关闭的操作,单独建立一个专门连接数据库的类,此类特点:
1.这个类只负责数据库的连接与关闭,而不关心具体的数据库操作
2.如果实例化了这个类的对象,那么就意味着要进行数据库的连接,可以在构造方法中连接
3.项目中如果数据库连接有问题,一定所有代码都出现问题。
但是项目的开发需要存在有包,现在假设整个项目父包名称:cn.mldn。那么负责数据库连接的类,将其放在dbc子包中。
范例:定义DatabaseConnection工具类
package DatabaseConnection; import java.sql.Connection; import java.sql.DriverManager; /*本类负责数据库的连接操作,在进行被类对象实例化时自动进行数据库的连接处理 * */ public class DatabaseConnection { private static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver"; //背 private static final String DBURL = "jdbc:oracle:thin:@localhost:1521:orcl"; private static final String DBUSER = "scott"; private static final String PASSWORD = "123456"; private Connection conn = null; /* * 在构造方法调用时将进行数据库连接对象的取得 * */ public DatabaseConnection() { try{ Class.forName(DBDRIVER);//加载数据库的驱动程序 this.conn = DriverManager.getConnection(DBURL,DBUSER,PASSWORD); }catch (Exception e) { e.printStackTrace(); } } /* * 取得数据库连接对象 * 实例化的Connection对象,如果返回null,表示没有连接成功 * */ public Connection getConnection() { return this.conn; } /* * 进行数据库关闭操作 * */ public void close() { if(this.conn != null) { try{ this.conn.close(); } catch (Exception e) { e.printStackTrace(); } } } }
如果以后要更换数据库,那么更换连接信息即可。
以上的设计属于最简化设计,最早DAO设计模式出现的时候有一个要解决的头等问题:数据库的可移植性。所以对于数据库连接操作,也需要考虑到这些情况。
简单Java类
1.简单java类的名称一定要与实体表名称对应
命名要求,如果表明:student_info, 那么就转换为StudentInfo,有些人设计表时喜欢在前面追加一个字母“T”,例如:t_student,那么将t忽略。
2.有可能出现传输需求,那么类一定要实现Serializable接口。
3.类中不许使用基本数据类型,统一使用包装类描述。
包装类本身有null的特点
4.类中属性一定使用private封装,一定按要求编写setter getter方法
5.类中可以定义有任意多个构造方法,但一定要保留有无参构造方法
6.类中可以有选择的覆写equal()、hashCode()、toString()方法
可以将所有java类成为VO(PO、TO、POJO),可以将该种类保存在xxx.vo在包中
范例:定义Emp.java类
package xxx.vo; import java.io.Serializable; import java.util.Date; @SuppressWarnings("serial") public class Emp implements Serializable { private Integer empno; private String ename; private String job; private Date hiredate; private Double sal; private Double comm; public Integer getEmpno() { return empno; } public void setEmpno(Integer 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 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; } @Override public String toString() { return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", hiredate=" + hiredate + ", sal=" + sal + ", comm=" + comm + "]"; } }
以后还可以在简单java类中设置关系。