赞
踩
使用Maven的好处就是我们可以不需要手动导包,只需要添加maven依赖即可
- <!--连接数据库-->
- <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>8.0.16</version>
- </dependency>
版本取决于你的mysql版本 我的是8.0 所以我用8.0.16的jar包
然后使用IDEA链接数据库
然后我们就算是在IEDA上布置了mysql
首先我们需要在数据库中创建一张表 方便我们查询和更新数据
然后就是编写sql 这里我写了两种不同的方式 他们都可以实现数据的查询和更新 但是第一种方法不安全 可以通过sql注入来实现破环的目的 所以我推荐大家使用第二种方法
第一种
- package com.llf;
-
- import java.sql.*;
-
- public class TestJdbc {
- public static void main(String[] args) throws ClassNotFoundException, SQLException {
- //1、配置文件 mysql8.0的版本要在连接数据库的后面加上时区 ?serverTimezone=UTC
- String url="jdbc:mysql://localhost:3306/mydb1?serverTimezone=UTC";
- String username="root";
- String password="123456";
- //2、加载驱动
- Class.forName("com.mysql.cj.jdbc.Driver");
- //3、连接数据库
- Connection connection = DriverManager.getConnection(url, username, password);
- //4、向数据库发送sql的对象statement 来完成CRUD
- Statement statement = connection.createStatement();
- //5、编写sql
- String sql="select * from user";
- //6、执行sql 返回一个resultSet结果集
- ResultSet resultSet = statement.executeQuery(sql);
- while (resultSet.next()){
- System.out.println("id:"+resultSet.getObject("id"));
- System.out.println("name:"+resultSet.getObject("name"));
- System.out.println("password:"+resultSet.getObject("password"));
- System.out.println("email:"+resultSet.getObject("email"));
- System.out.println("birthday:"+resultSet.getObject("birthday"));
- }
- //7、关闭链接 先生成的后关闭
- resultSet.close();
- statement.close();
- connection.close();
- }
- }
通过结果我们可以看出来 已经成功了
但是它是不安全 具体sql注入 大家可以自行百度
第二种
- package com.llf;
- import java.sql.*;
-
- public class TestJdbc1 {
- public static void main(String[] args) throws ClassNotFoundException, SQLException {
- //1、配置文件 mysql8.0的版本要在连接数据库的后面加上时区 ?serverTimezone=UTC
- String url="jdbc:mysql://localhost:3306/mydb1?serverTimezone=UTC";
- String username="root";
- String password="123456";
- //2、加载驱动
- Class.forName("com.mysql.cj.jdbc.Driver");
- //3、连接数据库
- Connection connection = DriverManager.getConnection(url, username, password);
- //4、编写sql
- String sql="insert into user(id, name, password, email, birthday) VALUES (?,?,?,?,?)";
- //5向数据库发送sql的对象 preparedStatement 来完成CRUD
- PreparedStatement preparedStatement = connection.prepareStatement(sql);
- //6、预编译
- /**
- * 这里的1、2、3、4、5表示的是sql语句中的问号的次序
- * 值则为 相应的值 如果不清楚插入的类型 可以直接 preparedStatement.setObject()
- * 不过效率相比较慢
- */
- preparedStatement.setInt(1,4);
- preparedStatement.setString(2,"赵六");
- preparedStatement.setString(3,"123456");
- preparedStatement.setString(4,"147258369@qq.com");
- preparedStatement.setDate(5,new Date(new java.util.Date().getTime()));
- /**
- * 这里我们也可以直接使用preparedStatement.execute()
- * 但是我们的插入操作属于Update 这样效率更高
- */
- int i = preparedStatement.executeUpdate();
- if (i>0){
- System.out.println("插入成功");
- }
-
- //7、关闭链接 先生成的后关闭
- preparedStatement.close();
- connection.close();
- }
- }
这种方法通过预编译的方式来避免sql注入 比较安全
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。