栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Servlet中使用JDBC实现注册业务(一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Servlet中使用JDBC实现注册业务(一)

  1. 环境准备
    1.创建表

    create database newdb3 character set utf8;
    use newdb3;
    create table user2(
    	id int primary key auto_increment,
    	username varchar(20),
    	password varchar(20)
    )charset=utf8;
    
    1. 数据库链接文件
    		driver=com.mysql.cj.jdbc.Driver
    		url=jdbc:mysql://localhost:3306/newdb3?useUnicode=true&characterEncoding=UTF-8
    		username=root
    		password=
    

    DBUtils.java

    	package cn.tedu.servlet;
    	
    	import org.apache.commons.dbcp.BasicDataSource;
    	
    	import java.io.IOException;
    	import java.io.InputStream;
    	import java.sql.Connection;
    	import java.sql.SQLException;
    	import java.util.Properties;
    	
    	public class DBUtils {
    	
    	        //支持数据库连接池和jdbc.properties的DBUtils类
    	        //声明一个数据连接池对象
    	        private static BasicDataSource ds;
    	        //静态块中,初始化数据连接对象
    	        static {
    	            //获得这个文件的输入流
    	            InputStream is = DBUtils.class.getClassLoader()
    	                    .getResourceAsStream("jdbc.properties");
    	
    	            //实例化Properties类用于解析jdbc.properties
    	            Properties p = new Properties();
    	
    	            //加载jdbc.properties文件中获得连接数据库需要的参数变量
    	            try {
    	                p.load(is);
    	            } catch (IOException e) {
    	                e.printStackTrace();
    	            }
    	
    	            //从jdbc.properties文件中获得连接数据库需要的参数变量
    	            String driver = p.getProperty("driver");
    	            String url = p.getProperty("url");
    	            String username = p.getProperty("username");
    	            String password = p.getProperty("password");
    	
    	            //将获取的信息赋值给数据连接池作为参数
    	            //赋值前先进行实例化对象,不然后报空指针错误
    	            ds = new BasicDataSource();
    	            ds.setDriverClassName(driver);
    	            ds.setUrl(url);
    	            ds.setUsername(username);
    	            ds.setPassword(password);
    	
    	            //不设置也有默认值
    	            ds.setInitialSize(3);
    	            ds.setMaxActive(5);
    	            //最大空闲数
    	            ds.setMaxIdle(3);
    	        }
    	
    	        //获得连接结构没有变化
    	        public static Connection getConn() throws SQLException {
    	            //通过连接池获取连接对象
    	            Connection conn = ds.getConnection();
    	//        System.out.println(conn);
    	            return conn;
    	        }
    	    }
    
  2. 注册、登录、修改密码功能

  • 注册

    
账号:
密码:
public class RegServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //使用jdbc注册用户
        System.out.println(username+":"+password);
        try(Connection conn = DBUtils.getConn()){
            //定义sql语句
            String sql="insert into user2 values(null,?,?)";
            PreparedStatement st = conn.prepareStatement(sql);
            //为?赋值
            st.setString(1,username);
            st.setString(2,password);
            //执行sql
            int num = st.executeUpdate();
            if (num>0){
                System.out.println("注册成功");
                //防止中文乱码
                response.setContentType("text/html;charset=utf-8");
                PrintWriter out = response.getWriter();
                out.print("注册成功");
                out.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • 登录

账号:
密码:
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println(username+":"+password);
        try(Connection conn = DBUtils.getConn()){
            String sql = "select count(*) from user2 where username=? and password=?";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setString(1,username);
            ps.setString(2,password);

            //执行查询,返回结果集
            ResultSet rs = ps.executeQuery();

            //防止乱码
            response.setContentType("text/html;charset=utf-8");
            PrintWriter out = response.getWriter();
            while (rs.next()){
                //获得查询出的人数
                int count = rs.getInt(1);
                if (count>0){
                    System.out.println("console:登录成功");
                    out.print("登录成功");
                }else {
                    System.out.println("console:登录失败");
                    out.print("登录失败");
                }
            }
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}

删除


账号:
原密码:
新密码:
public class UpdateServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String username = request.getParameter("username");
        String newpwd = request.getParameter("newpwd");
        String oldpwd = request.getParameter("oldpwd");
        System.out.println(username+","+newpwd+","+oldpwd);

        try(Connection conn = DBUtils.getConn()){
            String sql = "update user2 set password=? where username=? and password=?";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setString(1,newpwd);
            ps.setString(2,username);
            ps.setString(3,oldpwd);
            int num = ps.executeUpdate();
            System.out.println(num);

            if (num>0){
                System.out.println("修改成功");
                //防止中文乱码
                response.setContentType("text/html;charset=utf-8");
                PrintWriter out = response.getWriter();
                out.print("修改成功");
                out.close();
            }else{
                System.out.println("修改失败");
                //防止中文乱码
                response.setContentType("text/html;charset=utf-8");
                PrintWriter out = response.getWriter();
                out.print("修改失败");
                out.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/692524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号