chenjinlong

          5月7日收獲(DAO)

                                                                                                               DAO程序設(shè)計(jì)
                   在用DAO設(shè)計(jì)模式編寫程序時(shí),根據(jù)以下幾個(gè)步驟:
                        1、定義接口;
                        2、定義底層JavaBean;
                        3、數(shù)據(jù)庫連接;
                        4、實(shí)現(xiàn)接口;
                        5、工廠;
                        6、主函數(shù);
          根據(jù)你的項(xiàng)目,在不同的包里面寫相應(yīng)的代碼!
                    下面是一個(gè)簡單的例子:
                   
          1、定義接口: 

          package com.qhit.s2.t13.dao;

          import java.util.List;

          import com.qhit.s2.t13.javaben.User;

          public interface IUserDAO {
           
           public List<User> findAll();

          }
          2、JavaBean:

          package com.qhit.s2.t13.javaben;

          public class User {
           
           private Integer id;
           private String username;
           private String password;
           public User() {
            super();
           }
           public User(Integer id, String username, String password) {
            super();
            this.id = id;
            this.username = username;
            this.password = password;
           }
           public Integer getId() {
            return id;
           }
           public void setId(Integer id) {
            this.id = id;
           }
           public String getUsername() {
            return username;
           }
           public void setUsername(String username) {
            this.username = username;
           }
           public String getPassword() {
            return password;
           }
           public void setPassword(String password) {
            this.password = password;
           }

          }

          3、數(shù)據(jù)庫連接:

          package com.qhit.s2.t13.dao.impl;

          import java.sql.DriverManager;
          import java.sql.SQLException;

          public class DBConnection {
           
           private java.sql.Connection conn = null;
           
          // public final static String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
          // public final static String URL = "jdbc:sqlserver://localhost:1433;DataBaseName=Company";
          // public final static String DBUSER = "sa";
          // public final static String DBPASS = "root";
           
           public java.sql.Connection getConnection() {
            try {
             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
             conn = DriverManager.getConnection(
               "jdbc:sqlserver://localhost:1433;DataBaseName=Company",
               "sa", "root");
             return conn;
            } catch(Exception e) {
             e.printStackTrace();
            }
            return null;
           }
           
           
           public void closeConnection() {
            if(conn != null) {
             try {
              conn.close();
             } catch (SQLException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
             }
            }
           }

          }

          4、實(shí)現(xiàn)接口:

          package com.qhit.s2.t13.dao.impl;

          import java.sql.PreparedStatement;
          import java.sql.ResultSet;
          import java.sql.SQLException;
          import java.util.ArrayList;
          import java.util.List;

          import com.qhit.s2.t13.dao.IUserDAO;
          import com.qhit.s2.t13.javaben.User;

          public class UserDAOImpl implements IUserDAO {

           public List<User> findAll() {
            
            List<User> userList = new ArrayList<User>();
            
            String sql = "select * from users";
            DBConnection db = new DBConnection();
            try {
             
          //   System.out.println(db.getConnection());
             
             PreparedStatement ps = db.getConnection().prepareStatement(sql);
             ResultSet rs = ps.executeQuery();
             if(rs != null) {
              while(rs.next()) {
               User user = new User();
               user.setId(rs.getInt("id"));
               user.setUsername(rs.getString("userName"));
               user.setPassword(rs.getString("password"));
               
               userList.add(user);
              }
             }
             
             
             rs.close();
             ps.close();
             db.closeConnection();
             
             return userList;
             
             
            } catch (SQLException e) {
             // TODO Auto-generated catch block
             
             e.printStackTrace();
             return null;
            }
            
            
           }

          }

          5、工廠

          package com.qhit.s2.t13.dao.impl;

          import com.qhit.s2.t13.dao.IUserDAO;

          public class DAOFactory {
           
           public static IUserDAO getUserDAO() {
            return new UserDAOImpl();
           }

          }

          6、主函數(shù):

          package main;

          import java.util.List;

          import com.qhit.s2.t13.dao.impl.DAOFactory;
          import com.qhit.s2.t13.javaben.User;

          public class TestMain {

           public static void main(String[] args) {
            // TODO Auto-generated method stub
            List<User> list = DAOFactory.getUserDAO().findAll();
            
            if(list != null) {
             System.out.println("chenggong");
            } else {
             System.out.println("shipai");
            }
            
           }

          }


           



           


          posted on 2010-05-07 17:48 chenjinlong 閱讀(331) 評(píng)論(1)  編輯  收藏

          Feedback

          # re: 5月7日收獲(DAO) 2010-05-26 14:30 Rabbit

          思路是清晰的。  回復(fù)  更多評(píng)論   



          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 舞阳县| 赤水市| 嘉鱼县| 乐都县| 聂拉木县| 兴文县| 河东区| 布尔津县| 丁青县| 大埔区| 乐安县| 万安县| 永川市| 铜梁县| 腾冲县| 潼南县| 英山县| 张家港市| 东宁县| 芜湖县| 大厂| 海原县| 隆回县| 朔州市| 库车县| 高雄县| 沈丘县| 昌黎县| 衡山县| 牙克石市| 永川市| 岚皋县| 克东县| 许昌市| 石柱| 大洼县| 绥滨县| 北票市| 沂南县| 渝中区| 昂仁县|