JPBC ing: 留言板之一:用JAVABEAN与DAO封装数据的业务逻辑及操作

      首先,先用DAO把数据业务逻辑部分分离开来,因为我只用到MySQL,所以就省略了工厂类,定了一个业务逻辑的接口及实现它的类。

     MessageDAO.java      
package DAO.iface;

import java.util.List;
/**
 * 进行数据操作的业务逻辑类接口的DAO
 * 
@author Administrator
 *
 
*/

public interface MessageDAO {
    
public List getMessageList();
}


   MessageDAOMySQL.java
package DAO.impl;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import bean.DatabaseBean;
import bean.MessageBoardBean;

import DAO.iface.MessageDAO;
/**
 * 进行数据操作的业务逻辑类
 * 
@author Administrator
 *
 
*/

public class MessageDAOMySQL implements MessageDAO {
    
private DatabaseBean db = null;
    
private Connection conn = null;
    
private Statement stmt = null;
    
private ResultSet rs = null;
    
private List<MessageBoardBean> messageList;

    
public MessageDAOMySQL() {
        db 
= new DatabaseBean();
    }


    
public List getMessageList() {
            messageList 
= new ArrayList<MessageBoardBean>();
            conn 
= db.getConn();
            stmt 
= db.getStatement(conn);
            rs 
= db.getResultSet(stmt, "select * from messageboard;");
            
try {
                
while (rs.next()) {
                    MessageBoardBean tempMessage 
= new MessageBoardBean();
                    tempMessage.setUserName(rs.getString(
2));
                    tempMessage.setTitle(rs.getString(
3));
                    tempMessage.setWords(rs.getString(
4));
                    tempMessage.setTime(rs.getString(
5));
                    messageList.add(tempMessage);
                }

            }
 catch (SQLException e) {
                e.printStackTrace();
            }
 finally {
                db.close(rs);
                db.close(stmt);
                db.close(conn);
            }

            
return messageList;
    }


}


      为了对外扩展可能在此用到数据库的操作,所以将数据库的连接和简单的增删改查等操作封装到一个Bean中。

   DatabaseBean.java
   
package bean;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class DatabaseBean {

    
/**
     * 数据库的封装,javaBean
     * 
@param nonels
     
*/

    
public  Connection getConn() {
        Connection conn 
= null;
        
try {
            Class.forName(
"com.mysql.jdbc.Driver");
            conn 
= DriverManager.getConnection("jdbc:mysql://localhost/JPBC?user=root&password=root");
        }
 catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
 catch (SQLException e) {
            e.printStackTrace();
        }

        
return conn;
    }

    
    
public  Statement getStatement(Connection conn) {
        Statement stmt 
= null;
        
try {
            
if(conn != null{
                stmt 
= conn.createStatement();
            }
 
        }
 catch (SQLException e) {
            e.printStackTrace();
        }

        
return stmt;
    }

    
    
public  ResultSet getResultSet(Statement stmt, String sql) {
        ResultSet rs 
= null;
        
try {
            
if(stmt != null{
                rs 
= stmt.executeQuery(sql);
            }

        }
 catch (SQLException e) {
            e.printStackTrace();
        }

        
return rs;
    }

    
    
public  void close(Connection conn) {
        
try {
            
if(conn != null{
                conn.close();
                conn 
= null;
            }

        }
 catch (SQLException e) {
            e.printStackTrace();
        }

    }

    
    
public  void close(Statement stmt) {
        
try {
            
if(stmt != null{
                stmt.close();
                stmt 
= null;
            }

        }
 catch (SQLException e) {
            e.printStackTrace();
        }

    }

    
    
public  void close(ResultSet rs) {
        
try {
            
if(rs != null{
                rs.close();
                rs 
= null;
            }

        }
 catch (SQLException e) {
            e.printStackTrace();
        }

    }


}


      再将留言板的各个信息也封装成一个Bean

      MeassageBoardBean.java
      
package bean;
/**
 *  留言板信息的bean
 * 
@author nonles
 *
 
*/


public class MessageBoardBean {
    
private String userName;
    
private String title;
    
private String words;
    
private String time;
    
    
public MessageBoardBean() {
        
    }

    
    
public String getTime() {
        
return time;
    }

    
public void setTime(String time) {
        
this.time = time;
    }

    
public String getTitle() {
        
return title;
    }

    
public void setTitle(String title) {
        
this.title = title;
    }

    
public String getUserName() {
        
return userName;
    }

    
public void setUserName(String userName) {
        
this.userName = userName;
    }

    
public String getWords() {
        
return words;
    }

    
public void setWords(String words) {
        
this.words = words;
    }

    
}

posted on 2008-10-16 23:45 nonels 阅读(780) 评论(1)  编辑  收藏 所属分类: J2EE

评论

# re: JPBC ing: 留言板之一:用JAVABEAN与DAO封装数据的业务逻辑及操作 2012-12-10 09:26 黑色纪念馆

能具体解释一下每行代码的意思吗,非常感谢  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿(2)

随笔分类(16)

随笔档案(16)

搜索

最新评论

阅读排行榜

评论排行榜