将上节课学习的JDBC增删改查封装后拿过来
package dao;
import bean.User;
import util.DBUtil;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class UserDao {
public List<User> findAll(){
Connection connection= null;
List<User> userList=new ArrayList<>();
PreparedStatement statement=null;
ResultSet resultSet =null;
try {
connection = DBUtil.getConnection();
//3.写sql语句
String sql="select * from tb_user";
//4.获得statement对象
statement=connection.prepareStatement(sql);
//5.执行sql 得到结果集
resultSet = statement.executeQuery();
//6.处理结果集
while (resultSet.next()){
User user=new User();
user.setId(resultSet.getInt(1));
user.setUsername(resultSet.getString(2));
user.setPassword(resultSet.getString(3));
userList.add(user);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
//7.关闭资源
try {
DBUtil.close(resultSet,statement,connection);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
return userList;
}
public void deleteById(int id){
Connection connection= null;
PreparedStatement statement=null;
try {
connection = DBUtil.getConnection();
System.out.println("创建连接成功");
//3.写sql语句
String sql="delete from tb_user where id=?";
//4.获得statement对象
statement=connection.prepareStatement(sql);
statement.setInt(1,id);
//5.执行sql 得到结果集
statement.executeUpdate();
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
try {
DBUtil.close(null,statement,connection);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
public void add(User user){
Connection connection= null;
PreparedStatement statement=null;
try {
connection = DBUtil.getConnection();
System.out.println("创建连接成功");
//3.写sql语句
String sql="INSERT INTO tb_user (username,PASSWORD) VALUES (?,?)";
//4.获得statement对象
statement=connection.prepareStatement(sql);
statement.setString(1,user.getUsername());
statement.setString(2,user.getPassword());
statement.executeUpdate();
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
try {
DBUtil.close(null,statement,connection);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
public void update(User user){
Connection connection= null;
PreparedStatement statement=null;
try {
connection = DBUtil.getConnection();
System.out.println("创建连接成功");
//3.写sql语句
String sql="UPDATE tb_user SET username=?,PASSWORD=? WHERE id=?";
//4.获得statement对象
statement=connection.prepareStatement(sql);
statement.setString(1,user.getUsername());
statement.setString(2,user.getPassword());
statement.setInt(3,user.getId());
//5.执行sql 得到结果集
statement.executeUpdate();
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
try {
DBUtil.close(null,statement,connection);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
这里出了点小问题,识别不到bean和dao的包了,解决方法是在servlet的项目里新建bean和dao以及java文件,再将代码复制进去
基础代码
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.zr.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<body>
<form action="/login" method="post">
username:<input name="username" type="text">
password:<input name="password" type="password">
<input type="submit" value="login">
</form>
</body>
登录
dao部分
public void findUserByNameAndPass(User user,String username,String password){
Connection connection= null;
PreparedStatement statement=null;
ResultSet resultSet =null;
try {
connection = DBUtil.getConnection();
System.out.println("创建连接成功");
//3.写sql语句
String sql="select * from tb_user where username=? and password=?";
//4.获得statement对象
statement=connection.prepareStatement(sql);
statement.setString(1,username);
statement.setString(2,password);
//5.执行sql 得到结果集
resultSet = statement.executeQuery();
//6.处理结果集
while (resultSet.next()){
user.setId(resultSet.getInt(1));
user.setUsername(resultSet.getString(2));
user.setPassword(resultSet.getString(3));
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
//7.关闭资源
try {
DBUtil.close(resultSet,statement,connection);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
新写了个查询语句,没法处理用户名和密码都相同时的状况,不过这里应该没关系
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
User user = new User();
userDao.findUserByNameAndPass(user,username,password);
if(user.getUsername()!=null){
resp.getWriter().write("success,hello,"+user.getUsername());
}else{
resp.getWriter().write("failue");
}
}
这里运行的时候也出现了问题,好像是导的jar包姿势不正确所以没法连接到数据库,靠老师解决了
效果图