实训日记(2)

JDBC的基本操作以及JAVA的分层架构

感想

今天是实训的第二天,总体来说体验要比第一天要好一些,因为配置环境这一环节已经基本结束了,众所周知,就是简单地配置一下JAVA环境就可以直接劝退一批学JAVA的人,所以这一步挺过来了,接下来码代码的事看上去也就没那么困难了。今天接上昨天的JDBC内容,又讲解了JDBC的具体的方法操作,谭老师也生动地讲解了ResultSet的底层操作原理。除此之外,我们还了解了JAVA的三层基本架构,他们分别是控制层、业务层以及数据持久层,了解到了他们之间的具体联系以及数据流动,受益良多。

JDBC操作:JDBC的增删改查(PreparedStatement)

首先利用SequelPro建立一个名为userinfo的数据库,在库中新建一个叫user的表,表中内容分别有varchar类型的username以及varchar类型的pwd。
然后在main函数中写如下的数据库连接代码:

        JDBCDemo jd=new JDBCDemo();
        try {
            //1.加载数据库驱动
            Class.forName("com.mysql.jdbc.Driver");
        }
        catch (ClassNotFoundException e){
            e.printStackTrace();
        }

        //2.建立连接
        Connection connection=null;
        try {
            //协议.子协议://目标IP地址:端口/
            connection= DriverManager.getConnection("jdbc:mysql://***.**.**.***:3306/userInfo","zhanghao","mima");
        }
        catch (Exception e){
            e.printStackTrace();
        }
        //添加用户
        jd.addUser("zzj","123",connection);

        //删除用户
        jd.deleteUser("zzj",connection);

        //修改用户密码
        jd.updateUser("zzj","321",connection);

        //查看用户密码
        String pwd=jd.showPwd("zzj",connection);
        System.out.print(pwd);

        try {
            connection.close();
        }
        catch (SQLException e){
            e.printStackTrace();
        }

增加用户:

public void addUser(String username,String pwd,Connection con){
        String sql="insert into user (username,pwd) values(?,?)";
        PreparedStatement pstmt=null;
        try {
            pstmt=(PreparedStatement)con.prepareStatement(sql);
            pstmt.setString(1,username);
            pstmt.setString(2,pwd);
            pstmt.execute();
            pstmt.close();

        }catch (SQLException e){
            e.printStackTrace();
        }
    }

删除用户:

public void deleteUser(String username,Connection con){
        String sql="delete from user where username=?";
        PreparedStatement pstmt=null;
        try {
           pstmt=(PreparedStatement) con.prepareStatement(sql);
           pstmt.setString(1,username);
           pstmt.executeLargeUpdate();
           pstmt.close();
        }catch (SQLException e){
            e.printStackTrace();
        }
    }

修改密码:

public void updateUser(String username,String newpwd,Connection con){
        String sql="update user set pwd=? where username=?";
        PreparedStatement pstmt=null;
        try {
            pstmt=(PreparedStatement) con.prepareStatement(sql);
            pstmt.setString(1,newpwd);
            pstmt.setString(2,username);
            pstmt.executeUpdate();
            pstmt.close();
        }catch (SQLException e){
            e.printStackTrace();
        }
    }

查询密码:

public String showPwd(String username,Connection con){
        String sql="select pwd from user where username=?";
        PreparedStatement pstmt=null;
        String result="notFound";
        try {
            pstmt=(PreparedStatement)con.prepareStatement(sql);
            pstmt.setString(1,username);
            ResultSet rs=pstmt.executeQuery();
            while (rs.next()){
                result=rs.getString("pwd");
            }
            rs.close();
            pstmt.close();
        }
        catch (SQLException e){
            e.printStackTrace();
        }
        finally {
            return result;
        }
    }

JAVA的三层基本架构

JAVA的三层基本构架分别是控制层、业务层和数据持久层。
数据持久层:用来处理数据库数据,将数据库数据与业务数据进行交互处理,即DAO层,操作数据库将数据入库或出库。
业务层:执行业务操作,调用数据持久层的内容,返回业务所需要的数据。
控制层:外部与业务的交互,通知业务层处理控制逻辑。

控制层、业务层和数据持久层之间的关系

在这里插入图片描述
(连线方向代表数据流动或操作请求对象)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值