【JDBC-1】快速上手JDBC并使用IDEA连接MySql数据库

目录

一、JDBC五问

二、第一个JDBC程序(IDEA)

1.准备好一个数据库

2.在IDEA创建一个空的Java项目并导入数据库驱动

3.编写测试代码

4.代码功能分析

1.加载驱动

2.获取用户信息

3.连接数据库对象

4.获得SQL对象

5.释放资源


一、JDBC五问

1.本质:一堆接口(java.sql.*),在Java中写sql语句。

2.作用:通过接口来实现Java与各大数据库之间的连接,降低了代码间的耦合度;

3.JDBC整个程序的结构中有三拨人?

  1. sun公司,负责制定JDBC接口。即:java.sql.*;
  2. JDBC接口下的实现类,由数据库厂商编写。例如MySQL数据库的实现类:这些jar包的专业术语:mysql的驱动
  3. Java程序员,面向JDBC接口写代码。

4.JDBC开发前的准备工作?

mysql的驱动jar包,需要配置到classpath当中。

classpath = . ; 需要用的jar包的路径(要使用里面的类就需要让jvm的类加载器知道在哪找)

. :表示在当前路径下找。原因:自己还有写的Java程序。

解释:类加载器从当前路径下加载class,如果当前路径下没有找到,就去指定的路径下加载。

5.JDBC编程6步:

  1. 注册驱动(通知Java程序即将连接的数据库种类)。
  2. 获取数据库连接(Java进程和数据库进程开启连接)。
  3. 获取数据库操作对象(此对象用来执行sql语句)。
  4. 执行sql语句(执行CRUD操作)。
  5. 处理查询结果集(如果第四步是select语句,才会执行此步,否则没有)。
  6. 释放资源(JDBC进行的是进程间的通信,占用很多资源)。

二、第一个JDBC程序(IDEA)

1.准备好一个数据库

这个我使用的工具是Navicat(其它工具也可以),我新建了三个表,给出建表以及数据代码(不要问数据库怎么建表啊喂,这个很基础的啦!):

-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
  `Cno` char(4) NOT NULL,
  `Cname` char(40) NOT NULL,
  `Cpno` char(4) DEFAULT NULL,
  `Credit` smallint(6) DEFAULT NULL,
  PRIMARY KEY (`Cno`),
  KEY `Cpno` (`Cpno`),
  CONSTRAINT `course_ibfk_1` FOREIGN KEY (`Cpno`) REFERENCES `course` (`Cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of course
-- ----------------------------
INSERT INTO `course` VALUES ('1', '数据库', '5', '4');
INSERT INTO `course` VALUES ('2', '数学', null, '2');
INSERT INTO `course` VALUES ('3', '信息系统', '1', '4');
INSERT INTO `course` VALUES ('4', '操作系统', '6', '3');
INSERT INTO `course` VALUES ('5', '数据结构', '7', '4');
INSERT INTO `course` VALUES ('6', '数据处理', null, '2');
INSERT INTO `course` VALUES ('7', 'python语言', '6', '4');

-- ----------------------------
-- Table structure for sc
-- ----------------------------
DROP TABLE IF EXISTS `sc`;
CREATE TABLE `sc` (
  `Sno` char(9) NOT NULL,
  `Cno` char(4) NOT NULL,
  `Grade` smallint(6) DEFAULT NULL,
  PRIMARY KEY (`Sno`,`Cno`),
  KEY `Cno` (`Cno`),
  CONSTRAINT `sc_ibfk_1` FOREIGN KEY (`Cno`) REFERENCES `course` (`Cno`),
  CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`Sno`) REFERENCES `student` (`Sno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of sc
-- ----------------------------
INSERT INTO `sc` VALUES ('2015121', '1', '90');
INSERT INTO `sc` VALUES ('2015121', '2', '75');
INSERT INTO `sc` VALUES ('2015121', '3', '72');
INSERT INTO `sc` VALUES ('2015122', '2', '69');
INSERT INTO `sc` VALUES ('2015122', '3', '92');
INSERT INTO `sc` VALUES ('2015123', '1', '56');
INSERT INTO `sc` VALUES ('2015123', '2', '87');
INSERT INTO `sc` VALUES ('2015125', '3', '68');
INSERT INTO `sc` VALUES ('2015126', '5', '98');

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `Sno` char(9) NOT NULL,
  `Sname` char(20) DEFAULT NULL,
  `Ssex` char(2) DEFAULT NULL,
  `sage` int(11) DEFAULT '18',
  `Sdept` char(20) DEFAULT NULL,
  PRIMARY KEY (`Sno`),
  UNIQUE KEY `Sname` (`Sname`),
  KEY `indexsno` (`Sno`,`Sname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('2015121', '李勇', '男', '20', 'CS');
INSERT INTO `student` VALUES ('2015122', '刘晨', '女', '19', 'CS');
INSERT INTO `student` VALUES ('2015123', '王敏', '女', '18', 'MA');
INSERT INTO `student` VALUES ('2015124', '张丽', '女', '19', 'IS');
INSERT INTO `student` VALUES ('2015125', '马朝阳', '男', '22', 'IS');
INSERT INTO `student` VALUES ('2015126', '张天', '男', '20', 'MA');
INSERT INTO `student` VALUES ('2015127', '张欢欣', '女', '20', 'IS');
INSERT INTO `student` VALUES ('2015128', '张天明', '男', '20', 'MA');
INSERT INTO `student` VALUES ('2015129', '王欢', '女', '20', 'IS');

2.在IDEA创建一个空的Java项目并导入数据库驱动

Maven仓库下载mysql的驱动jar包,放到新建的lib文件夹下。

Add as Library:添加到项目的库里面。

 

 在Maven仓库直接搜索就可以搜索到,后面的版本对应的是直接电脑上安装的MySQL版本(我电脑MySQL是5.02版本,所以下载的就是5.02包),下载完成后将.jar文件放到项目的lib文件夹里(新项目没有lib文件夹自己新建一个lib,然后右键add as Library更改为资源目录)


3.编写测试代码

import java.sql.*;

/**
 * @author pengpeng
 * @Date 2022/4/8-19:09
 */
public class JdbcUtil {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        // 1.加载驱动
        Class.forName("com.mysql.jdbc.Driver"); // 固定写法,加载驱动
        // 2.用户信息和url
        // useUnicode=true 支持中文编码
        // characterEncoding=utf8 设定中文字符集为utf-8
        // useSSL=true 使用安全的连接
        String url = "jdbc:mysql://localhost:3306/studentcourse?useUnicode=true&" +
                "characterEncoding=utf8&useSSL=true&useJDBCCompliantTimezoneShift=true&" +
                "useLegacyDatetimeCode=false&serverTimezone=UTC";
        String username = "root";
        String password = "root";
        // 3.连接成功,返回数据库对象(驱动管理,获得连接)
        Connection connection = DriverManager.getConnection(url,username,password);
        // 4.获得SQL对象 Statement:执行sql的对象
        Statement statement = connection.createStatement();
        // 5.执行SQL的对象
        String sql = "select * from course";
        ResultSet resultSet = statement.executeQuery(sql); // 返回的结果集,封装了所有的结果
        while (resultSet.next()){
            System.out.print(" Cno: " + resultSet.getObject("Cno"));
            System.out.print(" Cname: " + resultSet.getObject("Cname"));
            System.out.print(" Cpno: " + resultSet.getObject("Cpno"));
            System.out.print(" Credit: " + resultSet.getObject("Credit"));
            System.out.println();
        }
        // 6.释放连接
        resultSet.close();
        statement.close();
        connection.close();
    }
}

注意点:

  1. Class.forName()里面低版本就是这个,高版本mysql和jdbc中间还会有个cj,具体看jar包里面具体的路径。
  2. username和password对应的是电脑MySQL的用户名和密码。 

查询结果:

url的简便版:

jdbc:mysql://localhost:3306/studentcourse?useUnicode=true&
        characterEncoding=utf8&useSSL=true&serverTimezone=UTC


4.代码功能分析

1.加载驱动

Class.forName("com.mysql.cj.jdbc.Driver");

 

2.获取用户信息

url:

mysql --3306
jdbc:mysql://localhost:3306/数据库名
oracle --1521
jdbc:oracle:thin:@localhost:1521:sid

3.连接数据库对象

Connection connection = DriverManager.getConnection(url,username,password);

connection:数据库对象

数据库设置自动提交:connection.setAutoCommit()

事务提交:connection.commit()

事务回滚:connection.rollback()

4.获得SQL对象

Statement statement = connection.createStatement();

Statement:执行SQL的对象

statement.executeQuery();// 执行查询操作,返回结果集
statement.execute();// 执行所有的sql操作
statement.executeUpdate();// 执行更新、删除、插入。返回受影响的行数

5.释放资源

释放资源必须操作,因为这些资源特别占内存,特别是Connection

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答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数据库了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值