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");
}
}
}