JDBC在IDEA中配置mysql过程及编程详解

目录

jdbc编程简介

1.导入jar包

2.建立数据库连接 

2.1 创建数据源,描述数据库服务器在哪

2.2 实现一个mysql客户端,通过网络和服务器进行通信

3.使用代码操作数据库

3.1 增删改操作

增加操作

更新操作

删除操作

3.2 查询操作

4.断开连接,释放资源


jdbc编程简介

JDBC,Java Database Connectivity ,java数据库连接.是一种执行SQL语句的API,是java中数据库连接规范,这个API由java.sql.*,javax.sql.*包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问

1.导入jar包

jar包下载地址:

https://mvnrepository.com/

1.输入地址->输入mysql搜素

32c9b8dc5c9e46e4832e288a4c93b468.png

2.点击第一个后选择版本

352d535adc0144de92b138595e73f842.png3.选择版本和本机mysql大版本相同的 jar包

fdc7dd9cb5a248078bb2811496dd2ade.png4. 点击下载jar包

eb711b07cc364c77bb08c975b18f226f.png 5.创建lib包,导入jar包,直接cv

1b1d1b0a41694deda11b4797a869cfff.png

 cecbecd52bc84e56b37d0000b6fb1e54.png

6.右击lib->点击Add as Library

e463ebf1880d4516ac705245df51591d.png

 21a808cba72c41a6bac7d5f3a673aaf4.png

 此时就解析出了jar包中的内容,我们就可以进行对数据库据的编程了

2.建立数据库连接 

和数据库建立连接时,需要用到数据库,首先创建一个数据库和一张表然后进行数据库连接

mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

jdbc编程时用到的资源,必须要导入jar包才能用

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.*;

2.1 创建数据源,描述数据库服务器在哪

使用 DataSource 描述 MySQL 服务器的位置. 

DataSource是SUN官方数据库连接池标准接口,由第三方组织实现此接口,该接口提供了获取连接的功能

Connection getConnection()

DataSource dataSource = new MysqlDataSource();       

    ((MysqlDataSource)dataSource).setUrl
    ("jdbc:mysql://127.0.0.1:3306/java_2?characterEncoding=utf8&useSSL=false");
    ((MysqlDataSource)dataSource).setUser("root");                            
    ((MysqlDataSource)dataSource).setPassword("123456");

 url是资源唯一地址定位符,就是网址
127.0.0.1:数据库服务器所在的IP地址,这是个特殊的IP,表示主机自己,环回网址,相当于this.
只要数据库服务器和jdbc程序在一台电脑上都可以使用这个IP
:3306是端口号,安装时默认的,使用IP确定了主机,网络数据报给那个程序是通过端口号来识别出数据库服务器的
java_2数据库名
characterEncoding=utf8字符编码方式
useSSL=false关闭加密功能

2.2 实现一个mysql客户端,通过网络和服务器进行通信

Connection connection = dataSource.getConnection();

 要注意使用Java.sql的Connection 

b5a62de7e1cd4f97871babadf530c85e.png

3.使用代码操作数据库

控制客户端给数据库发送请求,执行操作

3.1 增删改操作

增删改和查询稍有不同~ 

增加操作

构造 SQL 语句. JDBC 操作数据库, 本质仍然是通过 SQL 来描述数据库操作 

String sql = "insert into student values(001,'张三')";
PreparedStatement statement = connection.prepareStatement(sql);
int ret = statement.executeUpdate();
statement.close();
connection.close();

String sql 描述的是sql是什么样的

还需要一个特殊的类:

执行是靠PreparedStatement,它会对sql进行一些预处理,解析之类的,之前通过cmd输入的语句是发送给服务器端让服务器进行解析

 b76e9a0477b5429db73b9f367ae4ac92.png

当前数据是写死的,我们更希望是动态的 

我们通过控制台输入一些信息,来操作数据库

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学号");
        int id = scanner.nextInt();
        System.out.println("请输入姓名");
        String name = scanner.next();
        String sql = "insert into student values(" + id + ",'" + name+ "')";
        PreparedStatement statement = connection.prepareStatement(sql);
        int ret = statement.executeUpdate();

0b0b6cfc5cb84b9f8166399c1ed12dcc.png

 b9681700d7a54d64a7432855bbef85cb.png

但是这种操作还存在一个问题

07ba66806bbb4faaa0896c35895d014d.png

这样的代码可读性很低,另一方面,这个代码还容易引起SQL注入攻击

ec63f777d20a46e9b9eaef6c5b8a7afb.png如果输入这样的代码就会在插入的同时引起很多其他的问题

因此我们提出更靠谱的方案: 通过占位符替换的方法输入操作信息

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学号");
        int id = scanner.nextInt();
        System.out.println("请输入姓名");
        String name = scanner.next();
        String sql = "insert into student values(?,?)";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1,id);
        statement.setString(2,name);
        int ret = statement.executeUpdate();

c158233b3ecd45fd84c19fc9e6ed26c1.png

265f1351943a42fcac426b75d555f52f.png

 注意:这里的占位符下标是从1开始的!!

b2497967ec1744aca2ed4db46bf734b0.png

执行增加,删除,更新三个操作用executeUpdate执行,代码和增加的代码是相同的

执行查询操作使用executeQuery

PreparedStatement的好处:
预编译SQL,性能更高

性能更高体现在:PreparedStatement中的参数可以使用占位符进行占位,然后执行SQL时,只需要对SQL进行预编译一次,我们利用占位符重新设置参数,这样就不用重复执行检查SQL语法和编译SQL语句了!这样就提高了性能

防止SQL注入,会将敏感字符转义.

 

更新操作

也是通过占位符来操作

Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学号");
        int id = scanner.nextInt();
        System.out.println("请输入修改的姓名");
        String name = scanner.next();
        String sql = "update student set name = ? where id = ? ";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setString(1,name);
        statement.setInt(2,id);
        int ret = statement.executeUpdate();
statement.close();
connection.close();

数据库中的结果:

mysql> select*from student;
+------+------+
| id   | name |
+------+------+
|    1 | 张三 |
|    2 | 李四 |
|    3 | 王五 |
|    5 | 赵六 |
+------+------+
4 rows in set (0.00 sec)
更新后:

mysql> select*from student;
+------+--------+
| id   | name   |
+------+--------+
|    1 | 张三   |
|    2 | 李四   |
|    3 | wangqi |
|    5 | 赵六   |
+------+--------+
4 rows in set (0.00 sec)

删除操作

Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要删除的学号");
        int id = scanner.nextInt();

        String sql = "delete from student where id = ? ";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1,id);
        int ret = statement.executeUpdate();
statement.close();
        connection.close();

 7764b78af32144238553159393365c92.png

 结果:

mysql>  select*from student;
+------+------+
| id   | name |
+------+------+
|    1 | 张三 |
|    2 | 李四 |
|    5 | 赵六 |
+------+------+
3 rows in set (0.00 sec)

三个操作的代码是相同的 

执行时给服务器发送网络请求

int ret = statement.executeUpdate();

ret返回的是一个整数,表示执行的结果影响到了多少行

3.2 查询操作

查询操作用到的是

ResultSet ret = statement.executeQuery();

与上面三个操作不同的是:

executeUpdate 只能返回一个 int.

executeQuery 返回的是一个 ResultSet 对象. 可以把这个对象视为是一个 "临时表"

增删改返回的是影响的行数,只返回一个整数

查询的结果集合是一张表,因此比其它几个操作多一个遍历,遍历后才能看到结果

String sql = "select*from student";
        PreparedStatement statement = connection.prepareStatement(sql);
        ResultSet ret = statement.executeQuery();
        //遍历临时表, 拿到里面的数据.
        //    resultSet 简单的当成一个类似于 "迭代器" 
        //    next 如果没有到达末尾, 就是返回 true, 要继续循环.
        //    next 如果到达末尾, 就返回 false, 结束循环.
        while(ret.next()) {
            int id = ret.getInt("id");
            String name = ret.getString("name");
            System.out.println("id: "+id+" name: "+name);
        }
        ret.close();
        statement.close();
        connection.close();

获取哪一列,就用getXXX方法 ,XXX为列的类型

结果:

ce8708e1ab814f18b906fae1ad451677.png

4.断开连接,释放资源

java有GC即垃圾回收机制,会自动处理申请的内存,但是像这种连接的资源还需要我们手动释放

资源的释放顺序是和创建顺序相反的

释放的顺序:先用到的资源后释放

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

  • 65
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 45
    评论
### 回答1: 在使用Java语言Idea集成开发环境连接MySQL数据库时,需要使用Java Database Connectivity(JDBC)技术。以下是连接MySQL数据库的步骤: 1.下载并安装MySQL数据库驱动程序。可以从官方网站下载MySQL Connector/J,或者使用Maven或Gradle等构建工具来获取驱动程序。 2.在Idea项目的classpath添加MySQL数据库驱动程序。 3.编写Java代码来连接MySQL数据库。示例代码如下: ```java import java.sql.*; public class MysqlJdbcTest { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/test"; String username = "root"; String password = "123456"; Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url, username, password); System.out.println("成功连接到数据库!"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } } ``` 在以上代码,需要修改url、username和password变量的值以匹配实际的MySQL数据库连接信息。其,url变量指定了MySQL服务器的地址和端口以及要连接的数据库名称。username和password变量则指定了连接数据库所需的用户名和密码。最后,使用JavaJDBC技术连接MySQL数据库,并在控制台输出连接成功信息。 ### 回答2: idea使用jdbc连接mysql数据库非常简单,只需要按照以下步骤进行操作即可。 步骤一:在pom.xml文件添加mysql驱动依赖项 ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.40</version><!--版本号根据实际情况而定--> </dependency> ``` 步骤二:编写代码连接mysql数据库,并执行操作 ```java public class JdbcTest { public static void main(String[] args) { String driver = "com.mysql.jdbc.Driver";//mysql驱动程序 String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";//数据库连接地址 String username = "root";//用户名 String password = "root";//密码 Connection connection = null; Statement statement = null; ResultSet resultSet = null; try { Class.forName(driver);//加载mysql驱动程序 connection = DriverManager.getConnection(url, username, password);//获取连接 statement = connection.createStatement();//创建statement对象 String sql = "SELECT * FROM student";//sql语句 resultSet = statement.executeQuery(sql);//执行查询操作 while (resultSet.next()) {//遍历结果集 int id = resultSet.getInt("id"); String name = resultSet.getString("name"); String sex = resultSet.getString("sex"); System.out.println(id + "\t" + name + "\t" + sex); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if(resultSet!=null){ resultSet.close();//关闭结果集 } if(statement!=null){ statement.close();//关闭statement对象 } if(connection!=null){ connection.close();//关闭连接 } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 以上代码,通过jdbc连接mysql数据库,获取连接后,使用`Statement`对象创建sql语句,并通过`executeQuery()`方法执行查询操作。最后使用`ResultSet`对象遍历结果集,输出结果。 总的来说,idea使用jdbc连接mysql数据库步骤非常简单,只需要按照以上步骤进行编写即可,这也是编写Java Web开发的基础知识之一。 ### 回答3: Idea是一款流行的Java IDE,它提供了JDBC连接MySQL数据库的功能。JDBCJava数据库连接的标准接口,它允许Java程序与各种各样的关系型数据库进行交互。MySQL是一款免费的开源数据库,在企业级应用和Web开发广泛使用。 在Idea连接MySQL数据库需要进行以下步骤: 1. 导入MySQL JDBC驱动 在项目的pom.xml文件添加以下依赖: ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency> ``` 或者在Idea的Modules Setting的Dependencies选项卡手动导入。 2. 创建数据库连接 在Java代码使用以下代码创建数据库连接: ```java Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/DatabaseName?useSSL=false&serverTimezone=UTC", "username", "password"); ``` 其,com.mysql.cj.jdbc.Driver是MySQL 8.0版本的驱动类,localhost:3306是数据库的IP地址和端口号,DatabaseName是要连接的数据库名称,username和password是数据库的用户名和密码。useSSL=false表示不使用SSL连接,serverTimezone=UTC表示使用UTC时区。 3. 使用SQL语句操作数据库 通过创建的Connection对象,可以使用Java代码执行SQL语句操作MySQL数据库,例如查询数据: ```java Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM TableName"); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); // ... } ``` 其,TableName是要查询的表的名称,id和name是表的列名。 4. 关闭连接 在使用完数据库后,需要关闭Connection、Statement和ResultSet对象,例如: ```java rs.close(); stmt.close(); conn.close(); ``` 通过以上步骤,就可以在Idea使用JDBC连接MySQL数据库了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YoLo♪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值