JDBC数据库连接 及JDBC使用讲解

10 篇文章 0 订阅

目录

1. 什么是JDBC

2. JDBC ?作原理

3. JDBC 使?

3.1 创建项目并添加MySQL驱动(DataSource实现操作数据库)

3.2 使用代码操作数据库


1. 什么是JDBC

Java 数据库连接。是种于执 SQL 语句的 Java API,它是 Java 中的数据库连接规范。 使了 JDBC 之后,不管是什么数据库与什么数据库驱动,我们只需要使套标准代码就 可以实现对不同数据库进统操作(添加、修改、删除、查询),它的目的就在于解决不同数据库厂商的数据库存在不一样时,会产生的问题。

2. JDBC 作原理

JDBC 为多种关系数据库提供了统访问式,作为特定商数据库访问 API 的种级抽象,

它主要包含些通的接类。

JDBC 访问数据库层次结构:

JDBC的优点:1. Java语言访问数据库操作完全面向抽象接口编程。

2. 开发数据库应用不用限定在特定数据库厂商的API。

3. 程序的可移植性大大增强。

3. JDBC 使

3.1 创建项目并添加MySQL驱动(DataSource实现操作数据库)

创建Java项目,添加MySQL驱动(注意:不同数据库版本对应不同驱动包)

3.2 使用代码操作数据库

操作数据库MySQL提供两种操作API:

1. DirverManager

2. DataSource(推荐使用)

下面是使用DataSource来实现操作数据库:

1. 获取数据源 (输入MySQL数据库连接的服务器地址、用户名、密码)

2. 获取连接 (建立客户端与服务端的连接)

3. 获取执行器 (连接服务器并切换到数据库)

4. 查询或操作数据库 (输入命令,并得到结果)

5. 关闭连接 (关闭客户端)

3.2.1 获取数据源

// 1. 创建数据源
MysqlDataSource dataSource = new MysqlDataSource();
// 1.1 设置连接的 MySQL 数据库服务器
dataSource.setURL("jdbc:mysql://127.0.0.1:3306/java33characterEncoding=utf8&useSSL=true");
// 1.2 设置?户名
dataSource.setUser("root");
// 1.3 设置密码
dataSource.setPassword("********");

3.2.2 获得连接

连接对象是 Connection,注意此步骤操作容易出错,定是 com.mysql.jdbc 包下的 Connection 对象。

// 2.创建连接
Connection connection = (Connection) dataSource.getConnection();

3.2.3 获得执行器

执器是来执 SQL 命令的,执器有三种:

1. Statement (用于执行不带参数的简单语句)

2. PreparedStatement (用于执行带或者不带参数的语句,SQL语句会在数据库系统预编译,执行速度快于Statement)(常用)

3. CallableStatement (用于执行数据库存储过程的调用)

PreparedStatement 优点:

性能比 Statement高,SQL预编译,阻止常见SQL注入攻击,占位符“ ?”下标从1开始,占位符不能用多值,参数化SQL查询。

// 3.获得执?器
String selectSQL = "select * from student where user name = ?";
PreparedStatement statement = connection.prepareStatement(selectSQL);
// 3.1 占位符赋值
statement.setString(1, "王五");

PreparedStatement 有 主要两种重要的法:

1. executeQuery(); 法执后返回单个结果集的,通常于 select 语句。

2.executeUpdate():法返回值是个整数,指示受影响的数,通常于 update、insert、delete 语句。

3.2.4 查询或操作数据库

// 4.获得结果集
ResultSet resultSet = statement.executeQuery();
// 4.1 获得结果并打印
while (resultSet.next()) {
 ? ?String sn = resultSet.getString("sn");
 ? ?String username = resultSet.getString("username");
 ? ?String mail = resultSet.getString("mail");
 ? ?System.out.println(String.format("SN:%s,UserName:%s,Mail:%s", sn,username, mail));
}

ResultSet 的数据排列,每有多个字段,并且有个记录指针,指针所指的数据

叫做当前数据,我们只能来操作当前的数据。我们如果想要取得某条记录,就要使

ResultSet 的 next() 法 ,如果我们想要得到 ResultSet 的所有记录,就应该使 while 循环。

3.2.5 关闭数据库连接

 ?// 5. 关闭资源
 ? ? ? ?resultSet.close();
        statement.close();
 ? ? ? ?connection.close();

总结

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于 java开发 的学习思路及方向。从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。

由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的 点击我的Gitee获取
还有 高级java全套视频教程 java进阶架构师 视频+资料+代码+面试题!

全方面的java进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值