1,首先导包
dao
//获取数据String username = request.getParameter("username");String password = request.getParameter("password");//传递到Service层UserService service = new UserService();//这里的UserService 需要创建到service包下User user = service.login(username,password);//若登录成功返回登录的对象//这里的User为domain包下的对象,需要创建实体User
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对象即可}
}
//转到dao
dao
导包c3p0、commons-dbutils、jstl、mysql-connector、standar
导配置文件c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config><default-config><property name="user">root</property><property name="password">beyond</property><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql:///web13</property></default-config>
</c3p0-config>
导工具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);//抛异常}}