jsforum研究。一个比较简单的论坛。
突然想看看论坛是怎么写的。
回想起以前。用jforum。安装使用。在看看那些代码。很多。
觉得很麻烦。自己需要的论坛也没有要求那么复杂。
就是需要简单的发帖。回帖。
进行管理。就可以了。功能越简单越好。
于是发现了。jsforum。功能超级简单。
其中也发现一些问题。进行简单的修改。
首先是在web.xml添加servlet。(见附件)
没有放web.xml文件。
数据库的创建脚本里面。都是用的text字段。这个倒是不用担心最大长度。
- CREATE TABLE forum_forums
- (id int(10) NOT NULL auto_increment,
- forum_id int(10) NOT NULL,
- title text NOT NULL,
- forum_info text NOT NULL,
- PRIMARY KEY (id,forum_id)
- );
- CREATE TABLE forum_message
- (id int(10) NOT NULL auto_increment,
- forum_id int(10) NOT NULL,
- thread_id int(10) NOT NULL,
- reply_id int(10) NOT NULL,
- message text NOT NULL,
- user text NOT NULL,
- date_time datetime NOT NULL,
- PRIMARY KEY (id,forum_id,thread_id,reply_id)
- );
- CREATE TABLE forum_threads
- (id int(10) NOT NULL auto_increment,
- forum_id int(10) NOT NULL,
- thread_id int(10) NOT NULL,
- title text NOT NULL,
- views int(10) default 0,
- PRIMARY KEY (id,forum_id,thread_id)
- );
- CREATE TABLE forum_users
- (id int(10) NOT NULL auto_increment,
- user_name text NOT NULL,
- password text NOT NULL,
- email text ,
- registerdate datetime ,
- type text ,
- avatar text ,
- member_title text ,
- signature text ,
- PRIMARY KEY (id)
- );
- CREATE TABLE forum_settings
- (id int(10) NOT NULL auto_increment,
- dbName text NOT NULL,
- dbLogin text NOT NULL,
- dbPassword text NOT NULL,
- forumPath text NOT NULL,
- forumName text NOT NULL,
- messagePerPage text NOT NULL,
- PRIMARY KEY (id)
- );
数据库里面forum_user里面少了一个type字段。
在数据java类里面也有过小小的问题。mysql的驱动定义。
Class.forName("com.mysql.jdbc.Driver");
在执行的时候的方法也不对。
- public void query(String SQLQuery){
- this.SQLQuery = SQLQuery;
- try {
- stmt = conn.createStatement();
- <span style="color: #ff0000;">stmt.executeQuery( SQLQuery );</span>
- }
- catch( Exception e ){}
- }
这个应该是:
- public void query(String SQLQuery) {
- System.out.println(SQLQuery);
- this.SQLQuery = SQLQuery;
- try {
- stmt = conn.createStatement();
- <span style="color: #ff0000;">stmt.executeUpdate(SQLQuery);</span>
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
明明就是是数据库插入删除的的操作。名字是query。应该叫executeXXX什么吧。
总之修改了之后。是可以用来。
注意字段的not null属性,因为之前调试了半天,最后发现是由于数据库的影响,导致stmt.executeUpdate()总是执行不成功。