J2EE学习笔记--DAO设计模式基础
传统两级模式的问题:
1、所有的JDBC代码写在JSP页面之中,维护困难。
2、JSP中不应该使用任何sql包,即:不能在JSP中直接使用java.sql.*,原因:JSP只关注于数据的显
示,而不关心数据从哪里来,或向哪里存储。
3、所有的数据库操作代码最好使用PreparedStatement
J2EE的组件层次:
客户端 ―>表示层(*.jsp/servlet)―>业务层―>数据层―>数据库
DAO属于J2EE数据层的操作:
即:在DAO中封装了一个表在一个项目中所应该具有的全部操作。
有如下数据库脚本:
程序在编程数据库之后,前台页面不会出现太多改变?
首先需要规定整个模块之中对person表的全部操作:
*增加 *修改 *删除 *按ID查询 *查询全部 *模糊查询
按以上要求,规定出操作此张表的标准,之后只要针对不同的数据库实现这些标准即可。
在JAVA中只要通过接口可以定义接口 ―>DAO定义的就是一个接口。
案例:
说明:比如说一个图书馆,图书馆可以增加书籍。如果要在增加之前,应该把一本书给图书馆才可以。
插入―>针对对象插入
对象―>VO、TO、POJO(值对象、传输对象、最根本的JAVA对象)即:最包含属性和setter和getter方法的类
一、封装数据库连接
package cn.jdbc;
import java.sql.*;
public class DataBaseConn {
Connection conn = null;
public Connection getConn() {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.print("初始化失败!") ;
e.printStackTrace();
}
try {
this.conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/dao", "root", "19871114");
} catch (SQLException e) {
System.out.print("连接失败!") ;
e.printStackTrace();
}
return this.conn;
}
public void close(){
try{
if(conn!= null){
conn.close();
conn = null;
}
} catch (SQLException e) {