SSH(spring+structs2+hibernate)+Mysql实现的投票管理系统
本系统是一个在线的投票管理系统,通过后台对投票信息的维护,可以给用户方便的投票和投票结果展示。
(文末查看完整源码)
实现功能截图
登录
创建投票
投票管理
查询投票
创建管理员
投票
投票展示
系统功能
本系统实现了以下功能:
1、登录
2、投票管理
3、创建投票
4、投票查看
5、管理员管理
6、投票、投票结果查看
等
使用技术
数据库:mysql
开发工具:Idea(Myeclispe、Eclipse也可以)
知识点:Spring+structs2+hibernate
项目结构
代码
java端
实体类
Admin.java
package com.cjg.domain;
@SuppressWarnings("serial")
public class Admin implements java.io.Serializable {
private Integer adminId;
private String name;
private String password;
private String logintime;
public Admin() {
}
public Admin(String name, String password, String logintime) {
this.name = name;
this.password = password;
this.logintime = logintime;
}
public Integer getAdminId() {
return this.adminId;
}
public void setAdminId(Integer adminId) {
this.adminId = adminId;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
public String getLogintime() {
return this.logintime;
}
public void setLogintime(String logintime) {
this.logintime = logintime;
}
}
Vote.java
package com.cjg.domain;
@SuppressWarnings("serial")
public class Vote implements java.io.Serializable {
private Integer voteId;
private String title;
private String createdate;
private Integer type;
private Integer publish;
private Integer adminId;
public Vote() {
}
public Vote(String title, String createdate, Integer type, Integer publish,
Integer adminId) {
this.title = title;
this.createdate = createdate;
this.type = type;
this.publish = publish;
this.adminId = adminId;
}
public Integer getVoteId() {
return this.voteId;
}
public void setVoteId(Integer voteId) {
this.voteId = voteId;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public String getCreatedate() {
return this.createdate;
}
public void setCreatedate(String createdate) {
this.createdate = createdate;
}
public Integer getType() {
return this.type;
}
public void setType(Integer type) {
this.type = type;
}
public Integer getPublish() {
return this.publish;
}
public void setPublish(Integer publish) {
this.publish = publish;
}
public Integer getAdminId() {
return this.adminId;
}
public void setAdminId(Integer adminId) {
this.adminId = adminId;
}
}
dao层
AdminDaoImpl.java
package com.cjg.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.cjg.dao.AdminDao;
import com.cjg.domain.Admin;
public class AdminDaoImpl extends HibernateDaoSupport implements AdminDao {
@SuppressWarnings("unchecked")
public List<Admin> findAll() {
return (List<Admin>) getHibernateTemplate().find("from Admin");
}
public void addAdmin(Admin admin) {
getHibernateTemplate().save(admin);
}
@SuppressWarnings("unchecked")
public Admin findAdmin(String name, String password) {
String[] param = new String[] { name, password };
String sql = "from Admin where name=? and password=?";
// String sql = "from com.cjg.domain.Admin where name=? and password=?";
// String sql = "from admin where name=? and password=?";
List<Admin> list = getHibernateTemplate().find(sql, param);
if (list != null && list.size() > 0)
return list.get(0);
else
return null;
}
public void changepwd(Admin admin) {
getHibernateTemplate().update("password", admin);
}
public void updatelogintime(Admin admin) {
getHibernateTemplate().update("logintime", admin);
}
@SuppressWarnings("unchecked")
public Admin findNameById(Integer adminId) {
String sql = "from Admin as admin where admin.adminId=?";
List<Admin> list = getHibernateTemplate().find(sql, adminId);
return list.get(0);
}
@SuppressWarnings("unchecked")
public Admin findAdminByName(String name) {
String sql = "from Admin as admin where admin.name=?";
List<Admin> list = getHibernateTemplate().find(sql, name);
if (list != null && list.size() > 0)
return list.get(0);
else
return null;
}
}
VoteDaoImpl.java
package com.cjg.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.cjg.dao.VoteDao;
import com.cjg.domain.Vote;
public class VoteDaoImpl extends HibernateDaoSupport implements VoteDao {
public void addVote(Vote vote) {
getHibernateTemplate().save(vote);
}
@SuppressWarnings("unchecked")
public Integer findIdByTitle(Vote vote) {
String title = vote.getTitle();
String sql = "from Vote as vote where vote.title=?";
List<Vote> list = getHibernateTemplate().find(sql, title);
return list.get(0).getVoteId();
}
@SuppressWarnings("unchecked")
public List<Vote> findVote() {
List<Vote> list = getHibernateTemplate().find("from Vote");
return list;
}
@SuppressWarnings("unchecked")
public Vote findVoteById(Integer voteId) {
String sql = "from Vote as vote where vote.voteId=?";
List<Vote> list = getHibernateTemplate().find(sql, voteId);
return list.get(0);
}
public void updateVote(Vote vote) {
getHibernateTemplate().saveOrUpdate(vote);
}
@SuppressWarnings("unchecked")
public List<Vote> findVoteByTitle(Vote vote) {
String title = vote.getTitle();
String sql = "from Vote as vote where vote.title like '%" + title
+ "%'";
List<Vote> list = getHibernateTemplate().find(sql);
if (list.size() > 0 && list != null) {
return list;
} else
return null;
}
public Long findVoteCountByType(Integer type) {
String sql = "select count(*) from Vote as vote where vote.type=?";
List list = getHibernateTemplate().find(sql, type);
if (list != null && list.size() > 0) {
return (Long) list.get(0);
} else
return new Long(0);
}
public Long findVoteCount() {
String sql = "select count(*) from Vote";
List list = getHibernateTemplate().find(sql);
if (list != null && list.size() > 0) {
return (Long) list.get(0);
} else
return new Long(0);
}
}
service层
AdminServiceImpl.java
package com.cjg.service.impl;
import java.util.List;
import com.cjg.dao.AdminDao;
import com.cjg.domain.Admin;
import com.cjg.service.AdminService;
public class AdminServiceImpl implements AdminService {
private AdminDao adminDao;
public AdminDao getAdminDao() {
return adminDao;
}
public void setAdminDao(AdminDao adminDao) {
this.adminDao = adminDao;
}
public List<Admin> findAll() {
List<Admin> list = adminDao.findAll();
return list;
}
public void addAdmin(Admin admin) {
adminDao.addAdmin(admin);
}
public Admin findAdmin(String name, String password) {
return adminDao.findAdmin(name, password);
}
public void changepwd(Admin admin) {
adminDao.changepwd(admin);
}
public void updatelogintime(Admin admin) {
adminDao.updatelogintime(admin);
}
public Admin findNameById(Integer adminId) {
return adminDao.findNameById(adminId);
}
public Admin findAdminByName(String name) {
return adminDao.findAdminByName(name);
}
}
VoterServiceImpl.java
package com.cjg.service.impl;
import com.cjg.dao.VoterDao;
import com.cjg.domain.Voter;
import com.cjg.service.VoterService;
public class VoterServiceImpl implements VoterService {
private VoterDao voterDao;
public VoterDao getVoterDao() {
return voterDao;
}
public void setVoterDao(VoterDao voterDao) {
this.voterDao = voterDao;
}
public void addVoter(Voter voter) {
voterDao.addVoter(voter);
}
public Voter findVoterByIp(String ip, Integer voteId) {
return voterDao.findVoterByIp(ip, voteId);
}
}
action层
NewVote.java
package com.cjg.action.vote;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.cjg.action.rootaction.VoteRoot;
import com.cjg.domain.Admin;
import com.cjg.domain.Vote;
@SuppressWarnings("serial")
public class NewVote extends VoteRoot {
private static final String ADDVOTEERROR = "addVoteError";
@Override
public String execute() throws Exception {
HttpSession session = ServletActionContext.getRequest().getSession();
Vote vote = new Vote();
vote.setTitle(title);
vote.setType(type);
vote.setPublish(publish);
// 获得当前系统时间并格式化,存入创建投票时间
Date date = Calendar.getInstance().getTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(date);
vote.setCreatedate(dateString);
vote.setAdminId(((Admin) session.getAttribute("admin")).getAdminId());
List l = voteService.findVoteByTitle(vote);
if (l != null) {
addActionError(getText("voteexist"));
return ADDVOTEERROR;
} else {
session.setAttribute("vote", vote);
session.setAttribute("contextcount", contextcount);
return SUCCESS;
}
}
}
Createadmin.java
package com.cjg.action.admin;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import com.cjg.action.rootaction.AdminRoot;
import com.cjg.domain.Admin;
@SuppressWarnings("serial")
public class Createadmin extends AdminRoot {
private static final String CREATEADMINERROR = "createAdminError";
@Override
public String execute() throws Exception {
// 通过用户名查找管理员信息
Admin a = adminService.findAdminByName(name);
// 如果不为空,说明已经存在
if (a != null) {
addActionError(getText("adminexist"));
return CREATEADMINERROR;
} else {
Date date = Calendar.getInstance().getTime();
SimpleDateFormat formatter = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(date);
Admin admin = new Admin();
admin.setName(name);
admin.setPassword(newpwd1);
admin.setLogintime(dateString);
adminService.addAdmin(admin);
return SUCCESS;
}
}
}
完整源码
觉得有用,记得一键三连哦!