JDBC练习题——登录系统

一、问题描述:流程如下,先登录,登录成功后显示操作界面,根据界面的提示,执行注册,修改,删除,查询的功能:

1、实现用户的注册功能(登录名不能重复)

表 (sys_user)

id username (登录名) password(密码) name(名字)

2、实现用户的登陆功能

3、实现用户的修改,但要考虑用户是否真实存在

4、实现用户的删除功能。

5、实现用户的查询功能,查询全部

6,根据userName名去查询

封装类:

package com.etc.domian;
public class SysUser {

    private String usernaeme;
    private String pasword;
    private String name;
    private String id;

    public String getUsernaeme() {
        return usernaeme;
    }

    public void setUsernaeme(String usernaeme) {
        this.usernaeme = usernaeme;
    }

    public String getPasword() {
        return pasword;
    }

    public void setPasword(String pasword) {
        this.pasword = pasword;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public void setId(String id){
        this.id = id;
    }
    public String getId(){
        return id;
    }
}
复制代码

接口:

public interface SysUserService {

    //用户注册功能
    Integer addUser(SysUser  sysUser) throws SQLException;


    //登录功能
    Integer Login(SysUser sysUser) throws SQLException;


    //修改功能
    Integer modify(SysUser sysUser) throws SQLException;

    //删除功能
    Integer Delete(String  id) throws SQLException;

    //查询功能
    List<SysUser> query(SysUser sysUser) throws SQLException;

    //根据userName名去查询
    SysUser getUser(String name) throws SQLException;

}
复制代码

实现接口的类:

public class SysUserServiceImpl implements SysUserService {

    //获取连接
    private Connection conn = DbUtil.getConnection();


    /**
     * 用户添加
     *
     * @param adada
     * @return
     */
    @Override
    public Integer addUser(SysUser adada) throws SQLException {
        String sql = "INSERT INTO sys_user(`username`,`password`,`name`)VALUES (?,?,?)";
        PreparedStatement st = conn.prepareStatement(sql);
        st.setString(1, adada.getUsernaeme());
        st.setString(2, adada.getPasword());
        st.setString(3, adada.getName());
        int pp = st.executeUpdate();
        DbUtil.closeConnection(conn);
        DbUtil.closePreparedStatement(st);
        return pp;
    }

    @Override
    public Integer Login(SysUser sysUser) throws SQLException {

        /**
         * 1.首先要得到用户名和密码
         * 2.编写查询用户名的sql语句
         * 3.获取连接对象中的预编译存储语句对象
         * 4.设置预编译语句中的值
         * 5.发送sql语句到mysql中  查询使用query
         * 6.得到mysql返回  回来的数据并封装到一个user对象中供后续使用
         * 7.比较入参的用户名和密码  与  封装到返回对象的实例中的数据  是否一致
         * 8.判断 不一致说明密码错误,一致说明密码正确  用户实例如果为空  说明用户名不存在
         * 9.返回结果  数字
         */
        Integer result = null;

        String username = sysUser.getUsernaeme() != null ? sysUser.getUsernaeme() : "";

        String password = sysUser.getPasword() != null ? sysUser.getPasword() : "";
        if (username.equals("") || password.equals("")) {
            result = 4;
            return result;
        }

        String sql = "SELECT * FROM sys_user WHERE username= ?";
        PreparedStatement pps = conn.prepareStatement(sql);
        pps.setString(1, sysUser.getUsernaeme());
        ResultSet rs = pps.executeQuery();
        SysUser sysUser1 = new SysUser();
        while (rs.next()) {
            String username1 = rs.getString("username");
            String password1 = rs.getString("password");
            sysUser1.setUsernaeme(username1);
            sysUser1.setPasword(password1);
        }

        String usernameStart = "";
        if (sysUser1.getUsernaeme() == null) {
            usernameStart = "";
        } else {
            usernameStart = sysUser1.getUsernaeme();
        }

        String username3 = sysUser1.getUsernaeme() == null ? sysUser1.getUsernaeme() : "";

        if (!usernameStart.equals("")) {
            if (sysUser.getUsernaeme().equals(sysUser1.getUsernaeme())) {
                result = 1;
            } else {
                result = 2;
            }
        } else {
            result = 0;
        }
        DbUtil.closeConnection(conn);
        DbUtil.closePreparedStatement(pps);
        return result;
    }

    @Override
    public Integer modify(SysUser sysUser) throws SQLException {
        /**
         * 1.根据用户名查询出 用户id  用户名  用户密码  用户名字  封装到一个对象里进行后续的操作
         * 2.如果无返回说明没有该用户信息
         * 3.如果有使用update语句进行 sql的操作
         */
        Integer result = null;
        String sql = "SELECT * FROM sys_user WHERE username= ?";
        PreparedStatement pps = conn.prepareStatement(sql);
        pps.setString(1, sysUser.getUsernaeme());
        ResultSet rs = pps.executeQuery();
        SysUser sysUser1 = new SysUser();
        while (rs.next()) {
            String username1 = rs.getString("username");
            String password1 = rs.getString("password");
            int id1 = rs.getInt("id");
            sysUser1.setUsernaeme(username1);
            sysUser1.setPasword(password1);
            sysUser1.setId(String.valueOf(id1));
        }
        String id = sysUser1.getId() == null ? sysUser1.getId() : "";
        if (id.equals("")) {
            return 0;
        }
        String sql1 = "update sys_user set username = ?,password = ? where id = ?";
        PreparedStatement pps2 = conn.prepareStatement(sql1);
        pps2.setString(1, sysUser.getUsernaeme());
        pps2.setString(2, sysUser.getPasword());
        pps2.setString(3, id);
        result = pps2.executeUpdate();
        DbUtil.closePreparedStatement(pps);
        DbUtil.closeConnection(conn);
        return result;

    }

    @Override
    public Integer Delete(String id) throws SQLException {
        String sql = "DELETE FROM sys_user WHERE id = ?";
        PreparedStatement pps = conn.prepareStatement(sql);
        pps.setString(1, id);
        int result = pps.executeUpdate();
        DbUtil.closeConnection(conn);
        DbUtil.closePreparedStatement(pps);
        return result;
    }

    @Override
    public List<SysUser> query(SysUser sysUser) throws SQLException {
        String sql = "SELECT * FROM sys_user";
        Statement sm = conn.createStatement();
        ResultSet rs = sm.executeQuery(sql);
        List<SysUser> userList = new ArrayList<>();
        while (rs.next()) {
            SysUser sysUser1 = new SysUser();
            String username1 = rs.getString("username");
            String password1 = rs.getString("password");
            int id1 = rs.getInt("id");
            sysUser1.setUsernaeme(username1);
            sysUser1.setPasword(password1);
            sysUser1.setId(String.valueOf(id1));
            userList.add(sysUser1);
        }
        DbUtil.closeConnection(conn);
        DbUtil.closeStatement(sm);
        return userList;
    }

    @Override
    public SysUser getUser(String name) throws SQLException {
        String sql = "SELECT * FROM sys_user WHERE username= ?";
        PreparedStatement pps = conn.prepareStatement(sql);
        pps.setString(1, name);
        ResultSet rs = pps.executeQuery();
        SysUser sysUser1 = new SysUser();
        while (rs.next()) {
            String username1 = rs.getString("username");
            String password1 = rs.getString("password");
            sysUser1.setUsernaeme(username1);
            sysUser1.setPasword(password1);
        }
        DbUtil.closeConnection(conn);
        DbUtil.closeStatement(pps);
        return sysUser1;
    }
}
复制代码

测试类:

public class Test {

    SysUserService sysUserService;

    @Before
    public void bdf(){
        sysUserService = new SysUserServiceImpl();
    }



    @org.junit.Test
    public void add() throws SQLException {
        SysUser sysUser = new SysUser();
        sysUser.setName("欧阳锋");
        sysUser.setPasword("123456");
        sysUser.setUsernaeme("ouyyang");
        Integer sas = sysUserService.addUser(sysUser);
        if (sas == 1){
            System.out.println("添加成功");
        }else{
            System.out.println("添加失败");
        }
    }
    @org.junit.Test
    public void login() throws SQLException {
        SysUser sysUser = new SysUser();
        sysUser.setUsernaeme("aaasad");
        sysUser.setPasword("1234");
        Integer ss = sysUserService.Login(sysUser);
        if (ss == 1) {
            System.out.println("密码正确");
        } else if (ss == 0) {
            System.out.println("用户名不存在");
        } else if (ss == 2) {
            System.out.println("密码不正确");
        }  else if (ss == 4) {
            System.out.println("用户名和密码为空了");
        }else {
            System.out.println("系统异常");
        }
    }
    @org.junit.Test
    public  void modify() throws SQLException {
        SysUser sysUser = new SysUser();
        sysUser.setId("1");
        sysUser.setName("asda");
        sysUser.setUsernaeme("dada");
        sysUser.setPasword("888");
        Integer sus = sysUserService.modify(sysUser);
        if (sus==0){
            System.out.println("该用户不存在");
        }
    }
    @org.junit.Test
    public void Delete() throws SQLException {
        Integer ss =sysUserService.Delete("1");
    }
    @org.junit.Test
    public void query() throws SQLException {
        SysUser sysUser = new SysUser();
        sysUser.setId("13");
        sysUser.setName("asdadw");
        sysUser.setUsernaeme("dadwda");
        sysUser.setPasword("8886");
        List sus = sysUserService.query(sysUser);
    }
    @org.junit.Test
    public void getUser() throws SQLException {
        SysUser sus = sysUserService.getUser("dadad");
    }

}
复制代码
  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值