1.原理图

2.Model层的设计

 

 2.1 数据库工具类JdbcUtils.java

 主要作用:获取Connection,以及关闭Connection

代码骨架如下:

public class JdbcUtils {
    /**
     * 因为使用C3P0数据库连接池,不用关闭Statement与ResultSet,但是Connection需要关闭
     * 关闭Connection
     * @param connection
     */
    public static void releaseConnection( Connection connection ) {
    }
    /**
     * 获取数据源的一个Connection对象
     * @return Connection
     * @throws SQLException 
     */
    public static Connection getConnection() throws SQLException {
        return null;
    }
}
 

2.2数据访问对象DAO.java
主要作用,封装了利用JdbcUtils.java进行数据库的增删改查

骨架如下:

package com.njupt.javaweb.dao;
 
import java.util.List;
 
 
/**
 * 
* 项目名称:javaWebMVCProject 
* 类名称:DAO 
* 类描述: 封装了基本的数据库增删改查(CRUD)的方法
*         当前DAO无事务处理,直接在方法内过去连接
 */
public class DAO<T> {
    //因为用到反射需要T的class类
    @SuppressWarnings("unused")
    private Class<T> clazz; 
    private QueryRunner queryRunner = new QueryRunner();
    /**
     * 获取数据库查询后的某一个字段的值,单行单列。例如获取Name字段的值,或者Count(*)记录的条数
     * @param sql 用于执行的sql语句
     * @param args 填充SQL语句的占位符
     * @return 单行单列的值
     */
    public <E> E getForValue( String sql , Object ... args ) {
        return null;
    }
    /**
     * 获取由一组T的对象构成的List
     * @param sql 用于执行的sql语句
     * @param args 填充SQL语句的占位符
     * @return T的对象构成的List
     */
    public List<T> getForList( String sql , Object ... args ){
        return null;
    }
    /**
      * 获取T的实体类对象,该对象与数据库的记录相一致
      * 因为用到反射需要T的class类
     * @param sql 用于执行的sql语句
     * @param args 填充SQL语句的占位符
     * @return T的实体类对象
     */
    public T get( String sql , Object ... args ) {
        return null;
    }
    /**
     * 该方法封装了,INSERT,DELETE,UPDATE相关的数据库操作
     * @param sql 用于执行的sql语句
     * @param args 填充SQL语句的占位符
     */
    public void update( String sql , Object ... args ) {
        
    }
 

2.3数据库实体类Customer.java

public class Customer {
    //属性名与数据库字段一一对应
    private int id;
    private String name;
    private String address;
    private String phone;
    //getter 与setter 方法
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    //带参构造器
    public Customer(int id, String name, String address, String phone) {
        super();
        this.id = id;
        this.name = name;
        this.address = address;
        this.phone = phone;
    }
    //无参构造器
    public Customer() {}
    //重写toString方法
    @Override
    public String toString() {
        return "Customer [id=" + id + ", name=" + name + ", address=" + address + ", phone=" + phone + "]";
    }
    
 

2.4业务接口CustomerDAO.java

主要作用:定义了实现业务功能相关的方法,用于给业务类实现该接口

public class CustomerDAOJdbcImp extends DAO<Customer> implements CustomerDAO{
 
    @Override
    public List<Customer> getAll() {
        // TODO Auto-generated method stub
        return null;
    }
 
    @Override
    public void save(Customer customer) {
        // TODO Auto-generated method stub
        
    }
 
    @Override
    public Customer get(int id) {
        // TODO Auto-generated method stub
        return null;
    }
 
    @Override
    public void delete(int id) {
        // TODO Auto-generated method stub
        
    }
 
    @Override
    public long getCountSameWithName(String name) {
        // TODO Auto-generated method stub
        return 0;
    }
 
}
 

2.5业务类CustomerDAOJdbcImp .java
继承DAO方法,实现业务接口的方法,以便提供给Servlet调用

package com.njupt.javaweb.bussimp;
 
import java.util.List;
 
import com.njupt.javaweb.business.Customer;
import com.njupt.javaweb.dao.CustomerDAO;
import com.njupt.javaweb.dao.DAO;
 
public class CustomerDAOJdbcImp extends DAO<Customer> implements CustomerDAO{
 
    @Override
    public List<Customer> getAll() {
        // TODO Auto-generated method stub
        return null;
    }
 
    @Override
    public void save(Customer customer) {
        // TODO Auto-generated method stub
        
    }
 
    @Override
    public Customer get(int id) {
        // TODO Auto-generated method stub
        return null;
    }
 
    @Override
    public void delete(int id) {
        // TODO Auto-generated method stub
        
    }
 
    @Override
    public long getCountSameWithName(String name) {
        // TODO Auto-generated method stub
        return 0;
    }
 

 

posted on 2020-09-16 16:08  仙女的日常  阅读(525)  评论(0编辑  收藏  举报