吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1328|回复: 6
收起左侧

[讨论] JAVA笔记--JAVAJDBC

[复制链接]
zhangyongkang 发表于 2021-1-21 22:45
JAVA JDBC

JDBC
JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力

工作原理:

java应用程序可以使用集成在JDK中的java.sql和javax.sql包中的JDBC API来连接和操作数据库

1.JDBC API

sun公司提供

作用:提供了java应用程序与各种不同数据库交互的接口

such as:Connection (连接)

                Statement(执行SQL)

                ResultSet(结果集)

                PreparedStatement

2.JDBC Driver Manager(驱动程序管理器)

由sun公司提供

作用:是JDBC体系结构的支柱,负责管理各种不同的JDBC驱动

把java用用程序连接到相应的JDBC驱动程序上,位于JDK的java.sql包中

3.JDBC驱动

由数据库厂商提供

作用:负责连接各种不同的数据库,开发程序是我们只需要正确加载JDBC驱动,正确调用JDBC API就可对数据库进行访问。

JDBC API:

主要做三件事:与数据库建立连接,发送sql语句,处理结果

DriverManager:装载驱动程序,并为创建新的数据库连接提供支持

Connection (连接):负责连接数据库并担任传送数据的任务

Statement(执行SQL):由Connection产生,负责执行SQL语句

ResultSet(结果集):负责保存和处理Statement执行后所产生的查询结果

PreparedStatement:Statement的子接口,与Statement作用相同

PreparedStatement和Statement相比有什么优势:

PreparedStatement具有高安全性,高性能,高可读性和高维护性。

JDBC访问数据库的步骤:

1.加载JDBC驱动

示例:Class.forName("JDBC驱动的名称")

2.与数据库建立连接:

示例:Connection con=DriverManager.getConnection(数据连接字符串,数据库用户名,密码);

3.发送SQL语句,并得到结果返回

示例:Statement stmt=con.createStatement

ResultSet rs=stmt.excuteQuery("SELECT  id FROM master")

4.处理返回结果:

示例:

while(rs.next()){

     int  id=rs.getInt("id");

     String name=rs.getString("name");

     System.out.printIn(id+"  "+name);

}

两种常用的驱动方式:

1.JDBC-ODBC桥连方式 适用于个人开发与测试,通过ODBC与数据库连接

2.纯java驱动,他直接同数据库进行连接,在生产性开发中,用纯java驱动方式

statement常用方法

方法名 说明
ResultSet executeQuery(String sql) 执行SQL查询并获取到ResultSet对象
int executeUpdate(String sql) 可以执行插入、删除、更新等操作,返回值是执行该操作所影响的行数
boolean execute(String sql) 可以执行任意SQL语句,然后获得一个布尔值,表示是否返回ResultSet
Resultset常用方法

方法名 说明
boolean next() 将游标从当前位置向下移动一行
boolean previous() 游标从当前位置向上移动一行
void close() 关闭ResultSet 对象
int getInt(int colIndex) 以int形式获取结果集当前行指定列号值
int getInt(String colLabel) 以int形式获取结果集当前行指定列名值
float getFloat(int colIndex) 以float形式获取结果集当前行指定列号值
float getFloat(String colLabel) 以float形式获取结果集当前行指定列名值
String getString(int colIndex) 以String 形式获取结果集当前行指定列号值
String getString(String colLabel) 以String形式获取结果集当前行指定列名值


什么是持久化
将程序中的数据在瞬时状态和持久状态间转换的机制即为数据持久化
持久化的实现方式:
数据库
普通文件
XML文件
为什么要进行jdbc封装:
隔离业务逻辑代码和数据访问代码
隔离不同数据库的实现
DAO模式:
Data Access Object(数据存取对象)
位于业务逻辑和持久化数据之间
实现对持久化数据的访问

JDBC访问数据库的步骤
1.导包
2.加载驱动类    Class.ForName("com.mysql.jdbc.Driver");
3.建立连接数据库   conn=DriverManger getConnection("jdbc:mysql://localhost:3306/myschool","root","root");
4. 执行SQL语句    conn=stat.prepareStatement(sql);
5.返回处理结果    rs=stat.executeQuery();
6.关闭结果      conn.close()

PreparedStatement注入  相当于原来是一个条件,现在是两个条件只能满足一个
select * from student where studentName=?
select *from student where studentName=?,1or2

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
叄更灯火 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

amose 发表于 2021-1-22 00:33
当时学了之后,想去实习公司的数据库连接一下,结果需要SSH,然后查了很久资料还是连不上,也不知道哪里出错了,唉

另外,需要注意的是mysql8.0版本的url(后面需要加时区)和驱动类(com.mysql.cj.jdbc.Driver)有所改变
suifenging 发表于 2021-1-22 08:16
这个,现在很少用了吧,springboot什么都有了,mybatis现在是主流
c03xp 发表于 2021-1-22 08:56
suifenging 发表于 2021-1-22 08:16
这个,现在很少用了吧,springboot什么都有了,mybatis现在是主流

springcloud,Eureka,k8s,都特么的被真正的程序员给封装完了,剩下的就是我们这些贴瓷砖的码农在这拾人牙慧
QingYi. 发表于 2021-1-22 09:09
c03xp 发表于 2021-1-22 08:56
springcloud,Eureka,k8s,都特么的被真正的程序员给封装完了,剩下的就是我们这些贴瓷砖的码农在这拾人牙 ...

在造现有的轮子
wsf5201314 发表于 2021-1-22 18:09
感谢分享  学习一下  
wsf5201314 发表于 2021-1-22 18:11
suifenging 发表于 2021-1-22 08:16
这个,现在很少用了吧,springboot什么都有了,mybatis现在是主流

从基础开始学 还是需要学到的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 07:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表