JavaWeb_MVC案例之DAO层设计
MVC案例之DAO层设计
建数据表
-使用Oracle数据库
--创建表
create table customers(
id number(10) primary key,
name varchar2(30) not null unique,
address varchar2(30),
phone varchar2(30)
)
--创建自增序列
create sequence id_seq start with 0 increment by 1 minvalue 0;
新建动态Web工程,加入 C3P0 数据源
- 1.c3p0
- 2.数据库驱动的 jar 包
编写 DAO、JdbcUtils工具类 和 CustomerDAO 接口
- 1.DAO代码:
/**
* All rights Reserved,Designed By XS
* @Title: DAO.java
* @Package com.xs.mvc_crud.dao
* @Description: TODO
* @author: XS
* @date: 2019年3月9日 上午11:22:55
* @version V1.0
*/
package com.xs.mvc_crud.dao;
import java.util.List;
/**
* @ClassName: DAO
* @Description: <T>:当前DAO处理的实体类是什么类型,封装了CRUD的方法,以供子类继承使用。
* 当前DAO直接在方法中获取数据库连接。
* @author: XS
* @date: 2019年3月9日 上午11:22:55
* @version V1.0
*/
/*------------------------ DAO代码 ------------------------*/
public class DAO<T> {
private Class<T> clazz;
/**
* @Title: getForValue
* @Description: 返回某一个字段的值,例如返回某一条记录的customerName,或返回数据表中有多少条记录等。
* @param sql
* @param args
* @return
* @return E
*/
public <E> E getForValue(String sql,Object ... args) {
return null;
}
/**
* @Title: getForList
* @Description: 返回T所对应的List
* @param sql
* @param args
* @return
* @return List<T>
*/
public List<T> getForList(String sql, Object ... args) {
return null;
}
/**
* @Title: get
* @Description: 返回对应的T的一个实例类的对象。
* @param sql
* @param args
* @return
* @return T
*/
public T get(String sql,Object ... args) {
return null;
}
/**
* @Title: update
* @Description: 该方法封装了INSERT、DELETE、UPDATE操作。
* @param sql: SQL 语句