主要作用:获取Connection,以及关闭Connection
代码骨架如下:
package com.njupt.javaweb.db;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
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;
}
}
主要作用,封装了利用JdbcUtils.java进行数据库的增删改查
骨架如下:
package com.njupt.javaweb.dao;
import java.util.List;
/**
*
* 项目名称:javaWebMVCProject
* 类名称:DAO
* 类描述: 封装了基本的数据库增删改查(CRUD)的方法
* 当前DAO无事务处理,直接在方法内过去连接
*/
public class DAO {
//因为用到反射需要T的class类
@SuppressWarnings("unused")
private Class clazz;
private QueryRunner queryRunner = new QueryRunner();
/**
* 获取数据库查询后的某一个字段的值,单行单列。例如获取Name字段的值,或者Count(*)记录的条数
* @param sql 用于执行的sql语句
* @param args 填充SQL语句的占位符
* @return 单行单列的值
*/
public E getForValue( String sql , Object ... args ) {
return null;
}
/**
* 获取由一组T的对象构成的List
* @param sql 用于执行的sql语句
* @param args 填充SQL语句的占位符
* @return T的对象构成的List
*/
public List 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 ) {
}
}
主要作用,将自己的属性与数据库的字段一一对应,以便将每条数据库数据转成其对象
框架如下:
package com.njupt.javaweb.business;
/**
*
* 项目名称:javaWebMVCProject
* 类名称:Customer
* 类描述: 用于对接数据库记录的实体类
*/
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 + "]";
}
}
主要作用:定义了实现业务功能相关的方法,用于给业务类实现该接口
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 implements CustomerDAO{
@Override
public List 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;
}
}
继承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 implements CustomerDAO{
@Override
public List 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;
}
}