信息管理Case:Android+Java Web服务器 第一天

项目名称 :信息管理Case:Android+Java Web服务器(自己认为是个项目吧)
功能实现:
服务器端:用来处理查询请求,使用Servlet 、jsp、c3p0访问mysql等技术点;
        第一天:需求分析,规定接口,环境搭建
需求:
         获取所有用户信息列表  List<Customer> getAll();
添加用户 save(Customer customer);
删除用户  delete(Integer id);
查找用户 Customer get(Integer id);
更新用户update(Customer customer);
规定接口:
     queryCustomer.do   查询所有用户
  addCustomer.do     添加用户
update.do          更新用户
deleteCustomer.do  删除用户
 1.使用c3p0连接数据库,使用DButils操作数据库
配置c3p0 详见

   编写CustomerDAO 定义相应的interface

public interface CustomerDAO {
	public List<Customer> getAll();//获取所有的customer
	
	public void save(Customer customer);//添加一个customer
	
	public Customer get(Integer id);//查找一个
	
	public void delete(Integer id);//删除一个customer
	
	public long getCountName(String name);//返回和name相同的记录数
	
	public List<Customer> getFuzzyCustomer(FuzzyCustomer fc);//模糊查询
	
	public void update(Customer customer);
}


数据库操作类JDBCTools.java

/**
 * 工具类:作用:提供连接数据库和关闭数据库查询等方法;
 * @author dell
 *
 */
public class JDBCTools {
	
	
	private static DataSource dataSource = null;

	//数据库连接池应只被初始化一次. 
	static{
		dataSource = new ComboPooledDataSource("helloc3p0");
	}
	/**
	 * c3p0 获取数据库连接
	 * @return
	 * @throws Exception
	 */
	public static Connection getConnection() throws Exception {
		return dataSource.getConnection();
	}
	
	//处理数据库事务的
		//提交事务
		public static void commit(Connection connection){
			if(connection != null){
				try {
					connection.commit();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		
		//回滚事务
		public static void rollback(Connection connection){
			if(connection != null){
				try {
					connection.rollback();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		
		//开始事务
		public static void beginTx(Connection connection){
			if(connection != null){
				try {
					connection.setAutoCommit(false);
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	/**
	 * select 查询操作,返回ResultSet结果集
	 * @param sql
	 * @return
	 */
	public static ResultSet getRes(String sql){
		ResultSet res = null;
		Connection conn = null;
		Statement statement = null;
		try{
			conn = JDBCTools.getConnection();
			statement = conn.createStatement();
			res = statement.executeQuery(sql);
			if(res != null){
				return res;
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 释放数据库资源的方法
	 * 
	 * @param resultSet
	 * @param statement
	 * @param connection
	 */
	public static void releaseDB(ResultSet resultSet, Statement statement,
			Connection connection) {

		if (resultSet != null) {
			try {
				resultSet.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		if (statement != null) {
			try {
				statement.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		if (connection != null) {
			try {
				//数据库连接池的 Connection 对象进行 close 时
				//并不是真的进行关闭, 而是把该数据库连接会归还到数据库连接池中. 
				connection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

	}
	/**
	 * 关闭数据库 查询
	 * @param statement
	 * @param conn
	 */
	public static void release(Connection conn){
		
				if(conn != null){
					try {
						conn.close();
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
				
		
	}

}






你可能感兴趣的:(信息管理Case:Android+Java Web服务器 第一天)