JDBC详解

JDBC本质:官方定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动.jar包。我们可以使用这套接口,去执行.jar包中的实现类.

1、实现步骤:

①导入jar包:在项目下创建lib包,将jar文件拷贝到该包下,然后右击该包,选择添加到库

②注册驱动:Class.forName(“com.mysql.jdbc.Driver”);高版本的数据库“com.mysql.cj.jdbc.Driver”

③获取数据库连接对象          

Connection  c = DriverManager.getConnection(“jdbc:mysql://localhost:3306/数据库名”,“用户名”,“密码”);

 如果是连接本机,默认端口号为3306,则localhost:3306可以省略,斜线不可省略。

④定义sql:String sql = “updect 表名 set 列=值 ”

⑤获取执行sql语句的对象Statement:Statement stmt = c.createStatement();

⑥执行sal,接收返回结果:int num = stmt.executeUpdate(sql);

⑦处理结果:System.out.print(num);

⑧释放资源:stmt.close();        c.close();

JDBC连接数据库出现乱码解决方案

url ="jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&serverTimezone=Asia/Shanghai";

2、各个类详解:

Ⅰ、DriverManager类

作用:驱动管理对象      //拽我 买内姐

①注册驱动

方法一:直接调用DriverManager类中方法

               static void registerDriver(Driver driver)//ruai级死特

 方法二 :Class.forName(“com.mysql.jdbc.Driver”);

                 将Driver类加载近内存,里面有一段静态代码块

其本质上是执行DriverManager类中的方法static void registerDriver​(Driver driver)进行驱动注册.

②获取数据库连接    //可奶可新

static Connection

getConnection(String url,String user, String password)

url:指定连接的路径

url语法:jdbc:mysql://ip(域名):端口号/数据库名称

               如果是连接的本机的MySQL,url中黑体部分可以省略,但是两端的斜线不可省略

user和password:用户名和密码。

Ⅱ、Connection接口:数据库连接对象

功能一,创建实现sql语句的类的对象

Statement

createStatement​()

获取传输器,用于将SQL语句发送到数据库。

PreparedStatement

prepareStatement​(String sql)

创建一个 传输器,用于将参数化的SQL语句发送到数据库。

功能二,管理事务

void

setAutoCommit​(boolean autoCommit)

将参数设为fales,开启事务

void

commit​()

提交事务 

void

rollback​()

回滚

Ⅲ、Statement接口:执行sql语句的对象,传输器

boolean

execute​(String sql)

//A可死kei偶特

可以执行任意sql 

int

executeUpdate​(String sql)

执行 INSERT , UPDATE ,或 DELETE声明,返回影响的行数。或者0,如SQL DDL语句的SQL语句。

ResultSet

executeQuery​(String sql)

//快瑞

执行DQL查询语句,select

Ⅳ、ResultSet接口:结果集对象,封装查询结果//瑞ra奥特

booleannext()将光标从当前位置向下移动一行。返回值为 false表示游标所在行无数据
     TgetXXX(int/String  num)该方法获取该行的内容,XXX代表获取数据的类型,有多种重载
Object()getObject(int/String  num)终极方法

参数类型大概两种:

  1. int:代表列的编号,从1开始,列如getString(1)
  2. String:代表列的名称。如getString(“id”)

当使用该类遍历数据库内容时,将数据库内容封装为对象,然后装入集合中,遍历集合

Ⅴ、PreparedStatement接口:Statement的子类,更强大的

sql注入:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接,会造成安全性问题。

PreparedStatement

prepareStatement​(String sql)

传入的sal语句参数使用?占位符 

使用PreparedStatement操作数据库的流程:

①导入jar包

②注册驱动

③获取数据库连接对象         

④定义sql:sql语句种参数使用?代替

⑤使用数据库连接对象获取传输器PrepareStatement(String sql):给 ? 赋值的方法:

        setXXX(参数一,参数二)//XXX代表?的的类型

                参数一:? 的位置(int类型),从1开始

                参数二:? 的值,字符串类型

        setObject() 终极方法

⑥执行sql,接收返回结果,不需要传递参数

booleanexecute() //A可死kei偶特可以执行任意sql 
intexecuteUpdate()执行 INSERT , UPDATE ,或 DELETE声明,返回影响的行数。或者0,如SQL DDL语句的SQL语句。
ResultSetexecuteQuery()执行DQL查询语句,select

⑦处理结果

⑧释放资源

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

S Y H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值