Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JavaWeb07-JDBC(Java真正的全栈开发)

JavaWeb07-JDBC(Java真正的全栈开发)

作者头像
Java帮帮
发布于 2018-03-16 10:06:32
发布于 2018-03-16 10:06:32
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

jdbc

一、JDBC介绍

1. JDBC定义

JDBC(Java Data Base Connectivity,java数据库连接),说白了就是用Java语言来操作数据库.它是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序.

JDBC是接口,而JDBC驱动才是接口的实现,没有驱动无法完成数据库连接!每个数据库厂商都有自己的驱动,用来连接自己公司的数据库。

2. JDBC的优点

有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问MySql数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问DB2数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。

3. JDBC作用

通过上面介绍,我们知道了,如果要java语言来操作数据库,就需要使用JDBC,那么我们使用JDBC到底可以做些什么操作哪?

简单的说,通过JDBC我们可以做三件事:

与数据库建立连接

发送sql语句给数据库

处理返回数据集

二、JDBC入门案例

1.新建java项目

2.导入mysql数据库驱动:mysql-connector-java-5.1.22-bin.jar

3.新建数据库

CREATE DATABASE day06;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
USE day06
CREATE TABLE USER(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) ,
PASSWORD VARCHAR(20) ,
email VARCHAR(40)
);
INSERT INTO USER VALUES(NULL,'tom','123','tom@163.com');
INSERT INTO USER VALUES(NULL,'fox','456','fox@163.com');
INSERT INTO USER VALUES(NULL,'james','789','james@163.com');

4.常用的类与接口

在java体系结构中,有这样两个包是与jdbc有关的

java.sql.* javax.sql.*

在java.sql.*包下有以下类与接口,是我们在使用jdbc时需要用到的。

DriverManager类:它主要用于管理驱动

Connection接口:它用于与数据库建立连接

Statement接口:它用于向数据库发送sql语句

PreparedStatement接口:它是Statement的子接口,它提供了预编译功能

CallableStatement接口:它是PreparedStatement的子接口,它用于处理存储过程

ResultSet接口:它用封装查询操作返回的结果信息。

5.编写java代码连接mysql数据库,并获取user表中数据步骤

a)通过DriverManger注册驱动

b)通过DriverManager获取连接对象Connection

c)通过Connection获取一个可以向数据库发送sql语句的对象Statement d)通过Statement对象执行sql语句(select) 得到一个结果集ResultSet e)遍历结果集ResultSet,得到数据表中的数据

f)释放资源

编写java代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 1.通过DriverManger注册驱动
DriverManager.registerDriver(new Driver());
// 2.通过DriverManager获取连接对象
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/day06", "root", "1234");
// 3.通过Connection获取一个操作sql语句的对象Statement
Statement st = con.createStatement();
// 4.执行sql语句(select) 得到一个ResultSet
String sql = "select * from user";
ResultSet rs = st.executeQuery(sql);
// 5.操作结果集,得到数据
while (rs.next()) {
System.out.println("ID:" + rs.getInt("id") + "\tUSERNAME:"
+ rs.getString("username") + "\tPASSWORD:"
+ rs.getString("password") + "\tEMAIL:"
+ rs.getString("email"));
}
// 6.释放资源
rs.close();
st.close();
con.close();

运行结果:

三、JDBC api详情

1. DriverManager

Drivermanager是java.sql包下的一个类,它的作用是用于管理一组JDBC驱动程序的基本服务。

常用方法:

static void registerDriver(Driver driver) :向 DriverManager 注册给定驱动程序。

registDriver方法分析:

我们可以查看mysql驱动中Driver类的加载,会发现在其内部有一个静态代码块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}

在其中它也完成了一个注册操作,那么很明显在我们的程序中会将驱动注册两次。并且我们在使用registDriver方法是,还需要在程序中显示的导入mysql驱动中的driver类import com.mysql.jdbc.Driver;

通过以上分析,我们通过registDriver方法完成驱动的注册存在两个问题:

1.驱动对象在内存中存在两个

2.我们的程序依赖于数据库驱动

为了解决上述问题,我们在实际开发中,一般会通过反射的方式来加载我们的驱动程序

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

static Connection getConnection(String url,String user,String password):试图建立到给定数据库 URL 的连接。

getConnection方法分析:

通过这个方法,我们可以获取一个java.sql.Connection对象

getConnection方法有三个参数:

url: URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库

user:这个是数据库的用户名,对于我们来说,就是root用户

password:这个是root用户的密码

关于URL

对于url,它的基本格式如下:

协议 : 子协议 : 子名称

例如: jdbc:mysql://localhost:3306/day06

如果我们连接的是本机并且端口号是3306,以上代码也可以简写成

Jdbc:mysql:///day06

我们在jdbc中使用url很重要的一个目的是为了让DriverManager知道我们要通过哪一个数据库驱动来完成与数据库的连接。

扩展:常用的数据库连接URL

Oracle写法:jdbc:oracle:thin:@localhost:1521:sid

对于url来说,我们有时也会在其后面携带参数例如:

jdbc:mysql://localhost:3306/day06?useUnicode=true&characterEncoding=UTF-8

2. Connection

Connection是java.sql包下的一个接口

Connection代表的是一个与数据库连接的对象,当我们获取了一个Connection对象时,我们就可以说,已经与数据库连接成功.

Connection对象的获取是通过DriverManager的getConnection方法的返回值获取到的。

常用方法:

Statement createStatement():创建一个 Statement 对象来将 SQL 语句发送到数据库

PreparedStatement prepareStatement(String sql):创建一个PreparedStatement 对象来将参数化的 SQL 语句发送到数据库

CallableStatement prepareCall(String sql):创建一个 CallableStatement 对象来调用数据库存储过程

3. Statement

Statement是java.sql包下的一个接口

Statement对象用于执行静态 SQL 语句并返回它所生成结果的对象。

常用方法:

ResultSet executeQuery(String sql) :执行给定的sql语句,该语句通常是select,返回单个的ResultSet对象

int executeUpdate(String sql):执行给定的sql语句,该语句可能为update,delete,insert,返回的是行计数

boolean execute(String sql) :执行给定的sql语句,该语句返回多个结果,如果第一个结果为ResultSet对象,则返回true,其它则返回false,

4. ResultSet

ResultSet是java.sql包下的一个接口

ResultSet对象表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

Resultset封装执行结果时,采用的类似于表格的方式。ResultSet 对象维护了一个指向表格数据行的游标cursor,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进而调用方法获取该行的数据。

常用方法

boolean next():将光标从当前位置向前移一行。ResultSet 光标最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。如果存在下一行,则返回true,不存在则返回false.

获取数据

获取任意类型数据

Object getObject(String columnLabel):参数 columnLabel代表的是列的名称

Object getObject(int columnIndex) :参数columnIndex代表的是列的序号,第一列序号为1,第二列是2,以此类推

获取指定类型数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int getInt(int columnIndex)
int getInt(String columnLabel)
Date getDate(int columnIndex)
Date getDate(String columnLabel)
String getString(int columnIndex)
String getString(String columnLabel)

以上只是列举出一部分获取指定类型数据的方法,其它的可以查看API

四、JDBC CRUD操作

1. 添加

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Test
public void insertTest() throws ClassNotFoundException, SQLException {
// 1加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.获取Connection对象取
Connection con = DriverManager.getConnection("jdbc:mysql:///day06",
"root", "1234");
// 3.获取Statement对象
Statement st = con.createStatement();
// 4.添加操作
String sql = "insert into user values(null,'张三','123','zs@itcast.cn')";
int row = st.executeUpdate(sql);
if (row != 0) {
System.out.println("添加成功");
}
// 5.关闭资源
st.close();
con.close();
}

2. 修改

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Test
public void updateTest() throws ClassNotFoundException, SQLException {
// 1加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.获取Connection对象取
Connection con = DriverManager.getConnection("jdbc:mysql:///day06",
"root", "1234");
// 3.获取Statement对象
Statement st = con.createStatement();
// 4.添加操作
String sql = "update user set username='李四' where id=4";
int row = st.executeUpdate(sql);
if (row != 0) {
System.out.println("修改成功");
}
// 5.关闭资源
st.close();
con.close();
}

3. 删除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Test
public void deleteTest() throws ClassNotFoundException, SQLException {
// 1加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.获取Connection对象取
Connection con = DriverManager.getConnection("jdbc:mysql:///day06",
"root", "1234");
// 3.获取Statement对象
Statement st = con.createStatement();
// 4.添加操作
String sql = "delete from user where id=4";
int row = st.executeUpdate(sql);
if (row != 0) {
System.out.println("删除成功");
}
// 5.关闭资源
st.close();
con.close();
}

4. 查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Test
public void findById() throws ClassNotFoundException, SQLException {
// 1加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.获取Connection对象取
Connection con = DriverManager.getConnection("jdbc:mysql:///day06",
"root", "1234");
// 3.获取Statement对象
Statement st = con.createStatement();
// 4.添加操作
String sql = "select * from user where id=1";
ResultSet rs = st.executeQuery(sql);
if (rs.next()) {
System.out.println("ID:" + rs.getInt("id") + "\tUSERNAME:"
+ rs.getString("username") + "\tPASSWORD:"
+ rs.getString("password") + "\tEMAIL:"
+ rs.getString("email"));
}
// 5.关闭资源
st.close();
con.close();
}

五、JDBC工具类抽取

经过上面的CRUD操作之后,发现有重复的步骤:

l 加载驱动

l 获取连接对象

l 释放资源

那么我们是否可以将这部分内容抽取出来,当使用时,调用一下就可以了呢?

1. 工具类抽取1:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class JdbcUtils {
public static Connection getConnection() throws ClassNotFoundException,
SQLException {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接对象
return DriverManager.getConnection("jdbc:mysql:///day06","root", "1234");
}
public static void closeResource(Connection conn,Statement st,ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (st!=null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

上述代码,我们只是简单的抽取加载驱动与获取连接对象,那么这种方式存在一些问题,例如,当每一次调用JdbcUtils.getConnection()方法时,都会重新加载驱动,并且我们连接的数据库也已经固定了,可扩展性太差,为了解决这些问题,我们使用下面的方式会更加合适。

2. 工具类抽取2:

在src下新建一个properties文件,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DRIVERCLASSNAME=com.mysql.jdbc.Driver
URL=jdbc:mysql:///day06
USER=root
PASSWORD=1234
public class JdbcUtils {
private static final String DRIVERCLASSNAME;
private static final String URL;
private static final String USER;
private static final String PASSWORD;
static {
// 通过读取配置文件给常量赋值
ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
DRIVERCLASSNAME = bundle.getString("DRIVERCLASSNAME");
URL = bundle.getString("URL");
USER = bundle.getString("USER");
PASSWORD = bundle.getString("PASSWORD");
}
static {
// 加载驱动
try {
Class.forName(DRIVERCLASSNAME);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection() throws ClassNotFoundException,
SQLException {
// 获取连接对象
return DriverManager.getConnection(URL,USER,PASSWORD);
}
public static void closeResource(Connection conn,Statement st,ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (st!=null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

六、JDBC案例-登录

功能描述

要求在控制台上输入用户名与密码,如果信息正确,会显示出用户的详细信息

功能分析

1.要从键盘录入用户名与密码我们需要使用Scanner类完成操作

2.接收到用户名与密码后,我们需要调用jdbc程序根据用户名与密码查询数据库

select * from user where username=xxx and password=xxx;

3.若有该用户,则把用户的所有信息都打印出来;若无,则打印登录失败

代码实现:

sql用户表创建

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE DATABASE day06;
USE day06
CREATE TABLE USER(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) ,
PASSWORD VARCHAR(20) ,
email VARCHAR(40)
);
INSERT INTO USER VALUES(NULL,'tom','123','tom@163.com');
INSERT INTO USER VALUES(NULL,'fox','456','fox@163.com');
INSERT INTO USER VALUES(NULL,'james','789','james@163.com');
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
user类

public class User {
private int id;
private String username;
private String password;
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password="
+ password + ", email=" + email + "]";
}
}

Jdbc工具类 mysql驱动包

html表单

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="/day1001/login">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username">
</td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password">
</td>
</tr>
<tr>
<td colspan='2'><input type="submit">
</td>
</tr>
</table>
</form>
</body>
</html>

userOperation操作类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class UserOperation {
public User login(String username, String password) {
User user = null;
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
con = JdbcUtils.getConnection();
st = con.createStatement();
String sql = "select * from user where username='" + username
+ "' and password='" + password + "'";
rs = st.executeQuery(sql);
if (rs.next()) {
user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtils.closeResource(conn,st,rs);
}
return user;
}
}

程序入口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class LoginDemo {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入用户名");
String username = sc.nextLine();
System.out.println("请输入密码");//1' or 1=1 or '1
String password = sc.nextLine();
UserOperation uo = new UserOperation();
User user=uo.login(password, username);
if (user != null) {
System.out.println("用户登陆成功");
System.out.println(user);
} else {
System.out.println("登陆失败");
}
}
}

七、sql注入

对于上面的程序,如果我们在输入用户名与密码时,输入的信息如下:

用户名:tom' or 1=1 or 1='

密码:任意输入

这时会发现,我们的程序正确运行了,并显示用户登陆成功及用户的详细信息。这就产生了SQL注入问题.所谓SQL 注入是用户利用某些系统没有对输入数据进行充分的检查,从而进行恶意破坏的行为。对于SQL注入问题,我们可以使用PreparedStatement来替换Statement来解决这类问题。

八、PreparedStatement(解决sql注入)

PreparedStatement是java.sql包下的一个接口。它是Statement的一个子接口,表示预编译的 SQL 语句的对象。

SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。

通过 Connection的preparedStatement(sql)获取该对象

注意:

参数sql,代表的是要预编译的sql语句,在语句中可以使用 “?”占位符来占位

常用方法:

ResultSet executeQuery() :用于执行select操作,注意无参数

int executeUpdate():用于执行update delete insert操作,注意无参数

对预编译的sql语句中?占位符赋值操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void setInt(int parameterIndex,int x)
void setString(int parameterIndex,String x)
void setObject(int parameterIndex,Object x)

参数parameterIndex代表的是第几个?号,也就是参数的序号,从1开始计数,后一个参数,是要赋的值

更多方法大家可以查询帮助文档。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-01-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java帮帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JavaWeb(四)JDBC操作Oracle
JDBC:Java DataBase Connectivity(java数据库连接) SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。 jdbc是一套标准,它是由一些接口与类组成的。 涉及到的类与接口:   java.sql     类:DriverManger     接口 Connection Statement ResultSet PreparedStatement     CallableStatement(它是用于调
二十三年蝉
2018/02/28
1.5K0
JavaWeb(四)JDBC操作Oracle
JDBC也就那么回事
  JDBC:Java DataBase Connectivity,是SUN公司提供的一套操作数据库的标准规范(技术)。
泰斗贤若如
2019/06/18
7440
数据库技术之-JDBC
2)JDBC是javaSE程序连接数据库的桥梁,所以跟你使用哪一类程序没有关系,也就是说不管你使用javaSE程序还是以后的JavaWeb程序
软件小生活
2021/08/13
5150
数据库技术之-JDBC
java学习day18----JDBC操作基本操作
1.JDBC了解 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 2.开发步骤 1.创建一个java项目 2.导入mysql的数据库驱动jar包 驱动包 3.注册驱动 Class.forName(“”) 4.获取与数据库的链接 5.得到代表发送和执行SQL语句的对象 Statement 6.执行语句 7.如果执行的是查询语句,就会有结果集,处理 8.释放占用的资源 3.代码
曼路
2018/10/18
4140
day06_JDBC学习笔记
  JDBC:Java DataBase Connectivity,是SUN公司提供的一套操作数据库的标准规范(技术)。
黑泽君
2018/10/11
6710
day06_JDBC学习笔记
【JDBC】入门增删改查
JDBC(Java DataBase Connectivity,    java数据库连接)是一种用于执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成。
陶然同学
2023/02/24
3680
【JDBC】入门增删改查
JDBC和数据库连接池
JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
宋先生
2019/07/18
6340
Jdbc知识点全整理,你值得拥有 ​(1)
Jdbc JDBC入门 1 什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。 2 JDBC原理 早期SUN公司的天才们想编写一套可以连接天下所有数据库的API,但是当他们刚刚开始时就发现这是不可完成的任务,因为各个厂商的数据库服务器差异太大了。后来SUN开始与数据库厂商们讨论,最终得出的结论是,由SUN提供一套访
Java帮帮
2018/03/19
1.3K0
Jdbc知识点全整理,你值得拥有 ​(1)
数据库技术:JDBC,预处理对象,事务控制
JDBC (Java Data Base Connectivity) 是 Java 访问数据库的标准规范。是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。是 Java 访问数据库的标准规范。
RendaZhang
2020/09/08
7610
数据库技术:JDBC,预处理对象,事务控制
第一个JDBC程序
准备mysql数据库的驱动jar包:mysql-connector-java-5.1.13-bin.jar;
星哥玩云
2022/09/14
2980
JDBC技术(前篇)
Java database connectivity,java连接数据库,其实就是通过java语言里按揭数据库。 原来在操作数据库是在控制台写sql语句来操作数据库,jdbc就是通过向数据库发送 sql语句操作数据库。 JDBC原理: 比如 买完电脑,装上显卡,还需要安装显卡的驱动,那么显卡驱动程序包是 显卡的厂商提供。 JDBC操作数据库:mysql、oracle、DB2等数据库,前提是导入数据库驱动的程序包。 那么这些数据库驱动的程序包是谁提供的?数据库厂商提供。 程序员通过操作JDBC这一组接口就可以操作不同的数据库了。
别团等shy哥发育
2023/02/27
3590
JDBC技术(前篇)
原生JDBC连接数据库
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159744.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
6020
原生JDBC连接数据库
[数据库操作]Java中的JDBC的使用方法.
前言: 想必大家在实际编码中都遇到过JDBC的操作, 这里仅做自己的一个总结, 有错误和不完整之处还请大家提出来.  1,JDBC其实一套规范(接口) 数据库厂商需要实现此接口(实现类)--数据库驱动 2,jdbc的作用: 可以和数据库创建链接 发送sql语句 接收返回值,处理结果 3,api详解(java.sql或者javaX.sql) DriverManager 类:   管理一组 JDBC 驱动程序的基本服务。 常用方法: registerDriver(Driver):注
一枝花算不算浪漫
2018/05/18
8700
Java中JDBC的使用详解[通俗易懂]
URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:
全栈程序员站长
2022/09/22
1.5K0
Java中JDBC的使用详解[通俗易懂]
原生的JDBC教程详解
JDBC 1.1 JDBC概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成。 JDBC需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,通过软件可以与该设备进行通信。 今天我们使用的是mysql的驱动mysql-connecto
Java学习
2018/04/17
3.6K0
原生的JDBC教程详解
Java学习之JDBC篇
在一些web开发或者是数据存储的时候,肯定会使用到数据库来进行数据存储。 而在Java里面需要调用JDBC来对数据库进行操作。
全栈程序员站长
2022/07/13
3460
JavaWeb-JDBC
学完了Java SE部分的内容后,继续学习Java EE。学习JavaWeb以及一些主流的开发框架如SSM,SpringBoot,SpringClound等。首先来学习JDBC,一个与数据库连接相关的API。
reload
2024/03/08
2500
JavaWeb-JDBC
【愚公系列】2023年03月 Java教学课程 111-JDBC的基本使用
JDBC全称为Java Database Connectivity,是一种用于Java程序与各种关系型数据库进行交互的API。通过JDBC,Java程序可以连接到数据库,执行SQL语句并获得结果集,对数据库进行增删改查等操作。JDBC提供了一组标准的接口,使得Java程序可以与各种数据库进行通信,而不必关心具体的数据库实现细节。JDBC还提供了事务支持、批量处理等功能,是Java开发中常用的数据库访问方式之一。
愚公搬代码
2023/04/01
4590
【愚公系列】2023年03月 Java教学课程 111-JDBC的基本使用
Java中的JDBC详解
Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
共饮一杯无
2022/11/28
4780
JavaWeb后端入门1-JDBC(Eclipse环境)
mysql驱动包为mysql-connector-java-5.1.7-bin.jar
用户6948990
2025/04/03
730
JavaWeb后端入门1-JDBC(Eclipse环境)
相关推荐
JavaWeb(四)JDBC操作Oracle
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验