package cn.edu.hfut.laboa.personal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
import cn.edu.hfut.laboa.AbstractDaoSupport;
/**
* Email Dao 层处理类
*
* @author 赵钦
* @since Apr 13, 2010
*/
public class EmailDaoImpl extends AbstractDaoSupport implements
EmailDao {
/** 邮件ID是否已存在 */
public boolean emailIdIsExistInEmail(String emailId) {
List<String> ids = jdbcTemplate.query(sqlReader.getSQL("EMAIL_QUERY_EMAIL_ID_IS_EXIST"),
new ParameterizedRowMapper<String>() {
public String mapRow(ResultSet rs,
int rowNum) throws SQLException {
return rs.getString(1);
}
},
emailId);
return 1 <= ids.size();
}
/**
* user_email 表中是否还存在 email_id = emaildId
*
* @param emailId
* @return
*/
public boolean emailIdisExistInUserEmailRelation(String emailId) {
List<String> ids = jdbcTemplate.query(sqlReader.getSQL("EMAIL_QUERY_EMAIL_ID_HAS_MORE"),
new ParameterizedRowMapper<String>() {
public String mapRow(ResultSet rs,
int rowNum) throws SQLException {
return rs.getString(1);
}
},
emailId);
return 1 <= ids.size();
}
/**
* 向数据库 email 表中添加 Email 实体类
*
* @param email
* @return
*/
public int insertEmail(Email email) {
return jdbcTemplate.update(sqlReader.getSQL("EMAIL_INSERT_EMAIL"), new Object[] { email.getId(),
email.getEmailTitle(),
email.getEmailContent(),
email.getEmailSize() });
}
/**
* 向数据库 user_email 表中添加 用户-邮件 关系
*
* @param userEmailRelation
* @return
*/
public int insertUserEmailRelation(EmailUserRelation uer) {
return jdbcTemplate.update(sqlReader.getSQL("EMAIL_INSERT_EMAIL_USER"), new Object[] { uer
.getEmailOwner(),
uer.getEmailFrom(),
uer.getEmailTo(),
uer.getEmailId(),
uer.getEmailTitle(),
uer.getSymbol(),
uer.getEmailDate() });
}
/**
* 通过ID查找邮件实体
*
* @param emailId
* @return
*/
public Email getEmailById(String emailId) {
if (!emailIdIsExistInEmail(emailId))
return null;
else {
return (Email) jdbcTemplate.queryForObject(sqlReader.getSQL("EMAIL_QUERY_EMAIL_BY_ID"),
new ParameterizedRowMapper<Email>() {
public Email mapRow(ResultSet rs,
int rowNum) throws SQLException {
Email e = new Email();
e.setId(rs.getString("id"));
e.setEmailTitle(rs.getString("email_title"));
e.setEmailContent(rs.getString("email_content"));
e.setEmailSize(rs.getInt("email_size"));
return e;
}
},
emailId);
}
}
/**
* 通过ID删除邮件实体
*
* @param emailId
* @return
*/
public int deleteEmailById(String emailId) {
if (!emailIdIsExistInEmail(emailId))
return 0;
else
return jdbcTemplate.update(sqlReader.getSQL("EMAIL_DELETE_EMAIL_BY_ID"), emailId);
}
/**
* 获得当前用户的所有邮件ID
*
* @param emailOwner
* @return
*/
public List<String> getAllIdsOfEmail(String emailOwner) {
return jdbcTemplate.query(sqlReader.getSQL("EMAIL_QUERY_All_EMAIL_ID_BY_USER"),
new ParameterizedRowMapper<String>() {
public String mapRow(ResultSet rs,
int rowNum) throws SQLException {
String id = rs.getString(1);
return id;
}
},
emailOwner);
}
/**
* 删除某用户的某个邮件
*
* @param emailOwner 用户ID
* @param emailID
*/
public int deleteUserEmailRelation(String emailOwner,
String emailID) {
return jdbcTemplate.update(sqlReader.getSQL("EMAIL_DELETE_USER_EMAIL_BY_USER_AND_EMAIL_ID"),
emailOwner,
emailID);
}
/**
* 收件箱邮件数
*
* @param userID
* @return
*/
public int getCountOfReceiveBox(String userID) {
List<Integer> count = jdbcTemplate.query(sqlReader.getSQL("EMAIL_QUERY_COUNT_RECEIVE_BOX"),
new ParameterizedRowMapper<Integer>() {
public Integer mapRow(ResultSet rs,
int rowNum) throws SQLException {
return rs.getInt(1);
}
},
userID);
return count.get(0);
}
/**
* 垃圾箱邮件数
*/
public int getCountOfRubbishBox(String userID) {
List<Integer> count = jdbcTemplate.query(sqlReader.getSQL("EMAIL_QUERY_COUNT_RUBBISH_BOX"),
new ParameterizedRowMapper<Integer>() {
public Integer mapRow(ResultSet rs,
int rowNum) throws SQLException {
return rs.getInt(1);
}
},
userID);
return count.get(0);
}
/**
* 发件箱邮件数
*/
public int getCountOfSendBox(String userID) {
List<Integer> count = jdbcTemplate.query(sqlReader.getSQL("EMAIL_QUERY_COUNT_SEND_BOX"),
new ParameterizedRowMapper<Integer>() {
public Integer mapRow(ResultSet rs,
int rowNum) throws SQLException {
return rs.getInt(1);
}
},
userID);
return count.get(0);
}
/**
* 未读邮件数
*
* @param userID
* @return
*/
public int getCountOfNotReadEmail(String userID) {
List<Integer> count = jdbcTemplate.query(sqlReader.getSQL("EMAIL_QUERY_COUNT_NOT_READ"),
new ParameterizedRowMapper<Integer>() {
public Integer mapRow(ResultSet rs,
int rowNum) throws SQLException {
return rs.getInt(1);
}
},
userID);
return count.get(0);
}
/**
* 收件箱
*
* @param emailOwner
* @param start
* @param limit
* @return
*/
public List<EmailUserRelation> getReceiveBox(String emailOwner,
int start,
int limit) {
return getXxxBox(sqlReader.getSQL("EMAIL_QUERY_RECEIVE_BOX"), emailOwner, start, limit);
}
/**
* 垃圾站 : symbol = -1
*
* @param emailOwner
* @param start
* @param limit
* @return
*/
public List<EmailUserRelation> getRubbishBox(String emailOwner,
int start,
int limit) {
return getXxxBox(sqlReader.getSQL("EMAIL_QUERY_RUBBISH_BOX"), emailOwner, start, limit);
}
/**
* 发件箱 : emailOwner = emailFrom
*
* @param emailOwner
* @param start
* @param limit
* @return
*/
public List<EmailUserRelation> getSendBox(String emailOwner,
int start,
int limit) {
return getXxxBox(sqlReader.getSQL("EMAIL_QUERY_SEND_BOX"), emailOwner, start, limit);
}
/**
* 收件箱,发件箱,垃圾箱 的公共代码部分
*
* @param sql
* @return
*/
public List<EmailUserRelation> getXxxBox(String sql,
String emailOwner,
int start,
int limit) {
return jdbcTemplate.query(sql, new ParameterizedRowMapper<EmailUserRelation>() {
public EmailUserRelation mapRow(ResultSet rs,
int rowNum) throws SQLException {
EmailUserRelation uer = new EmailUserRelation();
uer.setId(rs.getString("id"));
uer.setEmailOwner(rs.getString("email_owner"));
uer.setEmailFrom(rs.getString("email_from"));
uer.setEmailTo(rs.getString("email_to"));
uer.setEmailId(rs.getString("email_id"));
uer.setEmailTitle(rs.getString("email_title"));
uer.setSymbol(rs.getInt("email_symbol"));
uer.setEmailDate(new Date(rs.getTimestamp("email_date").getTime()));
return uer;
}
}, emailOwner, start, limit);
}
/**
* 邮箱当前使用量
*
* @param userID
* @return
*/
public int getUsedMemory(String userID) {
List<Integer> count = jdbcTemplate.query(sqlReader.getSQL("EMAIL_QUERY_USED_CAPACITY"),
new ParameterizedRowMapper<Integer>() {
public Integer mapRow(ResultSet rs,
int rowNum) throws SQLException {
return rs.getInt(1);
}
},
userID);
return count.get(0);
}
/**
* 修改 Email 的 标志(symbol)
*
* @param symbol
* @return
*/
public int setEmailSymbol(String userID,
String emailId,
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
直接导入Myeclipse,参考部署说明修改数据库连接文件即可使用。工作管理系统从研究方向上分主要有任务发布和提交、考评机制、用户和权限管理三大方向;主要设有开发入门、交流版块、公共信息、个人事务、项目协同、系统管理、参数设置七大功能模块。MyEclipse项目。 详细介绍:http://blog.csdn.net/ldsf0_0/archive/2011/03/16/6254655.aspx ExtJS Spring J2EE 毕业设计 工作管理系统 权限管理 考评机制 校园OA
资源推荐
资源详情
资源评论
收起资源包目录
ExtJS + Spring 虚拟实训工作管理平台 (1716个子文件)
ProjectServiceImpl.class 9KB
EmailDaoImpl.class 7KB
UserController.class 7KB
EvaluationRuleDaoImpl.class 6KB
ArticlePageController.class 6KB
NoticePageController.class 6KB
ReplyPageController.class 6KB
UserServiceImpl.class 6KB
TopicDaoImpl.class 6KB
UserDaoImpl.class 6KB
PostBarServiceImpl.class 6KB
InsertPowerFromFileToDataBase.class 5KB
EmailServiceImpl.class 5KB
LevelPageController.class 5KB
TopicController.class 5KB
AddTutorialController.class 4KB
UpdateDemoProjectController.class 4KB
RoleController.class 4KB
PostBarPageController.class 4KB
AddDemoProjectController.class 4KB
LoginController.class 4KB
ArticleDaoImpl.class 4KB
DemoProjectDaoImpl.class 4KB
RoleServiceImpl.class 4KB
NoticeDaoImpl.class 4KB
RoleDaoImpl.class 4KB
ProjectDaoImpl.class 4KB
TutorialDaoImpl.class 4KB
UserTest.class 4KB
EvaluationInfoDaoImpl.class 4KB
SQLReader.class 3KB
FAQDaoImpl.class 3KB
ModuleDaoImpl.class 3KB
User.class 3KB
PostBarEvaStrategy.class 3KB
RoleTest.class 3KB
ArticleServiceImpl.class 3KB
ProjectUserDaoImpl.class 3KB
EvaluationRulePageController.class 3KB
NoticeDaoTest.class 3KB
LevelDaoImpl.class 3KB
AddProjectController.class 3KB
EvaluationInfoDaoImpl$2.class 3KB
Project.class 3KB
UpdateProjectController.class 3KB
EmailServiceTest.class 3KB
EmailDaoTest.class 3KB
GetProjectController.class 3KB
ReportProjectWeeklyController.class 3KB
EvaluationInfo.class 3KB
GetDemoProjectController.class 3KB
EvaluateProjectController.class 3KB
ReplyDaoImpl.class 3KB
ArticleEvaStrategy.class 3KB
SecurityInterceptor.class 3KB
UpdateProjectModuleController.class 3KB
GetFAQController.class 3KB
EvaluationSchema.class 3KB
UserDaoImpl$1.class 3KB
PowerDaoImpl.class 3KB
GetTutorialController.class 3KB
UserDaoImpl$3.class 3KB
AddProjectModuleController.class 3KB
WeeklyDaoImpl.class 3KB
EvaluationInfoPageController.class 2KB
PostDaoTest.class 2KB
GetProjectModuleController.class 2KB
NoticeServiceImpl.class 2KB
OnlineEvaStrategy.class 2KB
EvaluationRequest.class 2KB
PowerTest.class 2KB
LevelServiceImpl.class 2KB
Article.class 2KB
EmailUserRelation.class 2KB
GetTutorialCatalogController.class 2KB
ApplyJoinProjectController.class 2KB
UserDaoImpl$4.class 2KB
PostBarDaoImpl.class 2KB
GetEmailRubbishBoxController.class 2KB
GetEmailReceiveBoxController.class 2KB
GetEmailSendBoxController.class 2KB
DeleteTutorialCatalogController.class 2KB
LogoutController.class 2KB
DeleteTutorialController.class 2KB
EmailSendController.class 2KB
GetProjectWeeklyController.class 2KB
DeleteProjectModuleController.class 2KB
ReplyDaoTest.class 2KB
AddTutorialCatalogController.class 2KB
PowerController.class 2KB
Reply.class 2KB
ProjectUserDaoImpl$1.class 2KB
UpdateTutorialCatalogController.class 2KB
DeleteProjectController.class 2KB
EmailDaoImpl$9.class 2KB
EvaluationInfoDaoImpl$1.class 2KB
AllowJoinProjectController.class 2KB
ArticleDaoImpl$2.class 2KB
PostBarDaoTest.class 2KB
ReportModuleEvolveController.class 2KB
共 1716 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18
ldsf0_0
- 粉丝: 8
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页