一、引言
1.1如何操作数据库
使客户端工具访问数据库,需要手动建立链接,输入用户名和密码登录,编写sql语句,点击执行,查看结果。
1.2实践开发中
在实际开发中,当用户的数据发生改变时。不可能通过客户端操作执行sql语句,因为操作量过大,无法保证效率和正确性。
二、JDBC
2.1什么是JDBC
JDBC(Java Database Connectivity) Java连接数据库,可以使用Java语言连接数据库完成CRUD操作。
2.2JDBC核心思想
Java中定义了访问数据库的接口,可以为多种关系型数据库提供统一的访问方式。由数据库厂商提供驱动实现类。
2.3.1MYSQL数据库驱动
mysql-connection-java-5.1.X实用于5.X版本
mysql-connection-java-8.0.X实用于8.X版本
2.3.2JDBC API
JDBC是由多个接口和类进行功能实现
类型 | 权限定名 | 简介 |
class | java.sql.DriverManager | 管理多个数据库驱动类,提供了获取数据库链接的方法 |
interface | java.sql.Connection | 代表一个数据库链接 |
interface | java.sql.Statement | 发送sql语句到数据库工具 |
interface | java.sql.ResultSet | 保存sql查询语句的结果集 |
class | java.sql.SQLException | 处理数据库应用程序时所发生的异常 |
2.4环境搭建
1.在项目下新建lib文件夹,用于存放jar文件
2.将mysql驱动mysql-connection-java-5.1.X复制到项目lib文件夹中
3.选中lib文件夹右击Add as Libraay,点击OK
最终效果如下
三、JDBC开发步骤
3.1注册驱动
使用Class.forName("com.mysql.jdbc.Driver");手动加载字节码文件到JVM中
3.2连接数据库
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/database? useUnicode=true&characterEncoding=utf8", "root","1234");
URL(Uniform Resource Locator) 统一资源定位符:由协议、IP、端口、SID(程序实例名称)组
成
注意:这里的database是你的数据库中的名字
3.3 获取发送 SQL 的对象
通过 Connection 对象获得 Statement 对象,用于对数据库进行通用访问。
Statement statement = connnection.createStatement();
3.4 执行SQL 语句
int result = statement.executeUpdate("insert into user(name,password,age) values ('li三','123',12)");
3.5 处理结果
if(result == 1){
System.out.println("成功!");
}else{
System.out.println("失败!");
}
3.6 释放资源
statement.close();
connection.close();
四、代码
package com.yyh;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.Statement;
public class jdbc {
public static void main(String[] args) throws Exception {
// 1.注册驱动,加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.获得链接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8","root","root");
if(connection!=null){
System.out.println("连接成功");
}else{
System.out.println("连接失败");
}
// 3.获得执行SQL语句的对象
Statement statement = connection.createStatement();
//4.编写sql语句,执行sql语句
String sql="insert into user(name,password,age) values ('li三','123',12)";
int result = statement.executeUpdate(sql);
// 5.处理结果
if(result == 1){
System.out.println("成功!");
}else{
System.out.println("失败!");
}
// 6.释放资源
statement.close();
connection.close();
}
}