当前位置:   article > 正文

在IDEA上布置jdbc 并实现sql语句的相关操作_idea中运行jdbc.sql

idea中运行jdbc.sql

一、布置jdbc

使用Maven的好处就是我们可以不需要手动导包,只需要添加maven依赖即可

  1. <!--连接数据库-->
  2. <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
  3. <dependency>
  4. <groupId>mysql</groupId>
  5. <artifactId>mysql-connector-java</artifactId>
  6. <version>8.0.16</version>
  7. </dependency>

版本取决于你的mysql版本 我的是8.0  所以我用8.0.16的jar包

然后使用IDEA链接数据库

 

 

然后我们就算是在IEDA上布置了mysql 

二、编写并执行sql语句

首先我们需要在数据库中创建一张表 方便我们查询和更新数据

然后就是编写sql 这里我写了两种不同的方式 他们都可以实现数据的查询和更新 但是第一种方法不安全 可以通过sql注入来实现破环的目的 所以我推荐大家使用第二种方法

第一种

  1. package com.llf;
  2. import java.sql.*;
  3. public class TestJdbc {
  4. public static void main(String[] args) throws ClassNotFoundException, SQLException {
  5. //1、配置文件 mysql8.0的版本要在连接数据库的后面加上时区 ?serverTimezone=UTC
  6. String url="jdbc:mysql://localhost:3306/mydb1?serverTimezone=UTC";
  7. String username="root";
  8. String password="123456";
  9. //2、加载驱动
  10. Class.forName("com.mysql.cj.jdbc.Driver");
  11. //3、连接数据库
  12. Connection connection = DriverManager.getConnection(url, username, password);
  13. //4、向数据库发送sql的对象statement 来完成CRUD
  14. Statement statement = connection.createStatement();
  15. //5、编写sql
  16. String sql="select * from user";
  17. //6、执行sql 返回一个resultSet结果集
  18. ResultSet resultSet = statement.executeQuery(sql);
  19. while (resultSet.next()){
  20. System.out.println("id:"+resultSet.getObject("id"));
  21. System.out.println("name:"+resultSet.getObject("name"));
  22. System.out.println("password:"+resultSet.getObject("password"));
  23. System.out.println("email:"+resultSet.getObject("email"));
  24. System.out.println("birthday:"+resultSet.getObject("birthday"));
  25. }
  26. //7、关闭链接 先生成的后关闭
  27. resultSet.close();
  28. statement.close();
  29. connection.close();
  30. }
  31. }

 通过结果我们可以看出来 已经成功了

但是它是不安全 具体sql注入 大家可以自行百度 

第二种

  1. package com.llf;
  2. import java.sql.*;
  3. public class TestJdbc1 {
  4. public static void main(String[] args) throws ClassNotFoundException, SQLException {
  5. //1、配置文件 mysql8.0的版本要在连接数据库的后面加上时区 ?serverTimezone=UTC
  6. String url="jdbc:mysql://localhost:3306/mydb1?serverTimezone=UTC";
  7. String username="root";
  8. String password="123456";
  9. //2、加载驱动
  10. Class.forName("com.mysql.cj.jdbc.Driver");
  11. //3、连接数据库
  12. Connection connection = DriverManager.getConnection(url, username, password);
  13. //4、编写sql
  14. String sql="insert into user(id, name, password, email, birthday) VALUES (?,?,?,?,?)";
  15. //5向数据库发送sql的对象 preparedStatement 来完成CRUD
  16. PreparedStatement preparedStatement = connection.prepareStatement(sql);
  17. //6、预编译
  18. /**
  19. * 这里的1、2、3、4、5表示的是sql语句中的问号的次序
  20. * 值则为 相应的值 如果不清楚插入的类型 可以直接 preparedStatement.setObject()
  21. * 不过效率相比较慢
  22. */
  23. preparedStatement.setInt(1,4);
  24. preparedStatement.setString(2,"赵六");
  25. preparedStatement.setString(3,"123456");
  26. preparedStatement.setString(4,"147258369@qq.com");
  27. preparedStatement.setDate(5,new Date(new java.util.Date().getTime()));
  28. /**
  29. * 这里我们也可以直接使用preparedStatement.execute()
  30. * 但是我们的插入操作属于Update 这样效率更高
  31. */
  32. int i = preparedStatement.executeUpdate();
  33. if (i>0){
  34. System.out.println("插入成功");
  35. }
  36. //7、关闭链接 先生成的后关闭
  37. preparedStatement.close();
  38. connection.close();
  39. }
  40. }

这种方法通过预编译的方式来避免sql注入 比较安全 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/866053
推荐阅读
相关标签
  

闽ICP备14008679号