1.什么是JDBC?
现在的应用系统大多都离不开数据库,Java程序访问数据库的基本方式是通过JDBC。JDBC(Java DataBase
Connectivity,Java数据库连接)技术的简称,是一种用于执行SQL语句的Java API。它由一组用Java编程语言编写
的类和接口组成。这个API由 java.sql.,javax.sql. 包中的一些类和接口组成,它为数据库开发人员提供了一
个标准的API,使它们能够用纯Java API 来编写数据库应用程序。
2.JDBC的工作原理:
JDBC 为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问API的一种高级抽象,它主要包含一些通用
的接口类。真正的数据库访问操作实现是由各自数据库厂商提供的。通常把厂商提供的特定于数据库的访问API称
为数据库JDBC驱动程序。
3.JDBC优势:
Java语言访问数据库操作完全面向抽象接口编程
开发数据库应用不用限定在特定数据库厂商的API
程序的可移植性大大增强
4.放驱动:new一个文件夹 jar包拷贝进去(lib) 点击 open modules settings 找到dependencies 点击+号 选择第一个然后选择目录文件
5.JDBC的流程(步骤):
开始——>加载数据驱动——>建立数据库连接——>创建操作命令——>执行SQL语句——>处理返回结果集——.>关闭结果集——>关闭操作命令——>关闭连接——>结束
6.准备一个数据库环境(代码如下)
drop database if exists `memo`;
create database if not exists `memo` default character set utf8 collate
utf8_general_ci;
use `memo`;
drop table if exists `memo_group`;
create table if not exists `memo_group`(
id int primary key auto_increment comment '便签组编号',
name varchar(8) not null unique key comment '便签组名称',
created_time datetime not null comment '创建时间',
modify_time timestamp comment '修改时间'
)engine innodb;
-- 默认分组
insert into `memo_group` (id,name,created_time) values (1, '默认组', now());
drop table if exists `memo_info`;
create table if not exists `memo_info`(
id int primary key auto_increment comment '便签编号',
group_id int not null comment '便签组编号',
title varchar(32) not null comment '便签标题',
content varchar(1024) not null default '' comment '便签内容',
准备数据库驱动包(比如: MySQL数据库的驱动包)
加载JDBC驱动程序
建立数据库连接
创建操作命令(statement)
执行SQL语句
处理结果集
is_protected char(1) not null default '0' comment '是否私密,0:公开 1:私密',
background enum('WHITE','RED','BLUE','GREEN') default 'WHITE' comment '背景颜
色',
is_remind char(1) default '0' comment '是否提醒,0:不提醒 1:提醒',
remind_time datetime comment '提醒时间',
created_time datetime not null comment '创建时间',
modify_time timestamp comment '修改时间'
)engine innodb;
-- 欢迎标签
insert into `memo_info`(id,group_id,title,content,created_time) values (1,1,'欢迎使
用','下面是使用手册',now());
drop table if exists `memo_share`;
create table if not exists `memo_share`(
id int primary key auto_increment comment '便签分享编号',
info_id int comment '便签编号',
mark varchar(32) not null default '' comment '分享备注',
share_time datetime not null comment '分享时间'
)engine innodb;
-- 欢迎标签分享
insert into `memo_share`(id,info_id,mark, share_time) values (1,1,'特别有意思的便签
APP',now());
java代码如下:
package com.xiaohui.jbdc;
import java.sql.*;
public class MyFirstjdbcCase {
public static void main(String[] args) {
try {
//1
Class.forName("com.mysql.jdbc.Driver");
//2.url协议
//jdbc:<databaseType>://<host>:<port>/<databaseName>?user=XXX&password=xxx
//jdbc:mysql://127.0.0.1:3306/memo?user=root&password=980302 不能乱写
String url = "jdbc:mysql://127.0.0.1:3306/memo?user=root&password=980302";
Connection connection = DriverManager.getConnection(url);//
//3.
Statement statement = connection.createStatement();
//4.
String sql = " select id,name,created_time,modify_time from memo_group";
//5.
ResultSet resultSet = statement.executeQuery(sql);//封装一个结果集
//6.
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
Timestamp createTime = resultSet.getTimestamp("created_time");
Timestamp modifyTime = resultSet.getTimestamp("modify_time");
System.out.println(id+""+name+""+createTime+""+modifyTime);
//7.
resultSet.close();
//8.
statement.close();
//9.
connection.close();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
当要对表插入数据时候——对步骤4 5 6 7 进行一定的修改。部分步骤代码如下:
4.String sql = "insert into memo_group (name,created_time) values('世界','2019-06-27 17:03:00')";
5.int effect = statement.executeUpdate(sql);
6.直接删除
7.不需要
插入结果如下:emmm,结果如图,喜欢jojo就写了两个替身的名字。未完待续,希望能帮助到其他人。扣no Dio 哒!