1,导入jar包。
2,创建数据库
CREATE DATABASE xing;
USE xing;
CREATE TABLE USER(
id INT KEY AUTO_INCREMENT ,
username VARCHAR(32) UNIQUE NOT NULL ,
PASSWORD VARCHAR(32) NOT NULL ,
email VARCHAR(50) ,
phone NVARCHAR(11) NOT NULL
);
3,创建一个USER实体类
4,编写工具类
private static DataSource ds;
static {
//加载配置文件
Properties pro=new Properties();
try {
pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//初始化连接池
ds=DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//获取连接池对象
public static DataSource getDataSource() {
return ds;
}
//获取Connection对象
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
5,创建Userdao,提供login方法。
//登陆方法 loginUser只有用户名和密码 返回数据为全部数据
public User login(User loginUser) {
try {
//编写sql
String sql="SELECT * FROM user WHERE username= ? and PASSWORD=?";
//调用query方法
User user = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class),loginUser.getUsername(),loginUser.getPassword());
return user;
}catch(DataAccessException e) {
e.printStackTrace();
return null;
}
}
6,编写servlet类
//设置编码
request.setCharacterEncoding("utf-8");
//获取所有请求参数
Map<String, String[]> map = request.getParameterMap();
//创建一个User对象
User loginuser=new User();
//使用BeanUtils封装
try {
BeanUtils.populate(loginuser, map);
//调用login方法
UserDao dao=new UserDao();
User user = dao.login(loginuser);
//判断
if(user==null) {
request.getRequestDispatcher("/failServlet").forward(request, response);
}else {
request.setAttribute("user", user);
request.getRequestDispatcher("/successServlet").forward(request, response);
}
} catch (IllegalAccessException | InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
BeanUtils工具类,简化封装
用于封
装JavaBean的
1,类必须被public修饰
2,必须提供空参的构造器
3,成员变量必须使用private修饰
4,提供公共的setter和getter方法
功能:封装数据
概念:
成员变量:
属性:sertter和getter方法截取后的产物
方法:
populate(Object obj ,Map map):将map集合的键值对信息,封装对应的JavaBean对象中。
注意:方法名和成员变量名称必须一样