实在不好意思晾出来,只是想听听高手们的意见,我想把下面的接口应用到Users表中,接着用JSP技术实现一个对Users表进行CRUD的web页面。下面是代码:package com.company.dao;import java.util.*;import com.comany.entity.Users;public interface UsersDao { /**
* 查询Users表中所有记录
* @return 存放Users实体类对象的ArrayList对象
*/
public List<Users> checkAll();
/**
* 根据userID字段查询Users表中的记录
* @param userID Users表中userID字段
* @return 存放Users实体类对象的ArrayList对象
*/
public List<Users> checkByID(int userID);
/**
* 根据userName字段查询Users表中的记录
* @param userName Users表中userName字段
* @return 存放Users实体类对象的ArrayList对象
*/
public List<Users> checkByName(String userName);
/**
* 根据userName和password字段查询Users表中的记录
* @param userName Users表中userName字段
* @param password Users表中password字段
* @return 存放Users实体类对象的ArrayList对象
*/
public List<Users> checkByNameAndPwd(String userName,String password);
/**
* 根据status字段查询Users表中的记录
* @param status Users表中的Status字段
* @return 存放Users实体类对象的ArrayList对象
*/
public List<Users> checkByStatus(int status);
/**
* 向Users表中插入一条数据
* @param userName Users表中userName字段
* @param password Users表中password字段
* @param status Users表中的Status字段
* @return 数据库受影响的行数
*/
public int insertOne(String userName,String password,int status);
/**
* 根据userID字段删除Users表中记录
* @param userID Users表中userID字段
* @return 数据库受影响行数
*/
public int deleteByID(int userID);
/**
* 根据userName字段删除Users表中记录
* @param userName Users表中userName字段
* @return 数据库受影响行数
*/
public int deleteByName(String userName);
/**
* 根据userName和password字段删除Users表中记录
* @param userName Users表中userName字段
* @param password Users表中password字段
* @return 数据库受影响行数
*/
public int deleteByNameAndPwd(String userName,String password);
/**
* 根据userID字段更新Users表中记录
* @param userID Users表中userID字段
* @return 数据库受影响行数
*/
public int updateByID(int userID,String userName,String password,int status);
}
不知道这样写行不行?高手请支招!
* 查询Users表中所有记录
* @return 存放Users实体类对象的ArrayList对象
*/
public List<Users> checkAll();
/**
* 根据userID字段查询Users表中的记录
* @param userID Users表中userID字段
* @return 存放Users实体类对象的ArrayList对象
*/
public List<Users> checkByID(int userID);
/**
* 根据userName字段查询Users表中的记录
* @param userName Users表中userName字段
* @return 存放Users实体类对象的ArrayList对象
*/
public List<Users> checkByName(String userName);
/**
* 根据userName和password字段查询Users表中的记录
* @param userName Users表中userName字段
* @param password Users表中password字段
* @return 存放Users实体类对象的ArrayList对象
*/
public List<Users> checkByNameAndPwd(String userName,String password);
/**
* 根据status字段查询Users表中的记录
* @param status Users表中的Status字段
* @return 存放Users实体类对象的ArrayList对象
*/
public List<Users> checkByStatus(int status);
/**
* 向Users表中插入一条数据
* @param userName Users表中userName字段
* @param password Users表中password字段
* @param status Users表中的Status字段
* @return 数据库受影响的行数
*/
public int insertOne(String userName,String password,int status);
/**
* 根据userID字段删除Users表中记录
* @param userID Users表中userID字段
* @return 数据库受影响行数
*/
public int deleteByID(int userID);
/**
* 根据userName字段删除Users表中记录
* @param userName Users表中userName字段
* @return 数据库受影响行数
*/
public int deleteByName(String userName);
/**
* 根据userName和password字段删除Users表中记录
* @param userName Users表中userName字段
* @param password Users表中password字段
* @return 数据库受影响行数
*/
public int deleteByNameAndPwd(String userName,String password);
/**
* 根据userID字段更新Users表中记录
* @param userID Users表中userID字段
* @return 数据库受影响行数
*/
public int updateByID(int userID,String userName,String password,int status);
}
不知道这样写行不行?高手请支招!
一旦突然又加入一个列你这个接口改动就不小了。
2.把import的类全部写出来,不要写成*。这样代码一多,根本不知道你引用了什么类
3.String userName,String password,int status改成
String userName, String password, int status。,后面要加空格。
4./**
* 查询Users表中所有记录
* @return 存放Users实体类对象的ArrayList对象
*/
注释写成
/**
* 查询Users表中所有记录
*
* @return 存放Users实体类对象的ArrayList对象
*/
comment和下面参数之间要加一个空行5.你很多方法都可以传递一个对象。我相信你从前台mvc拿到的也是一个对象吧。
public List<Users> checkByID(int userID); 难道你数据库用户id有多条? 需要返回一个List嘛 如果你只有一个唯一ID 你需要返回List嘛 你直接返回User 不就行了 你返回List 过后循环遍历只遍历一条 也是需要时间的 效率低
有点建议
check这个单词用的有点词不达意,用query或者直接用get/fetch更好个人觉的good luck
我想说的是,我觉得参数不能那样写,固定死了反而不好,建议使用Hash Map。接口里边的方法好像多了点吧。这都快成具体类来。
最好不要用map做参数,
能用bean最好用bean
否则,代码里都是map,然后是塞满map的list
后果....你懂的,
不懂?
会懂的good luck
public interface IDAO { /**
* 查询 要求传入查询表对应的BeanCalss
*
* @param SQL
* sql查询语句
* @param clazz
* 查询表对应的BeanCalss
* @return 返回该查询的结果集List
* @throws CRMDBConnException
* @throws CRMSQLException
*/
public List findAll(final String SQL, Class clazz)
throws CRMDBConnException, CRMSQLException; /**
* 查询 要使用该方法要求重写根接口的子接口(I***DAO)
*
* @param SQL
* sql查询语句
* @return 返回该查询的结果集List
* @throws CRMDBConnException
* @throws CRMSQLException
*/
public List findAll(final String SQL) throws CRMDBConnException,
CRMSQLException; /**
* 按表主键查询 要求传入 id和表对应的BeanCalss
*
* @param SQL
* sql查询语句
* @param key
* 主键值
* @param clazz
* 查询表对应的BeanCalss
* @return Object 传入BeanCalss 对应的实例
* @throws CRMDBConnException
* @throws CRMSQLException
*/
public Object findByPrimaryKey(final String SQL, final Object key,
Class clazz) throws CRMDBConnException, CRMSQLException; /**
* 按表主键查询 要使用该方法要求重写根接口的子接口(I***DAO)
*
* @param SQL
* sql查询语句
* @param key
* 主键值
* @return Object
* @throws CRMDBConnException
* @throws CRMSQLException
*/
public Object findByPrimaryKey(final String SQL, final Object key)
throws CRMDBConnException, CRMSQLException; /**
* 多条件查询 参数的Object数组和表对应的BeanCalss
*
* @param SQL
* sql查询语句
* @param params
* 参数数组
* @param clazz
* 表对应的BeanCalss
* @return List 查询对应的List结果集
* @throws CRMDBConnException
* 数据库连接异常
* @throws CRMSQLException
* sql语句执行错误
*/
public List findByCondition(final String SQL, final Object[] params,
Class clazz) throws CRMDBConnException, CRMSQLException; /**
* 多条件查询 要使用该方法要求重写根接口的子接口(I***DAO)
*
* @param SQL
* sql查询语句
* @param params
* 参数数组
* @return 查询结果的List
* @throws CRMDBConnException
* 数据库连接异常
* @throws CRMSQLException
* sql语句执行错误
*/
public List findByCondition(final String SQL, final Object bean)
throws CRMDBConnException, CRMSQLException; /**
* 批量新增数据 要使用该方法要求重写根接口的子接口(I***DAO)
*
* @param SQL
* sql查询语句
* @param params
* bean数组
* @return 执行结果
* @throws CRMDBConnException
* 数据库连接异常
* @throws CRMSQLException
* sql语句执行错误
*/
public int batchInsert(final String SQL, final Object[] beans)
throws CRMDBConnException, CRMSQLException; /**
* 新增数据
*
* @param SQL
* sql查询语句
* @param params
* 参数数组
* @return 执行结果
* @throws CRMDBConnException
* 数据库连接异常
* @throws CRMSQLException
* sql语句执行错误
*/
public int insert(final String SQL, final Object[] params)
throws CRMDBConnException, CRMSQLException; /**
* 要使用该方法要求重写根接口的子接口(I***DAO)
*
* @param SQL
* sql新增语句
* @param bean
* 表对应的Bean
* @return 执行结果
* @throws CRMDBConnException
* 数据库连接异常
* @throws CRMSQLException
* sql语句执行错误
*/ public int insert(final String SQL, final Object bean)
throws CRMDBConnException, CRMSQLException; /**
* 更新一条数据
* @param SQL
* sql更新语句
* @param params
* 参数数组
* @return 执行结果
* @throws CRMDBConnException
* 数据库连接异常
* @throws CRMSQLException
* sql语句执行错误
*/
public int update(final String SQL, final Object[] params)
throws CRMDBConnException, CRMSQLException; /**
* 要使用该方法要求重写根接口的子接口(I***DAO)
* @param SQL
* sql更新语句
* @param bean
* 更新表对应的bean实例
* @return 执行结果
* @throws CRMDBConnException
* 数据库连接异常
* @throws CRMSQLException
* sql语句执行错误
*/
public int update(final String SQL, final Object bean)
throws CRMDBConnException, CRMSQLException; /**
* 删除单条数据
*
* @param SQL
* sql删除语句
* @param id
* 主键编号
* @return 执行结果
* @throws CRMDBConnException
* 数据库连接异常
* @throws CRMSQLException
* sql语句执行错误
*/
public int delete(final String SQL, final Object id)
throws CRMDBConnException, CRMSQLException; /**
* 要使用该方法要求重写根接口的子接口(I***DAO)
* 批量删除
*
* @param SQL
* sql语句
* @param ids
* 主键数组
* @return 执行状态
* @throws CRMDBConnException
* 数据库连接异常
* @throws CRMSQLException
* sql语句执行错误
*/
public int batchDelete(final String SQL, final Object ids)
throws CRMDBConnException, CRMSQLException;
}