你作过论坛吗?谁有用Jsp开发的论坛的源代码!

zhaopuwang 2001-11-08 04:44:55
...全文
51 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hardas 2001-11-11
提示一下你如何出去做!
一:数据库设计
Oracle
create table bbs(
id number(8) primary key, /***主键***/
title varchar(256), /***主题***/
roomid number(8), /***所属版面***/
userid number(8), /***发言人***/
body varchar(4000), /***内容***/建议用long型
sendtime datetime default sysdate(),/***发言时间***/
gid number(8) , /***族id***/
pid number(8) , /***父id***/
orderid number(20,10), /***排序号**/
level number(4) default 0, /***深度***/
showflg number(1) default 0, /***删除标志**/
groomflg number(1) default 0, /***精华标志**/

);

注意:listid 是父listid+比父listid大的一个listid /2
如果没有父节点listid=0

另外建议考虑要运行到不同的数据库所以建议你不要在jsp直接操作数据库而是由bean操作数据库,jsp读写bean!bean 和Databse通讯
下面我给你一些文件
BbsManager.bbs
package com.bingo.bbs.buesiness;
import com.bingo.bbs.database.BbsMap;
import com.bingo.bbs.entiry.bbs;
import java.util.*;
import java.sql.*;
import javax.servlet.http.*;

public class BbsManager{

public BbsManager(){

}

public void newbbs(bbs bbsinfo) throws Exception{
BbsMap bbsmap=new BbsMap();
bbsmap.insert(bbsinfo);
}

public void newbbs(HttpServletRequest HttpReq) throws Exception{
bbs bbsinfo=new bbs();
BbsMap bbsmap=new BbsMap();
String pid_s=HttpReq.getParameter("pid");
int headgif=0;
int mailflg=1;
int userid=0;
int bodysize=0;
int groupid=0;
int pid=0;
if(pid_s==null||pid_s.length()<1){
//add a new bbs
String subject=HttpReq.getParameter("subject");
String body=HttpReq.getParameter("body");
bodysize=body.length();
String headgif_s=HttpReq.getParameter("headgif");
if(headgif_s==null||headgif_s.length()<1){
headgif=Integer.parseInt(headgif_s);
}else{
headgif=0;
}
String mailflg_s=HttpReq.getParameter("mailflg_s");
if(mailflg_s==null||mailflg_s.length()<1){
mailflg=1;
}else{
mailflg=0;
}
userid=Integer.parseInt(HttpReq.getParameter("userid"));
//userid=userhandler.getUserid();
bbsinfo.setSubject(subject);
bbsinfo.setBody(body);
bbsinfo.setHeadgif(headgif);
bbsinfo.setMailflg(mailflg);
bbsinfo.setUserid(userid);
bbsinfo.setBodysize(bodysize);
bbsinfo.setParent_id(pid);
bbsinfo.setGroupid(groupid);
}

bbsmap.insert(bbsinfo);
}

private int getNextGroupid() throws SQLException{
BbsMap bbsmap=new BbsMap();
int netxgid=bbsmap.getNextgid();
return netxgid;
}

}
======================================================================
package com.bingo.bbs.entiry;
import com.bingo.bbs.database.BbsMap;
import java.util.*;
/**bbs信息类**/
public class bbs{
public bbs() {

}

private int _id;
private int _groupid;
private String _subject;
private int _roomid;
private int _userid;
private String _username="";
private int _headgif;
private Date _crtdate;
private String _body;
private int _parent_id;
private double _order_value;
private int _level_value;
private int _groomflg;
private int _mailflg;
private int _showflg;
/**
* 取id
**/
public int getID(){
return _id;
}

/**
* 取族id
**/
public int getGroupid(){
return _groupid;
}

/**
*取主题
**/
public String getSubject(){
return _subject;
}

/**
*取房间号
**/
public int getRoomid(){
return _roomid;
}

/**
*取发言人id
**/
public int getUserid(){
return _userid;
}

/**
*取发言人
**/
public String getUsername(){
return _username;
}

/**
*取图片代号
**/
public int getHeadgif(){
return _headgif;
}

/**
*取发言时间
**/
public Date getCrtdate(){
return _crtdate;
}

/**
*取发言内容
**/
public String getBody(){
return _body;
}

/**
*取父节点id
**/
public int getParent_id(){
return _parent_id;
}

/**
*取排序id
**/
public double getOrder_value(){
return _order_value;
}

/**
*取深度
**/
public int getLevel_value(){
return _level_value;
}

/**
*取精选标志
**/
public int getGroomflg(){
return _groomflg;
}

/**
*取邮件回复标志
**/
public int getMailflg(){
return _mailflg;
}
/**
* 取显示
**/
public int getShowflg(){
return _showflg;
}

public int getBodysize(){
return _body.length() ;
}
/**
* 设置id
**/
public void setID(int id){
_id=id;
}

/**
* 设置族id
**/
public void setGroupid(int groupid){
_groupid=groupid;
}

/**
*设置主题
**/
public void setSubject(String subject){
_subject=subject;
}

/**
*设置房间号
**/
public void setRoomid(int roomid){
_roomid=roomid;
}

/**
*设置发言人id
**/
public void setUserid(int userid){
_userid=userid;
}

/**
*设置发言人
**/
public void setUsername(String username){
_username=username;
}

/**
*设置图片代号
**/
public void setHeadgif(int headgif){
_headgif=headgif;
}

/**
*设置发言时间
**/
public void setCrtdate(Date crtdate){
_crtdate=crtdate;
}

/**
*设置发言内容
**/
public void setBody(String body){
_body=body;
}

/**
*设置父节点id
**/
public void setParent_id(int parent_id){
_parent_id=parent_id;
}

/**
*设置排序id
**/
public void setOrder_value(double order_value){
_order_value=order_value;
}

/**
*设置深度
**/
public void setLevel_value(int level_value){
_level_value=level_value;
}

/**
*设置精选标志
**/
public void setGroomflg(int groomflg){
_groomflg=groomflg;
}

/**
*设置邮件回复标志
**/
public void setMailflg(int mailflg){
_mailflg=mailflg;
}

public void setBodysize(int bodysize){
// _body.length() ;
}
}
===============================================================================
package com.bingo.bbs.database;
import java.sql.*;
import java.util.*;
import com.bingo.bbs.entiry.*;
import com.bingo.util.DataBase.*;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2001
* Company: @erry.com
* @author @bingo
* @version 1.0
**/

public class BbsMap {

public BbsMap() {

}

//private String tb_name=DBProxy.TN_BBS;

/**
* 按某种条件取的需要的记录
* @param schstr 查询条件
* @param ordersch 排序条件
* @param begrcd 记录开始条数
* @param endrcd 记录结束条数
* @return 包含类的ArrayList
* @exception SQLException 数据库出错
* @see com.bingo.bbs.entiry.bbs
*/
public ArrayList batchload(String schstr,String ordersch,int begrcd,int endrcd)throws SQLException{
Connection conn = DBProxy.getConnection(DBProxy.DB_URL);
ArrayList bbsList=new ArrayList();
Vector bbs_v=new Vector();
String sql="select * from "+getTableName();

if(schstr!=null){
sql+=" where "+schstr;
}

if(ordersch!=null){
sql+=" order by "+ordersch;
}

bbs bbsinfo=null;
Statement stmt = conn.createStatement();
ResultSet rs =null;

try{
int rcdno = 0;
int rcdcount = 0;
rs= stmt.executeQuery(sql);
while(rs.next()){
if(begrcd==0||rcdno<begrcd){
continue;
}
bbsinfo=new bbs();
bbsinfo.setID(rs.getInt("id"));
bbsinfo.setGroupid(rs.getInt("groupid"));
bbsinfo.setSubject(rs.getString("subject"));
bbsinfo.setRoomid(rs.getInt("roomid"));
bbsinfo.setUserid(rs.getInt("userid"));
bbsinfo.setHeadgif(rs.getInt("headgif"));
bbsinfo.setCrtdate(rs.getDate("crtdate"));
bbsinfo.setBody(rs.getString("body"));
bbsinfo.setParent_id(rs.getInt("parent_id"));
bbsinfo.setOrder_value(rs.getDouble("order_value"));
bbsinfo.setLevel_value(rs.getInt("level_value"));
bbsinfo.setGroomflg(rs.getInt("groomflg"));
bbsinfo.setMailflg(rs.getInt("mailflg"));
bbs_v.add(bbsinfo);
rcdno++;
if(rcdno>0&&rcdno>=endrcd) break;
}
}catch (SQLException ex) {
rs.close();
stmt.close();
DBProxy.closeConnection(conn);
throw ex;
}
rs.close();
stmt.close();
DBProxy.closeConnection(conn);
return new ArrayList((Collection)bbs_v);
}

/**
* 删除某条记录
* @param id 记录id
* @exception SQLException 数据库出错
* @see com.bingo.bbs.entiry.bbs
**/
public void delete(int id)throws SQLException{
Connection conn = DBProxy.getConnection(DBProxy.DB_URL);
String sql = "delete " + getTableName() + " where id="+Integer.toString(id);
Statement stmt = conn.createStatement();
try{
stmt.executeUpdate(sql);
}catch (SQLException ex) {
stmt.close();
//conn.rollback();
DBProxy.closeConnection(conn);
throw ex;
}
//conn.commit();
stmt.close();
DBProxy.closeConnection(conn);
}

/**取对应的表名**/
private String getTableName() {
return DBProxy.TN_BBS;
}

/**取对应的视图**/
private String getViewName() {
return DBProxy.View_BBS;
}

/**
* 插入bbs记录
* @param bbsinfo bbs类
* @exception SQLException 数据库出错
* @see com.bingo.bbs.entiry.bbs
*/
public void insert(bbs bbsinfo) throws SQLException{
Connection conn = DBProxy.getConnection(DBProxy.DB_URL);
String sql = "insert into " + getTableName() + " parent_id,level_value,order_value,userid,subject,roomid,body,headgif,bodysize,groupid,mailflg,showflg) values (?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);

try {
ps.setInt(1, bbsinfo.getParent_id());
ps.setInt(2, bbsinfo.getLevel_value());
ps.setDouble(3, bbsinfo.getOrder_value());
ps.setInt(4, bbsinfo.getUserid());
ps.setString(5, bbsinfo.getSubject());
ps.setInt(6, bbsinfo.getRoomid());
ps.setString(7, bbsinfo.getBody());
ps.setInt(8, bbsinfo.getHeadgif());
ps.setInt(9, bbsinfo.getBodysize());
ps.setInt(10, bbsinfo.getGroupid());
ps.setInt(11, bbsinfo.getMailflg());
ps.setInt(12, bbsinfo.getShowflg());
ps.executeUpdate();
} catch (SQLException e) {
ps.close();
DBProxy.closeConnection(conn);
throw e;
}
ps.close();
DBProxy.closeConnection(conn);
}

/**
* 获取某条记录
* @param id 记录id
* @return 一个bbs类
* @exception SQLException 数据库出错
* @see com.bingo.bbs.entiry.bbs
**/
public bbs load(int id) throws SQLException{
bbs bbsinfo=null;
Connection conn = DBProxy.getConnection(DBProxy.DB_URL);
String sql="select * from "+getTableName()+" where id="+id;
Statement stmt = conn.createStatement();
ResultSet rs =null;
try{
rs=stmt.executeQuery(sql);
if(rs.next()){
bbsinfo=new bbs();
bbsinfo.setID(rs.getInt("id"));
bbsinfo.setGroupid(rs.getInt("groupid"));
bbsinfo.setSubject(rs.getString("subject"));
bbsinfo.setRoomid(rs.getInt("roomid"));
bbsinfo.setUserid(rs.getInt("userid"));
bbsinfo.setHeadgif(rs.getInt("headgif"));
bbsinfo.setCrtdate(rs.getDate("crtdate"));
bbsinfo.setBody(rs.getString("body"));
bbsinfo.setParent_id(rs.getInt("parent_id"));
bbsinfo.setOrder_value(rs.getDouble("order_value"));
bbsinfo.setLevel_value(rs.getInt("level_value"));
bbsinfo.setGroomflg(rs.getInt("groomflg"));
bbsinfo.setMailflg(rs.getInt("mailflg"));
}

}catch (SQLException ex) {
rs.close();
stmt.close();
DBProxy.closeConnection(conn);
throw ex;
}
rs.close();
stmt.close();
DBProxy.closeConnection(conn);
return bbsinfo;
}

/**
* 更新某条记录
* @param 一个bbs类
* @exception SQLException 数据库出错
* @see com.bingo.bbs.entiry.bbs
**/
public void modify(bbs bbsinfo)throws SQLException{
Connection conn = DBProxy.getConnection(DBProxy.DB_URL);
String sql = "update " + getTableName() + " set parent_id=?,level_value=?,order_value=?,userid=?,subject=?,roomid=?,body=?,headgif=?,bodysize=?,groupid=?,mailflg=?,showflg=? where id=?";
PreparedStatement ps = conn.prepareStatement(sql);
try{
ps.setInt(1, bbsinfo.getParent_id());
ps.setInt(2, bbsinfo.getLevel_value());
ps.setDouble(3, bbsinfo.getOrder_value());
ps.setInt(4, bbsinfo.getUserid());
ps.setString(5, bbsinfo.getSubject());
ps.setInt(6, bbsinfo.getRoomid());
ps.setString(7, bbsinfo.getBody());
ps.setInt(8, bbsinfo.getHeadgif());
ps.setInt(9, bbsinfo.getBodysize());
ps.setInt(10, bbsinfo.getGroupid());
ps.setInt(11, bbsinfo.getMailflg());
ps.setInt(12, bbsinfo.getShowflg());
ps.setInt(13, bbsinfo.getID());
ps.executeUpdate();
}catch (SQLException ex) {
ps.close();
DBProxy.closeConnection(conn);
throw ex;
}

ps.close();
DBProxy.closeConnection(conn);
}
public int getNextgid() throws SQLException{
Connection conn = DBProxy.getConnection(DBProxy.DB_URL);
String sql = "select max(gid) from bbs";
try{
Statement stmt = conn.createStatement();
}catch (SQLException ex) {
DBProxy.closeConnection(conn);
}
return 1;
}
}

说明:我没有写jsp因为下面的jsp已经很简单了,你需要在BbsMananer.java做的事情多点!建议你在jsp调用中只调用BbsManager.java ,例外bbs.java 是相当于Enrity Bean 就是构造一个和数据库结构对应的bean ,BbsMap 有insert(bbs bbsinfo) delete(bbs bbsinfo)
load(),batchload()是对数据做操作的,BbsManager.java就是要实现你需要method的地方
有什么问题可以给我mail
这些代码你编译通不过,因为调用了我很多其他的方法
回复
colababy 2001-11-11
JIVE
值得研究
强烈推荐
回复
lgcfm 2001-11-11
52jsp.126.com
回复
willyzeng 2001-11-09
Jive Forums

http://www.jivesoftware.com/downloads.jsp
回复
langjianjun 2001-11-08
到网上去下吧很多的,我的同事原来作的一个不过数据据是的MYSQL的
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2001-11-08 04:44
社区公告
暂无公告