JavaWeb同步学习笔记之二十九、JavaWeb_MVC案例之DAO层设计

MVC案例之DAO层设计

建数据表

customers数据表结构

-使用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 语句。
	 * @param args: 填充SQL语句的占位符。
	 * @return void
	 */
	public void update(String sql,Object ... args) {
	}
}

  • 2.JdbcUtils代码:
/**  
 * All rights Reserved,Designed By XS
 * @Title: JdbcUtils.java
 * @Package com.xs.mvc_crud.db
 * @Description: TODO
 * @author: XS
 * @date: 2019年3月9日 下午12:36:46
 * @version V1.0
 */
package com.xs.mvc_crud.db;

import java.sql.Connection;

/**   
 * @ClassName: JdbcUtils
 * @Description: JDBC操作的工具类
 * @author: XS
 * @date: 2019年3月9日 下午12:36:46
 * @version V1.0
 */
  /*------------------------ JdbcUtils代码 ------------------------*/
public class JdbcUtils {
	
	/**   
	 * @Title: releaseConnection
	 * @Description: 释放Connection连接 
	 * @return void
	 */
	public static void releaseConnection(Connection connection) {
		
	}
	
	/**   
	 * @Title: getConnection
	 * @Description: 返回数据源的一个Connection对象
	 * @return 
	 * @return Connection
	 */
	public static Connection getConnection() {
		return null;
	}
	
}

  • 3.Customer实体类代码:
/**  
 * All rights Reserved,Designed By XS
 * @Title: Customer.java
 * @Package com.xs.mvc_crud.domain
 * @Description: TODO
 * @author: XS
 * @date: 2019年3月9日 下午12:41:04
 * @version V1.0
 */
package com.xs.mvc_crud.domain;

/**   
 * @ClassName: Customer
 * @Description: TODO
 * @author: XS
 * @date: 2019年3月9日 下午12:41:04
 * @version V1.0
 */
  /*------------------------ Customer实体类代码 ------------------------*/
public class Customer {
	
	private int id;
	
	private String name;
	
	private String address;
	
	private String phone;

	/**  
	 * @return the id
	 */
	public int getId() {
		return id;
	}

	/**  
	 * @param id: the id to set
	 */
	public void setId(int id) {
		this.id = id;
	}

	/**  
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**  
	 * @param name: the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**  
	 * @return the address
	 */
	public String getAddress() {
		return address;
	}

	/**  
	 * @param address: the address to set
	 */
	public void setAddress(String address) {
		this.address = address;
	}

	/**  
	 * @return the phone
	 */
	public String getPhone() {
		return phone;
	}

	/**  
	 * @param phone: the phone to set
	 */
	public void setPhone(String phone) {
		this.phone = phone;
	}

	/**   
	 * <p>Title: toString</p>
	 * <p>Description: </p>
	 * @see java.lang.Object#toString()
	 * @return
	 */
	@Override
	public String toString() {
		return "Customer [id=" + id + ", name=" + name + ", address=" + address + ", phone=" + phone + "]";
	}
}

  • 4.CustomerDAO代码:
/**  
 * All rights Reserved,Designed By XS
 * @Title: CustomerDAO.java
 * @Package com.xs.mvc_crud.dao
 * @Description: TODO
 * @author: XS
 * @date: 2019年3月9日 下午12:39:59
 * @version V1.0
 */
package com.xs.mvc_crud.dao;

import java.util.List;

import com.xs.mvc_crud.domain.Customer;

/**   
 * @ClassName: CustomerDAO
 * @Description: TODO
 * @author: XS
 * @date: 2019年3月9日 下午12:39:59
 * @version V1.0
 */
 /*------------------------ CustomerDAO代码 ------------------------*/
public interface CustomerDAO {
	
	public List<Customer> getAll();
	
	public void save(Customer customer);
	
	public Customer get(int id);
	
	public void delete(int id);
	
	/**   
	 * @Title: getCountWithName
	 * @Description: 返回和name相等的记录数
	 * @param name
	 * @return 
	 * @return BigDecimal
	 */
	public BigDecimal getCountWithName(String name); 

}

提供 CustomerDAO 接口的实现类:CustomerDAOJdbcImpl

  • 1.CustomerDAOJdbcImpl代码:
/**  
 * All rights Reserved,Designed By XS
 * @Title: CustomerDAOJdbcImpl.java
 * @Package com.xs.mvc_crud.dao.impl
 * @Description: TODO
 * @author: XS
 * @date: 2019年3月9日 下午12:47:50
 * @version V1.0
 */
package com.xs.mvc_crud.dao.impl;

import java.util.List;

import com.xs.mvc_crud.dao.CustomerDAO;
import com.xs.mvc_crud.dao.DAO;
import com.xs.mvc_crud.domain.Customer;

/**   
 * @ClassName: CustomerDAOJdbcImpl
 * @Description: TODO
 * @author: XS
 * @date: 2019年3月9日 下午12:47:50
 * @version V1.0
 */
 /*------------------------ CustomerDAOJdbcImpl代码 ------------------------*/
public class CustomerDAOJdbcImpl extends DAO<Customer> implements CustomerDAO {

	/**   
	 * <p>Title: getAll</p>
	 * <p>Description: </p>
	 * @see com.xs.mvc_crud.dao.CustomerDAO#getAll()
	 * @return
	 */
	@Override
	public List<Customer> getAll() {
		// TODO Auto-generated method stub
		return null;
	}

	/**   
	 * <p>Title: save</p>
	 * <p>Description: </p>
	 * @see com.xs.mvc_crud.dao.CustomerDAO#save(com.xs.mvc_crud.domain.Customer)
	 * @param customer
	 */
	@Override
	public void save(Customer customer) {
		// TODO Auto-generated method stub
		
	}

	/**   
	 * <p>Title: get</p>
	 * <p>Description: </p>
	 * @see com.xs.mvc_crud.dao.CustomerDAO#get(int)
	 * @param id
	 * @return
	 */
	@Override
	public Customer get(int id) {
		// TODO Auto-generated method stub
		return null;
	}

	/**   
	 * <p>Title: delete</p>
	 * <p>Description: </p>
	 * @see com.xs.mvc_crud.dao.CustomerDAO#delete(int)
	 * @param id
	 */
	@Override
	public void delete(int id) {
		// TODO Auto-generated method stub
		
	}

	/**   
	 * <p>Title: getCountWithName</p>
	 * <p>Description: </p>
	 * @see com.xs.mvc_crud.dao.CustomerDAO#getCountWithName(java.lang.String)
	 * @param name
	 * @return
	 */
	@Override
	public BigDecimal getCountWithName(String name) {
		// TODO Auto-generated method stub
		return 0;
	}

}

猜你喜欢

转载自blog.csdn.net/baidu_38688346/article/details/88364728