chenjinlong

          5月7日收獲(DAO)

                                                                                                               DAO程序設計
                   在用DAO設計模式編寫程序時,根據以下幾個步驟:
                        1、定義接口;
                        2、定義底層JavaBean;
                        3、數據庫連接;
                        4、實現接口;
                        5、工廠;
                        6、主函數;
          根據你的項目,在不同的包里面寫相應的代碼!
                    下面是一個簡單的例子:
                   
          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、數據庫連接:

          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、實現接口:

          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、主函數:

          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) 評論(1)  編輯  收藏

          Feedback

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

          思路是清晰的。  回復  更多評論   



          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 榆树市| 司法| 抚顺县| 图木舒克市| 灵台县| 陆河县| 常德市| 射洪县| 海林市| 贵港市| 江陵县| 柏乡县| 阿勒泰市| 阿拉尔市| 桦甸市| 大埔区| 佛学| 裕民县| 和政县| 清涧县| 龙州县| 东乡县| 莫力| 株洲县| 四平市| 达拉特旗| 商丘市| 珲春市| 云林县| 文登市| 邢台县| 宁阳县| 乃东县| 集安市| 祁东县| 佛冈县| 贵州省| 凉山| 大同市| 临漳县| 满城县|