JDBC编程

本文介绍了JDBC编程的基本概念,包括其作为Java操作数据库的统一API的作用,如何通过驱动程序统一不同数据库的API,以及在Java程序中使用MySQL数据库的具体步骤,涉及DataSource创建、安全连接、PreparedStatement防止SQL注入等内容。
摘要由CSDN通过智能技术生成

jdbc编程是什么

怎么样通过jdbc操作数据库?

一. JDBC编程(Java DataBase Connectivity):

1.含义

说白了就是通过java代码来操作数据库。

数据库编程需要数据库服务器提供api(application programming interface应用程序编程接口)(以一组类/函数形式)供程序员调用来完成一些功能。不同的数据库提供不同的api,这会提高学习成本。这时候JDBC的出现规范了一套api,程序员只需要了解这一套api就可以操作各种各样的数据库了。 

2.怎么统一api的?

通过驱动程序(软件,数据库厂商提供的)使不同的数据库原生的api转换成符合JDBC要求的api。

二.怎样在程序中操作mysql数据库?

   准备工作:

1.先在中央仓库下载驱动包:

2.再把驱动包引入项目里:

新建一个目录,把jar复制到当前项目目录中。

3.再把这个目录标记成“库”。

准备工作完了,开始写代码:

4.

(1) 创建DataSource(数据库服务器所在位置)。

 // 选择向下转型而不选择下面这样写的原因:

为了不让MysqlDataSource这个类名不扩散到其他地方,后续如果要修改为其他数据库,代码改动较小。

// Url(其实是网址):表示网络上的资源位置。mysql是客户端服务器结构的程序,通过网络交互。明确了服务器在网络上的位置才能对服务器进行访问。

//  jdbc:mysql://127.0.0.1:3306/java411?characterEncoding=utf8&useSSL=false:

jdbc:mysql:表示对mysql这个数据库进行操作

127.0.0.1:ip地址,表示主机所在位置。只不过127.0.0.1是个特殊的ip地址,叫“环回ip”。每个机器都有环回ip(即127.0.0.1),只要把消息发到这个ip上就相当于自己给自己发消息,因为jdbc程序和mysql服务器在同一台主机上,所以使用环回ip即可。

3306:mysql服务器默认的端口号。(相当于日常生活中收件人的电话)

java411:表示访问mysql服务器上的哪个database。

useSSL=false:和mysql服务器通信过程中是否需要加密。

?characterEncoding=utf8&useSSL=false:用“ ?”和 “ & ”表示访问资源时需要的参数。

root:mysql管理员的名称,为mysql默认的用户名。

1234:mysql的密码。

(2)建立和数据库服务器之间的连接

(3)构造sql

//不直接发送给MySQL,而是通过preparedStatement来发送sql:

因为sql可能会存在一些语法错误,如果mysql需要对多个客户端的sql进行解析校验,开销会很大。而通过preparedStatement先解析检查sql是否有误,检查完毕后会得到结构化数据,直接把结构化数据发给数据库服务器,服务器就省下了这份解析的工作。

(4)把sql发给服务器

//excuteUpdate:针对insert update dalete(写)

//excuteQuery :针对select(读)

(5)释放资源

//程序通过代码与服务器通信需要消耗一定的硬件/软件资源,在程序结束时就需要告知服务器释放这些资源/客户端也需要释放这些资源。

另外:

能否让用户输入学号姓名?

这样不好,首先这种写法不够美观,而且可能会导致sql注入攻击,例如:name输入‘);drop database xxx; 。

所以preparedStatement提供了另一种方式:

?表示占位符

查询的写法:

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值