简单三层架构(登录)
生活随笔
收集整理的這篇文章主要介紹了
简单三层架构(登录)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1,首先導包
dao
domain
package beyond.web.domain;public class User {//User里面的這些定義都是根據數據庫創建的private int id;private String username;private String password;private String email;public int getId() {return id;}public void setId(int 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;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;} }service
package beyond.web.service;import beyond.web.dao.UserDao; import beyond.web.domain.User;public class UserService {public User login(String username, String password) {UserDao dao = new UserDao();return dao.login(username,password);//最后返回一個User對象即可} } //轉到daodao
導包c3p0、commons-dbutils、jstl、mysql-connector、standar
導配置文件c3p0-config.xml
導工具DataSourceUtils
package beyondwsq.utils;import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;import javax.sql.DataSource;import com.mchange.v2.c3p0.ComboPooledDataSource;public class DataSourceUtils {private static DataSource dataSource = new ComboPooledDataSource();private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();// 直接可以獲取一個連接池public static DataSource getDataSource() {return dataSource;}public static Connection getConnection() throws SQLException{return dataSource.getConnection();}// 獲取連接對象public static Connection getCurrentConnection() throws SQLException {Connection con = tl.get();if (con == null) {con = dataSource.getConnection();tl.set(con);}return con;}// 開啟事務public static void startTransaction() throws SQLException {Connection con = getCurrentConnection();if (con != null) {con.setAutoCommit(false);}}// 事務回滾public static void rollback() throws SQLException {Connection con = getCurrentConnection();if (con != null) {con.rollback();}}// 提交并且 關閉資源及從ThreadLocall中釋放public static void commitAndRelease() throws SQLException {Connection con = getCurrentConnection();if (con != null) {con.commit(); // 事務提交con.close();// 關閉資源tl.remove();// 從線程綁定中移除}}// 關閉資源方法public static void closeConnection() throws SQLException {Connection con = getCurrentConnection();if (con != null) {con.close();}}public static void closeStatement(Statement st) throws SQLException {if (st != null) {st.close();}}public static void closeResultSet(ResultSet rs) throws SQLException {if (rs != null) {rs.close();}}} package beyond.web.dao;import java.sql.SQLException;import javax.sql.DataSource;import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.taglibs.standard.tag.common.sql.DataSourceUtil;import beyond.web.domain.User; import beyond.web.utils.DataSourceUtils;public class UserDao {public User login(String username, String password) throws SQLException {//需要導工具導包QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());//查詢,沒有事務控制String sql = "select * from user where username=? and password=?";//sql語句return runner.query(sql, new BeanHandler<User>(User.class) ,username,password);//拋異常}}總結
以上是生活随笔為你收集整理的简单三层架构(登录)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杭电2013-蟠桃记(C++)
- 下一篇: English最俗语法大全