数据库(DataBase)-JDBC程序代码范例解析

第一个JDBC程序

1.创建测试所用的数据库:

CREATE DATABASE JdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci;

USE JdbcStudy;

CREATE TABLE `users`(
	`id` INT PRIMARY KEY,
	`NAME` VARCHAR(40),
	`PASSWORD` VARCHAR(40),
	`email` VARCHAR(60),
	`birthday` DATE
);

INSERT INTO `users`(`id`,`NAME`,`PASSWORD`,`email`,`birthday`) VALUES
(1,'ALita','123456','Alita@qq.com','2022-12-04'),
(2,'Edwin','456798','Edwin@qq.com','2000-12-04'),
(3,'Jarvis','789123','Jarvis@qq.com','2000-12-04');

select * from user;

在这里插入图片描述

2.导入数据库驱动(导入Jar包)

将mysql-connertor-java-5.x.xx.jar文件夹放在一个新创建的lib文件夹下,然后再

在这里插入图片描述

点击Project Structure,进入下一个界面:

在这里插入图片描述
点击dependencis后点击Scope旁边的“+”,添加Jar包的路径,然后apply即可。

3.编写测试代码

package com.Edwin.lession01;

import javax.swing.plaf.nimbus.State;
import java.sql.*;
/**我的第一个JDBC程序
 * @author Edwin D
 * @date 2020.5.20 下午 4:10
 */
public class JDBCFristDemo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
//        1.加载驱动。
        Class.forName("com.mysql.jdbc.Driver");//固定写法。

//        2.连接信息,用户信息和URL
//        useUnicode = true 设定中文编码
//        &characterEncoding = utf8 支持中文字utf8
//        &useSSL = true 解决一些异常。
        String url = "jdbc:mysql://localhost:3306/jdbcStudy?useUnicode = true&characterEncoding = utf8&useSSL = true";
        String username = "root";
        String password = "1234";
        
//        3.Success连接数据库对象,此处connection是代表数据库的对象
        Connection connection = DriverManager.getConnection(url, username, password);

//        4.执行Sql的对象,此处statement是执行sql的对象
        Statement statement = connection.createStatement();

//        5.执行Sql的对象去执行Sql,可能存在结果,查看返回结果。
        String sql = "select * from users";

        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"));
            System.out.println("+_+-+_+-+_+-+_+-+_+-+_+-");
        }

//        6.释放连接
        resultSet.close();
        statement.close();
        connection.close();

    }
}

输出效果:

在这里插入图片描述

步骤总结:

1.加载驱动

2.连接数据库:DriverManner

3.获取执行Sql的对象:Statement

4.获取返回的结果集

5.释放资源

各个模块作用

DriverManager
1.加载驱动。
//        原本的加载驱动写法:
//        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//        原本的方法中调用了IDEA里写的注册Driver的方法,会造成两次重复注册,因此不推荐
        Class.forName("com.mysql.jdbc.Driver");//固定写法。
URL
2.连接信息,用户信息和URL
//        useUnicode = true 设定中文编码
//        &characterEncoding = utf8 支持中文字utf8
//        &useSSL = true 解决一些异常。
String url = "jdbc:mysql://localhost:3306/jdbcStudy";
?useUnicode = true&characterEncoding = utf8&useSSL = true
// MySQL 默认的端口号:3306
// 格式:协议://主机:端口号/数据库名?参数1&参数2&参数3;
Connection

代表数据库的对象

3.Success连接数据库对象,此处connection是代表数据库的对象
        Connection connection = DriverManager.getConnection(url, username, password);
        
        connection.commit();//事务提交。
        connection.getAutoCommit();//数据库自动提交。
        connection.rollback();//事务提交。
Statement

执行Sql的对象。

4.执行Sql的对象,此处statement是执行sql的对象
        Statement statement = connection.createStatement();
	   statement.execute();		//执行任何Sql,但是效率会低一点。
        statement.executeQuery(); //查询操作,返回ResultSet结果集
        statement.executeUpdate();//插入,更新,删除都用这个,返回一个受影响的行数。
ResultSet
5.执行Sql的对象去执行Sql,可能存在结果,查看返回结果。
        String sql = "select * from users";

        ResultSet resultSet = statement.executeQuery(sql);
//        返回结果集,其中封装了我们全部查出来的结果

        resultSet.getObject();
//        在不知道类型的情况下使用

        resultSet.getInt();
        resultSet.getFloat();
        resultSet.getDouble();
        resultSet.getString();
        resultSet.getDate();
//        在知道数据类型的情况下使用,效果更佳。
遍历,指针
resultSet.beforeFirst(); // 移动到最前面
resultSet.afterLast(); // 移动到最后面
resultSet.next(); //移动到下一个数据
resultSet.previous(); //移动到前一 -行
resultSet.absolute(row); //移动到指定行
释放资源
6.释放连接
        resultSet.close();
        statement.close();
        connection.close();

参考文献

《【狂神说Java】MySQL最新教程通俗易懂》
视频连接:https://www.bilibili.com/video/BV1NJ411J79W

2020.05.24

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值