目录
前言
一、JDBC是什么?
二、JDBC编程步骤
(1)设计理念
(2)准备工作
(3)打开Idea
(4)代码部分步骤
三、总结
本文记录了笔者通过对JDBC的学习,实现了java连接数据库,同时完成了对数据库数据的一些简单操作,代码以经过笔者验证,新手第一篇,欢迎大佬批评指正。
JDBC(Java DataBase Connectivity)Java数据库连接技术,它是java和数据库之间的一个桥梁,我们可以通过它连接各种不同的数据库,执行SQL(DML,DDL)语句。它可以理解为SUN公司制定的一套用Java连接数据库执行SQL语句的规范,而不是一个实现。(本篇文章代码都是针对SQLserver实现的)
java要想连接数据库,需要使用SUN的JDBC规范,但是SUN公司并没有提供JDBC连接各个数据库的实现,而是需要各个数据库厂商来完成,根据他们自己的数据库打造对应的实现接口
名称 | 类型 | 说明 |
---|---|---|
Driver |
接口 | 用来表示驱动程序类 |
Connection | 接口 | 此接口用于连接数据库 |
Statement | 接口 | 执行SQL语句并将数据检索到ResultSet中 |
ResultSet | 接口 | 数据库结果集数据表,通常由执行查询数据库语句产生 |
PrepareStatement | 接口 | 执行预编译SQL语句 |
DriverManager | 类 | 驱动程序管理器,通过它来得到连接对象 |
CallableStatement | 接口 | 用来执行存储过程 |
关系图:
到对应数据库官方网站上下载驱动程序jar包,该jar包整合了所属数据库公司制作的JDBC接口的实现类(这里以SQLserver为例)
选择Libraries,点击+号,添加下载的jar包
最后点击确定,ctrl+N 输入SQLserverConnection,如果成功搜索到SQLserverConnection接口以及它的实现类,恭喜你添加成功
1、加载驱动程序Class.forName("驱动程序类包名+类名")
a)静态方法,类名.方法名
b)抛出编译时异常ClassNotFoundException(alt+enter错误代码解决方案)
2、建立连接Connection DriverMananger.getConnection(url)
a)Connection con = DriverMananger.getConnection(url,uerName,pwd)
b)抛出一个编译时异常SQLException(调用java.sql包中的任何一个方法都会抛出编译时异常SQLException)
c)url统一资源定位符jdbc:type//ip:port;databaseName=dbName(localhost)
3、创建Statement对象 con.createStatement()
a)执行sql:
写一个sql语句用于测试: String sql = "delete from teacher where teanum = '12345678'";
int 影响行数 = sta.executeUpdate(sql);
4、关闭资源
a)关闭资源顺序与创建资源顺序相反
b)当一个对象没有指向它的任何引用时,就是垃圾资源
package com.ming;
/*使用
1、得到对应数据库的驱动程序jar包
(1)官网下载 mysql jdbc driver download
(2)解压
2、模块引用jar包
(1)项目建立libraries project structure->libraries->添加
(2)模块引用libraries project structure->modules->添加lib
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class TestJDBC {
/*
1、加载驱动程序
Class.forName("包名+类名");
(1) 驱动程序类一定实现了java。sql。driver
(2) Class。forName()静态方法
(3) 会抛出一个编译时异常ClassNotFoundException
(4) 会去DriverManager那注册
2、建立连接 ip地址:端口号(port);databaseName userName pwd
(1)URL(统一资源定位符)
(2)getConnection()静态方法
(3)抛出编译时异常SQLException
调用java。sql包中的任何一个方法都会抛出编译时异常SQLException
3、创建Statement对象
4、执行sql(DML insert update delete/ select)
int executeUpdate(insert update delete )sql语句影响的行数
ReultSet executeQuery(select)
*/
public static void main(String[] args) {
Statement sta = null;
Connection con = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=PAS";
con = DriverManager.getConnection(url,"sa","610521");
System.out.println(con);
sta = con.createStatement();
// String sql = "insert into teacher (teanum, teaName, teatitle, teatypeid, teabtd, pwd, static) values ('12345678', '刘伊茗', '教授', 1, '1981-7-5', 1, 1)";
String sql = "delete from teacher where teanum = '12345678'";
int rows = sta.executeUpdate(sql);
if(rows==1){
System.out.println("操作成功");
}else{
System.out.println("操作失败");
}
} catch (ClassNotFoundException e) {
System.out.println("驱动程序加载失败");
e.printStackTrace();
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
try {
if (sta != null){
sta.close();
sta = null;
}
if (con != null){
con.close();
con = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
本文只涉及java连接数据库进行增删改操作,查询操作暂时没有涉及到