SSH(spring+structs2+hibernate)+Mysql实现的投票管理系统(功能包含登录,创建投票、投票管理、投票查看、管理员管理/投票/投票结果查看等)

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;
		}
	}
}

完整源码

觉得有用,记得一键三连哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anmu4200

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值