1.准备数据表
CREATE TABLE `user`(
username VARCHAR(50),
`password` VARCHAR(50)
);
INSERT INTO `user` VALUES('tom','123'),('jerry','456');
# 通过⽤户名,密码查询 user表
SELECT * FROM `user` WHERE username='tom' AND `password`='123'
/*
dbutils 使⽤哪个结果集
BeanHandler 查询结果⼀个JavaBean
BeanListHandler 查询结果集是多个JavaBean,存储List集合
ScalarHandler 单项值查询
ColumnListHandler 查询⼀个列数据存储集合List<Object>
*/
2.IDEA的相关配置,工具类,如果MYSQL8.0以上需要将配置文件里的改为
driverClassName=com.mysql.cj.jdbc.Driver
3.相关的代码
UserServlet
package com.ljy.servlet;
import com.ljy.pojo.User;
import com.ljy.utli.DruidUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.SQLException;
public class UserServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username+"="+password);
//sql
String sql="select * from user where username=? and password=?";
//封装数据
Object [] params={username,password};
//获取连接对象,利用到工具类
QueryRunner qr = new QueryRunner(DruidUtils.getDataSource());
try {
//查询
User user = qr.query(sql, new BeanHandler<User>(User.class), params);
//判断
if (user==null){
System.out.println("login fail...");
response.getWriter().print("login fail...");
}else {
System.out.println("login success...");
response.getWriter().print("login success...");
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
实体类和数据表中的字段一一对应,pojo
package com.ljy.pojo;
public class User {
private String username;
private String password;
@Override
public String toString() {
return "pojo{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
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;
}
}
Druid工具类
package com.ljy.utli;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
/**
* 连接池工具类
*/
public class DruidUtils {
/*
1. 加载 druid.properties 配置文件
2. 创建 Druid 连接池对象
3. 提供 获得 连接池对象的方法
4. 提供 从连接池中 获取连接对象Connection的 方法
*/
public static DataSource dataSource = null;
static{
try {
//1. 加载 druid.properties 配置文件
InputStream inputStream = DruidUtils.class.getClassLoader().getResourceAsStream("druid.properties");
// 把流中的数据 保存到 Properties集合中
Properties prop = new Properties();
prop.load(inputStream);
//创建连接池对象
dataSource = DruidDataSourceFactory.createDataSource(prop);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取数据源对象 DataSource
*/
public static DataSource getDataSource(){
return dataSource;
}
/**
* 获取数据源中的连接对象
*/
public static Connection getConection() throws SQLException {
return dataSource.getConnection();
}
}
web-inf下面的是为了确保保密性,具有良好的保密作用,下面主要放web.xml,里面就是放一写servlet-mapping,即相关的映射,首先默认状态下会访问WebApp下的index.jsp,但是这里新建了一个文件,即login.jsp,即登录页面,然后login下面才会去访问到UserServlet.
然后直接启动Tomcat,在浏览器输入栏输入login.jsp,然后出现表格,先输入错误的,idea控制台会输入login fail。。。,相应的浏览器页面也会显示login fail。。。反正如果输入与数据中正确的·username和password,则会出现login success。。。