程序员的知识教程库

网站首页 > 教程分享 正文

JDBC知识梳理(jdbc的基本概念)

henian88 2024-10-14 10:03:36 教程分享 6 ℃ 0 评论

JDBC 是连接数据库及java程序完成数据操作

主要包含一下接口

Connection :连接

Statement:命令接口(有sql注入漏洞 不安全)

PreparedStatement:预编译命令的接口 (与Statement的不同 ,在执行前会进行预编译, 更加的安全,效率更高)

ResultSet :结果集合特征接口

操作步骤

1.导入要使用的包

java.sql.

2.声明使用的接口

为什么只提供接口? 提供一个标准 数据库厂商实现这写接口

接口的实现类就是去驱动

连接接口

Connection connection =null;

预编译命令对象

PreparedStatement preparedStatement =null;

结果集对象

ResultSet set=null;

3.加载驱动

导入jar 包

将连接的类加载到内存中 驱动连接是一个类该类在产生对象之前就需要被分配内存中,要用到Class.forName

Class c = new Class();

forName方法要告诉JVM要用的是哪一个类(String形式,且要带完整路径)

无法保证含有字符串的操作的准确性,所以要添加异常的判断(抛出异常

4建立连接(本质就是实例化 Connection对象)

利用DriverManager(驱动管理类) 提供链接手段

连接字符串的url 如jdbc:mysql://地址:端口号 /数据库?

jdbc:mysql java和mysql 连接协议

地址:链接数据库的ip或主机名

端口号 默认3306

连接数据库名称

编码

useSSL 是否使用信任连接方式

用户名 密码

String url = "jdbc:mysql://127.0.0.1:3306/score?characterEncoding=UTF-8&useSSL=false";

String user = "root";

String password = "root";

connection = DriverManager.getConnection(url, user, password);

System.out.println("连接成功");

5实例化命令对象

定义一个要执行(预编译)的命令

prepareStatement =connection.prepareStatement(String sql )// 预编译的sql 语句

预编译>>>使用占位符 ?替代 字符

prepareStatement.setInt(1,666); setObject(2,"llll"); setString (3,22)

占位符的起始位1 String 可用于万能类型

6执行sql命令 execute 执行

execute()执行大多数的DDL

executeUpdate() 执行DML update表示有修改操作,包括修改,删除,插入,返回是执行操作受影响的行数

executeQuery() 执行DDL 针对Select

7.查询操作

使用executeQuery() 返回一个ResultSet

使用游标 boolean next() 游标向前滚动一次 起始游标在0 位置

先判断有没有数据再操作

获取 getXXX(int fieldName) XXX获取的属性类型 fieldNumber 字段编号 (从1开始)

getXXX(String fieldName) filedName 字段名

getString( int /String ) 可以 获取任意类型的字段

set.next(); // 下一个 , 以找到数据为目的

set.previous(); // 前一个

set.first(); // 第一个

set.last(); // 最后一个

set.absolute(10); // 精确定位到第个

set.relative(10); // 相对

8关闭连接,与流一样倒序关闭

ResultSetMetaData 补充

ResultSetMetaData metaData=set.getMetaData(); //resultset 获取对象

metaData.getColumnName(int index) //获取字段名

metaData.getColumnLabel(int index) //获取别名

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表