package com.xiaojia.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.xiaojia.bean.Message;
import com.xiaojia.bean.ReplyMsg;
import com.xiaojia.dao.MessageDao;
import com.xiaojia.utils.DBUtils;
/**
* 持久层接口实现类
* @author wu
*
*/
public class MessageDaoImpl implements MessageDao {
@Override
public void addMessage(Message msg) {
PreparedStatement ps=null;;
Connection conn=DBUtils.getConnection();
try {
ps = conn.prepareStatement("insert into message (name,title,content,time,replynum) value (?,?,?,?,?)");
ps.setString(1, msg.getName());
ps.setString(2, msg.getTitle());
ps.setString(3, msg.getContent());
ps.setString(4, msg.getTime());
ps.setInt(5, msg.getReplynum());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtils.release(conn, ps, null);
}
}
@Override
public List<Message> findAllMessage() {
Connection conn=DBUtils.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
List<Message> lists=new ArrayList<Message>();
try {
ps = conn.prepareStatement("select * from message order by time desc");
rs = ps.executeQuery();
Message msg=null;
while(rs.next()){
msg=new Message();
msg.setId(rs.getInt("id"));
msg.setName(rs.getString("name"));
msg.setTitle(rs.getString("title"));
msg.setContent(rs.getString("content"));
msg.setTime(rs.getString("time"));
msg.setReplynum(rs.getInt("replynum"));
lists.add(msg);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtils.release(conn, ps, rs);
}
return lists;
}
@Override
public Message findMessageById(String id) {
Connection conn=DBUtils.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
Message msg=null;
try {
ps = conn.prepareStatement("select * from message where id=?");
ps.setInt(1, Integer.valueOf(id));
rs=ps.executeQuery();
while(rs.next()){
msg=new Message();
msg.setId(rs.getInt("id"));
msg.setName(rs.getString("name"));
msg.setTitle(rs.getString("title"));
msg.setContent(rs.getString("content"));
msg.setTime(rs.getString("time"));
msg.setReplynum(rs.getInt("replynum"));
return msg;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtils.release(conn, ps, rs);
}
return msg;
}
@Override
public List<ReplyMsg> findAllReplyByMessageId(String id) {
Connection conn=DBUtils.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
List<ReplyMsg> lists=new ArrayList<ReplyMsg>();
try{
ps=conn.prepareStatement("select * from replymsg where mid=?");
ps.setInt(1, Integer.valueOf(id));
rs = ps.executeQuery();
ReplyMsg replyMsg=null;
while(rs.next()){
replyMsg=new ReplyMsg();
replyMsg.setId(rs.getInt("id"));
replyMsg.setRtime(rs.getString("rtime"));
replyMsg.setRcontent(rs.getString("rcontent"));
replyMsg.setMid(rs.getInt("mid"));
replyMsg.setRname(rs.getString("rname"));
lists.add(replyMsg);
}
}catch(Exception e){
e.printStackTrace();
}finally{
DBUtils.release(conn, ps, rs);
}
return lists;
}
@Override
public void addReplyMessage(String rtime, String rcontent, String mid,
String rname) {
Connection conn=DBUtils.getConnection();
PreparedStatement ps=null;
try{
ps=conn.prepareStatement("insert into replymsg (rtime,rcontent,mid,rname) value (?,?,?,?)");
ps.setString(1, rtime);
ps.setString(2, rcontent);
ps.setInt(3, Integer.valueOf(mid));
ps.setString(4, rname);
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
DBUtils.release(conn, ps, null);
}
}
@Override
public void updateReplyNum(String mid) {
//先查出具体的Message
Message message = findMessageById(mid);
Connection conn=DBUtils.getConnection();
PreparedStatement ps=null;
try{
ps=conn.prepareStatement("update message set replynum=? where id=?");
ps.setInt(1, message.getReplynum()+1);
ps.setInt(2, Integer.valueOf(mid));
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
DBUtils.release(conn, ps, null);
}
}
@Override
public int count(String search) {
Connection conn=DBUtils.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
try{
ps=conn.prepareStatement("select count(*) from message where name like ? or title like ? or content like ? ");
ps.setString(1, "%"+search+"%");
ps.setString(2, "%"+search+"%");
ps.setString(3, "%"+search+"%");
rs = ps.executeQuery();
while(rs.next()){
return rs.getInt(1);
}
}catch(Exception e){
e.printStackTrace();
}finally{
DBUtils.release(conn, ps, rs);
}
return 0;
}
@Override
public List<Message> findMessagePage(int currentPage, int pageSize,String search) {
Connection conn = DBUtils.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
List<Message> lists=new ArrayList<Message>();
try{
ps=conn.prepareStatement("select * from message where name like ? or title like ? or content like ? order by time desc limit ?,?");
ps.setString(1, "%"+search+"%");
ps.setString(2, "%"+search+"%");
ps.setString(3, "%"+search+"%");
ps.setInt(4, (currentPage-1)*pageSize);
ps.setInt(5, pageSize);
rs=ps.executeQuery();
Message msg=null;
while(rs.next()){
msg=new Message();
int id = rs.getInt("id");
msg.setId(id);
msg.setName(rs.getString("name"));
msg.setTitle(rs.getString("title"));
msg.setContent(rs.getString("content"));
msg.setTime(rs.getString("time"));
msg.setReplynum(rs.getInt("replynum"));
//查出该留言所有回复
List<ReplyMsg> replyMsgs = findAllReplyByMessageId(id+"");
msg.setReplyMsg(replyMsgs);
lists.add(msg);
}
}catch(Exception e){
e.printStackTrace();
}finally{
DBUtils.release(conn, ps, rs);
}
return lists;
}
@Override
public void deleteReplyById(String id) {
Connection conn=DBUtils.getConnection();
PreparedStatement ps=null;
try{
ps=conn.prepareStatement("delete from replymsg where mid=?");
ps.setInt(1, Integer.valueOf(id));
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
DBUtils.release(conn, ps, null);
}
}
@Override
public void deleteMessageById(String id) {
Connection conn=DBUtils.getConnection();
PreparedStatement ps=null;
try{
ps=conn.prepareStatement("delete from message where id=?");
ps.setInt(1, Integer.valueOf(id));
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
DBUtils.release(conn, ps, null);
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
留言板系统
共91个文件
class:25个
java:24个
jsp:6个
1星 需积分: 46 94 下载量 88 浏览量
2018-03-24
10:28:41
上传
评论 14
收藏 2.99MB ZIP 举报
温馨提示
基于java web的留言板系统,包括前台和后台部分。运用JSP、Servlet、JavaBean、JDBC、MySQL和MVC + DAO等技术
资源推荐
资源详情
资源评论
收起资源包目录
MessageSystem.zip (91个子文件)
MessageSystem
.project 2KB
db
db.sql 981B
.mymetadata 312B
src
com
xiaojia
service
AdminService.java 234B
impl
AdminServiceImpl.java 406B
MessageServiceImpl.java 2KB
MessageService.java 1KB
utils
DBUtils.java 1KB
JsonUtils.java 2KB
MD5Utils.java 887B
DateUtils.java 387B
filter
MyFilter.java 3KB
dao
impl
MessageDaoImpl.java 7KB
AdminDaoImpl.java 1KB
MessageDao.java 1KB
AdminDao.java 235B
servlet
AddReplyMessageServlet.java 1KB
FindMessageDetail.java 1KB
DeleteMessageServlet.java 913B
LoginOutServlet.java 714B
AddMessageServlet.java 1KB
LoginServlet.java 2KB
FindAllMessageServlet.java 2KB
bean
PageBean.java 903B
Message.java 1KB
Admin.java 471B
ReplyMsg.java 736B
WebRoot
WEB-INF
classes
com
xiaojia
service
AdminService.class 206B
MessageService.class 748B
impl
AdminServiceImpl.class 722B
MessageServiceImpl.class 3KB
utils
MD5Utils.class 2KB
DateUtils.class 665B
DBUtils.class 2KB
JsonUtils.class 2KB
filter
MyRequest.class 2KB
MyFilter.class 1KB
dao
AdminDao.class 194B
impl
MessageDaoImpl.class 8KB
AdminDaoImpl.class 2KB
MessageDao.class 900B
servlet
LoginServlet.class 3KB
FindMessageDetail.class 2KB
LoginOutServlet.class 1KB
AddReplyMessageServlet.class 2KB
AddMessageServlet.class 2KB
DeleteMessageServlet.class 2KB
FindAllMessageServlet.class 2KB
bean
PageBean.class 2KB
Admin.class 914B
Message.class 2KB
ReplyMsg.class 1KB
lib
jackson-mapper-asl-1.9.11.jar 762KB
mysql-connector-java-5.0.8-bin.jar 528KB
jackson-core-asl-1.9.11.jar 227KB
web.xml 3KB
index.jsp 621B
img
86418.jpg 415KB
beijing.jpg 566KB
login_logo.png 2KB
detail.png 2KB
delete.png 1001B
login-img.png 133KB
123.jpg 290KB
details.png 2KB
js
jquery-3.3.1.js 265KB
bootstrap.js 68KB
fonts
glyphicons-halflings-regular.ttf 44KB
glyphicons-halflings-regular.woff2 18KB
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.svg 106KB
glyphicons-halflings-regular.woff 23KB
validatecode.jsp 2KB
META-INF
MANIFEST.MF 36B
login.jsp 2KB
details.jsp 3KB
css
bootstrap.min.css 118KB
bootstrap-theme.min.css 23KB
login.css 2KB
home.jsp 4KB
index2.jsp 4KB
.myeclipse
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 252B
com.genuitec.eclipse.core.prefs 130B
org.eclipse.jdt.core.prefs 395B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.core.runtime.prefs 83B
org.eclipse.core.resources.prefs 119B
org.eclipse.wst.common.component 477B
.jsdtscope 500B
.classpath 529B
共 91 条
- 1
资源评论
- 马二科2018-03-28假的。。。
青鸟路过佳城
- 粉丝: 136
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- HCIP-Datacom笔记 (1).pdf
- yolov5,SSD 可能使用到的一些代码
- bbbbbbbbbbbbbbbbbb
- 安卓逆向学习笔记之Frida Stalker 还原OLLVM AES.docx
- 安卓逆向学习笔记之unicorn来trace还原OLLVM Base64.docx
- 最新版本私钥助记词碰撞器大富豪使用python进行制作通过接口的方式进行验证支持多币种多链多网络一分钟万次验证高出货率
- 介绍离散性制造行业的MES系统流程
- Arduino IDE压缩包版本,2024年4月26日,最新版本
- 基于IDEA-CCNL/Randeng-Pegasus-238M-Summary-Chines微调的中文文本摘要任务源码+数据集
- 自动驾驶-状态估计和定位之直方图滤波(Histogram+Filter)定位应用和源码.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功