JDBC-dml

文章详细介绍了如何在Java中使用JDBC连接MySQL数据库进行增删改操作,包括使用Statement和PreparedStatement的实例,以及强调了使用预编译语句(PreparedStatement)的重要性以提高安全性。
摘要由CSDN通过智能技术生成

增删改

  • statement.executeUpdate()
		Properties properties = new Properties();
        properties.load(new FileInputStream("src\\mysql.properties"));
        String driver = properties.getProperty("driver");
        String url = properties.getProperty("url");
        String user = properties.getProperty("user");
        String password = properties.getProperty("password");
        Class.forName(driver);
        Connection connection = DriverManager.getConnection(url, user, password);

        String sql = "update news set content = 'cyt is a beautify girl' where id=2";
        // String sql = "delete from news where id = 3";
        Statement statement = connection.createStatement();
        int i = statement.executeUpdate(sql);

        System.out.println(i > 0 ? "true" : "false");

        statement.close();
        connection.close();

查找

  • statement.executeQuery()
		Properties properties = new Properties();
        properties.load(new FileInputStream("src\\mysql.properties"));
        String driver = properties.getProperty("driver");
        String url = properties.getProperty("url");
        String user = properties.getProperty("user");
        String password = properties.getProperty("password");
        Class.forName(driver);
        Connection connection = DriverManager.getConnection(url, user, password);
        Statement statement = connection.createStatement();

        // 查询
        String sql = "select id,content from news";
        ResultSet resultSet = statement.executeQuery(sql);

        while (resultSet.next()){ // 光标向下一行移动,如果没有返回false
            int id = resultSet.getInt(1);// 第一列
             // int id = resultSet.getInt("id"); // 通过列名获取数据,不受sql语句顺序影响
            String content = resultSet.getString(2); // 第二列
            System.out.println(id + "\t" + content);
        }

        resultSet.close();
        statement.close();
        connection.close();

statement

在这里插入图片描述

  • 用户名:1’ or
  • 密码: or ‘1’ = '1 // 万能密码
  • 所以不安全不能使用

PreparedStatement

在这里插入图片描述

  • dml增删改
		//dml
        String sql = "insert into news values(?,?)";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setObject(1,null); // 在第一个问号插入null
        preparedStatement.setString(2,"cyt是美女");// 在第二个问号插入string
        
        int rows = preparedStatement.executeUpdate();
        System.out.println(rows > 0 ? "true" : "false");
  • 查找
		//PreparedStatement
        String sql = "select id,content from news where id = ?";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setInt(1,1); // 在第1个问号加入值1
        // 查询
        ResultSet resultSet = preparedStatement.executeQuery();
        while (resultSet.next()){ // 光标向下一行移动,如果没有返回false
            int id = resultSet.getInt(1);// 第一列
            // int id = resultSet.getInt("id"); // 通过列名获取数据,不受sql语句顺序影响
            String content = resultSet.getString(2); // 第二列
            System.out.println(id + "\t" + content);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值