首页 > 其他分享 >JDBC事务管理和JDBC管理事物_概述

JDBC事务管理和JDBC管理事物_概述

时间:2022-10-21 17:00:28浏览次数:49  
标签:username 事务管理 JDBC String 概述 sql password pst

JDBC事务管理:

1. Preparedstatement:执行sql的对象

1. sQL注入问题∶在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题

1.输入用户随便,输入密码:a' or 'a' = 'a

2. sql : select * from user where username = 'fhdsjkf' and password = 'a' or 'a' = 'a'

3.预编译的sQL:参数使用?作为占位符

4.步骤∶

1.导人驱动jar包mysql-connector-java-5.1.37-bin.jar

2.注册驱动

3.获取数据库连接对象connection

4.定义sql

注意:sql的参数使用?作为占位符。如; select *from user where username a ? and password = ?;

5.获取执行sql语句的对象 PreparedStatement Connection.prepareStatement(string sql)

6.给?赋值:

方法:setxxx(参数1,参数2)

参数1:?的位置编号从1开始

参数2∶?的值

7.执行sql,接受返回结果,不需要传递sql语句

8.处理结果

9.释放资源

代码实现:

public static void main(String[] args) {
        // 1.键盘录入,接受用户名和密码
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = sc.nextLine();
        System.out.println("请输入密码:");
        String password = sc.nextLine();
        // 2.调用方法
        boolean login = JDBCDemo9.login1(username, password);
        // 3.判断结果,输出不同语句
        if (login) {
            // 登录成功
            System.out.println("登录成功");
        } else {
            System.out.println("用户名或密码错误!");
        }
    }
    
    /**
     * 登录方法,使用PreparedStatement实现
     */
    public static boolean login1(String username, String password) {
        if (username == null || password == null) {
            return false;
        }

        //连接数据库判断是否登录成功
        Connection conn = null;
        PreparedStatement pst = null;
        ResultSet rs = null;
        // 1.获取连接
        try {
            conn = JDBCUtils.getConnection();
            // 2.定义sql
            String sql = "select * from user where username = ? and password = ?";
            // 3.获取执行sql的对象
            pst = conn.prepareStatement(sql);
            // 给?赋值
            pst.setString(1,username);
            pst.setString(2,password);
            // 4.执行查询
            rs = pst.executeQuery();
            // 5.判断
            return rs.next();//如果有下一行,则返回true
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.close(pst,conn,rs);
        }
        return false;
    }

输出结果:

 

 

 

 

 

 

 

JDBC管理事物_概述:

JDBC控制事务∶

1.事务:一个包含多个步骤的业务操作。如果这个业务操作被事务管理,则这多个步骤要么同时成功,要么同时失败。

2.操作:

1.开后事务

2.提交事务

3.回滚事务

3.使用connection对象来管理事务

开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务

提交事务: commit()

回滚事务:rollback()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*替数2∶?的值

 

标签:username,事务管理,JDBC,String,概述,sql,password,pst
From: https://www.cnblogs.com/hungui/p/16814034.html

相关文章

  • HTML-案例-注册页面,CSS-概述
    HTML-案例-注册页面<!--定义表单from,post:获取#号--><formaction="#"method="post"><!--边框1集中,宽度500--><tableborder="1"align="center"width......
  • java基础-->概述部分
    java(面向对象)的三大特性封装​ 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。继承​ 继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的......
  • 588_HTML标签_表单标签_概述and589 _HTML标签_表单标签_表单项input1
    HTML标签_表单标签_概述表单标签表单: form:用于定于表单的。可以定一个范围,范围代表采集用户数据的范围       属性:           action:指定提......
  • JDBC练习_登录案例和JDBC事务管理
    JDBC练习_登录案例练习:需求:1.通过键盘录入用户名和密码  2.判断用户是否登录成功"select*fromuserwhereusername="" andpassword="......
  • JDBC工具类和JDBC登录案例
    JDBC工具类:抽取JDBC工具类:JDBCUtils目的:简化书写分析∶1.注册驱动也抽取2.抽取一个方法获取连接对象3.抽取一个方法释放资源代码实现:/***JDBC工具类*/publicc......
  • JDBC练习select语句和JDBC工具类
    JDBC练习-select语句定义一个方法,查询emp表中的数据将其封装为对象,然后装载集合,然后打印1.定义emp类2.定义方法publicList<Emp>findAll(){}3.实现方法select*from......
  • Jmeter----请求的reponse结果中的某个参数作为JDBC Request的查询条件
    一、前言数据库连接成功二、需求将登录账号12608523691,接口的reponse的参数uuid作为JDBCRequest的查询条件   二、添加后置处理器并进行相关的设置。......
  • 【1】UDS概述及常用服务
    【转自:https://blog.csdn.net/xiandang8023/article/details/125379878】UDS(UnifiedDiagnosticServices)协议,即统一的诊断服务,是面向整车所有ECU的一种诊断通信方式,是基......
  • SpringJDBC 练习2
    1,查询id为1的记录,将其封装为Map集合2,查询所有记录 将其封装为List 3,查询所有记录 将其封装为Emp对象的List集合 4,查询总记录数......
  • Spring JDBC 练习
    1,修改1号数据的salary为100002,添加一条记录3,删除刚才添加的数据 ......