• jdbc封装模拟用户登录


    dao层  接口
    package com.qu.dao;
    
    public interface ILoginDAO {
        /**
         * 模拟用户登录
         * 验证用户名 密码是否正确
         * select * from from login where username=? and password=?
         */
        boolean  isLogin(String username,String password);
    }
    dao层   实现类
    package com.qu.dao.impl;
    
    import com.qu.dao.ILoginDAO;
    import com.qu.util.DButil;
    import sun.security.pkcs11.Secmod;
    
    import java.util.List;
    import java.util.Map;
    
    public class LoginDAOImpl implements ILoginDAO{
        @Override
        public boolean isLogin(String username, String password) {
            String sql="select * from login where username=? and password=?";
            List<Map<String, Object>> list = DButil.executeQuery(sql, username, password);
            return list.size()>0;
        }
    }
    工具类
    
    package com.qu.util;
    
    import com.sun.xml.internal.ws.api.ha.StickyFeature;
    
    import java.sql.*;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class DButil {
        static{
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
        /**
         * 获得连接
         */
        public static Connection getConnection(){
            try {
               return  DriverManager.getConnection("jdbc:mysql://localhost:3306/user?characterEncoding","root","root");
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return null;
        }
    
        /**
         * 增删改的通用工具类
         * @param sql
         * @param args
         * @return
         */
        public static boolean executeUpdate(String sql,Object... args){
            Connection conn=null;
            PreparedStatement ps=null;
            try {
                 conn = getConnection();
                ps = conn.prepareStatement(sql);
                for (int i=0;i<args.length;i++){
                    ps.setObject(i+1,args[i]);
                }
                int i = ps.executeUpdate();
                return i>0;
            } catch (SQLException e) {
                e.printStackTrace();
            }
            finally {
                close(conn,ps,null);
            }
            return false;
        }
    
        /**
         * 查询通用工具类
         * @param sql
         * @param args
         * @return
         */
        public static List<Map<String,Object>> executeQuery(String sql,Object... args){
            Connection conn=null;
            ResultSet rs=null;
            PreparedStatement ps=null;
            try {
                conn = DButil.getConnection();
                ps = conn.prepareStatement(sql);
                /**
                 * 有参数
                 */
                for (int i=0;i<args.length;i++){
                    ps.setObject(i+1,args[i]);
                }
                /* 执行*/
                 rs = ps.executeQuery();
                /* 需要将所有数据都存放到List 中  每一行 用一个map存放*/
                List<Map<String,Object>> list=new ArrayList<>();
                /* 获取所有列数*/
                int count = ps.getMetaData().getColumnCount();
                while(rs.next()){
                   Map<String,Object> map=new HashMap<>();  //一行一个map接收
                    for (int i=1;i<=count;i++){
                        String name = rs.getMetaData().getColumnLabel(i);
                        map.put(name,rs.getObject(1));
                    }
                    /*将每行的map存放到List中*/
                    list.add(map);
    
                }
                return list;
            } catch (SQLException e) {
                e.printStackTrace();
            }finally {
            close(conn,ps,rs);
            }
            return null;
        }
        /**
         * 关闭的通用方法
         */
        private static void close(Connection conn,PreparedStatement ps,ResultSet rs){
            try {
                if (rs!=null){
                    rs.close();
                }
                if (ps!=null){
                    ps.close();
                }
                if(conn!=null) {
                conn.close();
                }
            }catch(Exception e){
                  e.printStackTrace();
                }
            }
        }
    servlet  测试类
    package com.qu.servlet;
    
    import com.qu.dao.ILoginDAO;
    import com.qu.dao.impl.LoginDAOImpl;
    import org.junit.Test;
    
    public class TestLogin {
    @Test
        public void testLogin(){
        //模拟账号登录
        String username="李登";
        String password="123";
        //验证用户名 密码是否正确
        ILoginDAO dao=new LoginDAOImpl();
        boolean login = dao.isLogin(username, password);
        if (login){
            System.out.println("恭喜登录成功");
        }else{
            System.out.println("对不起,账号或密码错误");
        }
    
    }
    }
  • 相关阅读:
    Oracle存储过程
    eclipse使用小技巧
    A.N.T的使用
    Java中JDBC连接数据库(MySQL)
    SQL常用语句例子
    c/s&&b/s区别浅析
    ngRoute+ngAnimate与JQM中的页面跳转的区别
    jQueryMobile与AngularJS的区别
    jQueryMobile--栅格布局
    jQueryMobile--基础
  • 原文地址:https://www.cnblogs.com/qurui1998/p/10697842.html
Copyright © 2020-2023  润新知