JSP+SQL实现留言功能(含留言回复功能),附源码,版本2

一、开发环境

开发软件:Eclipse IDE

开发语言:JSP

数据库:MySQL(用了C3P0连接池连接数据库)

二、思路介绍

开发思路参考上一个版本(博客链接)。

三、数据库结构

同上一个版本。

四、JAVA核心代码展示

核心代码解决的问题还是留言留言回复字符串的拆分问题。这次主要用到的是String类的split(String  regex)方法,不清楚的同学可参考JAVA文档

1.查询留言的代码如下:

/**
 * 查询该用户所有留言记录,并按时间排序
 * 
 * @param gid
 * @return
 */
public ArrayList<Message> SelectUserMessage(int gid) {
	ArrayList<Message> message = new ArrayList<>();
	Connection conn = null;
	PreparedStatement ps = null;
	ResultSet res = null;
	String sql = "SELECT * FROM usermessage WHERE guid = ? ORDER BY writetime DESC";
	try {
		conn = C3P0Util.getConnection();
		ps = conn.prepareStatement(sql);
		ps.setInt(1, gid);
		res = ps.executeQuery();
		// 数据处理
		while (res.next()) {
			message.add(getMessage(res));
		}
	} catch (SQLException e) {
		e.printStackTrace();
	} finally {
		try {
			if (res != null)
				res.close();
			if (ps != null)
				ps.close();
			if (conn != null)
				conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	return message;
}

2.核心代码1中调用的getMessage()方法,代码如下:

/**
 * 将查询结果转换为message对象
 * 
 * @param res
 * @return
 */
private Message getMessage(ResultSet res) {
	Message message = new Message();
	User user = null;
	try {
		message.setId(res.getInt("MessageId"));
		message.setWuid(res.getInt("wuid"));
		user = UserService.selectoneuser(message.getWuid());
		message.setWname(user.getName());
		message.setWimg(user.getUserimg());
		message.setGuid(res.getInt("guid"));
		message.setMsgtext(res.getString("MessageText"));
		if(res.getString("ReplyMessage")!=null&&res.getString("ReplyMessage").length()>0)
			message.setReptext(selectUserReplyMessage(res.getString("ReplyMessage")));
		message.setWritetime(res.getString("writetime"));
	} catch (SQLException e) {
		e.printStackTrace();
	}
	return message;
}

3、在核心步骤2中调用的selectUserReplyMessage()方法,即拆分回复字符串的代码

/**
 * 查询留言回复信息
 * 
 * @param content
 * @return Reply回复集合
 */
public ArrayList<Reply> selectUserReplyMessage(String content) {
	content = content.trim();
	String[] one_msg = content.split(">");
	String[] one_msg_info = null;
	ArrayList<Reply> replys = new ArrayList<>();
	User user = new User();
	UserDao dao = new UserDao();
	for (String value : one_msg) {
		one_msg_info = value.split("<");
		Reply re = new Reply();
		for (int i = 0; i < one_msg_info.length; i++) {
			if (i == 0) {
				re.setId(Integer.parseInt(one_msg_info[0]));
				user = dao.selectoneuser(re.getId());// 查询用户name和头像路径
				re.setImg(user.getUserimg());
				re.setName(user.getName());
			}
			if (i == 1)
				re.setContent(one_msg_info[1]);
			if (i == 2)
				re.setTime(one_msg_info[2]);
		}
		replys.add(re);
	}
	return replys;
}

五、Servlet和HTMl代码说明

Servlet:这个没啥说的,就(接收数据>检查数据>封装数据>调用DAO层方法>返回数据)

HTML:这次优化了很多的HTML代码,用EL表达式和JSTl真的很方便,不需要再在html页面写很多的逻辑。

六、运行效果截图

1.用户登录(默认账户:账号:minghue,密码:123)

登录界面

2.首页

网站首页

 3.留言模板n运行效果

留言模板

七、项目源码及结语

这个项目还有些功能没有完善,比如还想做管理员身份登录,审核和删除留言,用户自己删除自己的留言等等,有兴趣的朋友可以研究研究。项目源码在CSDN下载和QQ群里。(群号在上个版本博客的末尾,群里禁止一切广告,广告一次送永久套餐)

  • 5
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
JSP连接数据库SQL Server实现增删改查的源码示例如下: 1. 首先,需要在JSP页面中引入相关的Java类和库文件,以便于连接和操作SQL Server数据库。 ```jsp <%@ page import="java.sql.*" %> <%@ page import="javax.naming.*, javax.sql.*" %> ``` 2. 在JSP页面中创建数据库连接对象,并指定SQL Server的连接URL、用户名和密码。 ```jsp <% String url = "jdbc:sqlserver://localhost:1433;databaseName=testdb"; String username = "sa"; String password = "password"; Connection conn = null; Statement stmt = null; ResultSet rs = null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection(url, username, password); stmt = conn.createStatement(); %> ``` 3. 实现数据库的查询操作,执行SQL语句并获取查询结果。 ```jsp <% String query = "SELECT * FROM my_table"; rs = stmt.executeQuery(query); while (rs.next()) { String column1 = rs.getString("column1"); String column2 = rs.getString("column2"); // 其他列的获取操作 // 输出结果或进行其他操作 } %> ``` 4. 实现数据库的插入操作,执行SQL语句并获取插入的行数。 ```jsp <% String insert = "INSERT INTO my_table (column1, column2) VALUES ('value1', 'value2')"; int rowsInserted = stmt.executeUpdate(insert); // 获取插入的行数,并进行相应的判断和处理 %> ``` 5. 实现数据库的更新操作,执行SQL语句并获取更新的行数。 ```jsp <% String update = "UPDATE my_table SET column1 = 'new value' WHERE column2 = 'value2'"; int rowsUpdated = stmt.executeUpdate(update); // 获取更新的行数,并进行相应的判断和处理 %> ``` 6. 实现数据库的删除操作,执行SQL语句并获取删除的行数。 ```jsp <% String delete = "DELETE FROM my_table WHERE column1 = 'value1'"; int rowsDeleted = stmt.executeUpdate(delete); // 获取删除的行数,并进行相应的判断和处理 %> ``` 7. 最后,关闭数据库连接和相关资源。 ```jsp <% } catch (SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } %> ``` 以上是一个简单的JSP连接数据库SQL Server实现增删改查的示例代码,根据实际需求可以进行相应的修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值