jdbc,servlet 实现向数据库插入数据 在数据库查询数据

思路

将数据库增查改删封装到dao类,先设计一个dao接口,后面实现相应的操作

dao接口

只用到增加和查询

package jdbc;

import java.sql.SQLException;

public interface dao {
    public  boolean   add(String name,String password) ;
    public  boolean   get(String name,String password);
}

向数据库插入数据

使用PreparedStatement注入数据,防止sql注入攻击

public boolean add(String name, String password)  {
        if  ((name!=null) && (password!=null)) {
            String mysqlstring = "insert into user values(?,?)";
            try (Connection c = getConnection();
                 PreparedStatement ps = c.prepareStatement(mysqlstring);) {
                ps.setString(1, name);
                ps.setString(2, password);
                ps.execute();
                return  true;
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        else return false;
        return false;
    }

增加的servlet

package jdbc;

import jdbc.loginin;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "jdbc.Servlet",urlPatterns = "/jdbc.Servlet")
public class Servlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        loginin loginin1=new loginin();
        if (loginin1.add(name,password)) response.getWriter().println("register success");
        else response.getWriter().println("register failed");
    }
}

查询

直接查询看能不能返回结果集,返回结果集证明存在数据

 public boolean get(String name, String password) {
        try(Connection c = getConnection(); Statement s= c.createStatement();)
        {
            String sql="select * from user where name = '" + name +"' and password = '" + password+"'";
            ResultSet rs=s.executeQuery(sql);
            if(rs.next())
                return  true;
            else return false;
        } catch (SQLException e){
            e.printStackTrace();
        }
        return false;
    }
}

查询的servlet

package jdbc;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "jdbc.find",urlPatterns = "/jdbc.find")
public class find extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        loginin loggin1 = new loginin();
        if (loggin1.get(name,password))
            response.getWriter().println("success");
        else
            response.getWriter().println("failed");

    }
}

后面要改进的

  1. 密码检验,防止重复,可以设置用户字段为主键

你可能感兴趣的:(java学习,mysql)