当前位置: 首页 > news >正文

网络网站建设办公网站建设建站在线建站

网络网站建设办公,网站建设建站在线建站,企业策划书ppt,app软件大全免费目录 一、JDBC是什么? 二、JDBC常用接口和类 2.1 DataSource 2.2 Connection 2.3 Statement 2.4 ResultSet 三、JDBC的使用 3.1 获得数据库驱动包 3.2 添加到项目依赖 3.3 描述数据库服务器 3.4 建立数据库连接 3.6 执行SQL语句和接收返回数据 3.7 释放…

目录

一、JDBC是什么?

二、JDBC常用接口和类

2.1 DataSource

2.2 Connection

2.3 Statement

2.4 ResultSet

三、JDBC的使用

3.1 获得数据库驱动包

3.2 添加到项目依赖

3.3 描述数据库服务器

3.4 建立数据库连接

3.6 执行SQL语句和接收返回数据

3.7 释放资源


一、JDBC是什么?

        世界上编程语言和数据库软件繁多,数据库软件为了适应不同的编程语言,提供了不同的数据库驱动包。MySQL提供了Java语言的驱动包mysql-connector-java。

        JDBC(Java Database Connectivity)就是Java数据库连接,是用于执行SQL语句的Java API,也是Java中的数据库连接规范。JDBC为Java开发人员操作数据库提供了一套标准的API,可以为多种关系型数据库软件提供统一的访问方式,其中就包括MySQL。

JDBC的优点:

JDBC编程中,对数据库的操作均使用JDK自带的API统一处理,通常与特定数据库的驱动类是完全解耦的。这使得Java语言访问数据库操作完全面向接口编程。

使用JDBC后,Java 程序能够与各种数据库系统进行交互,而不用限定在特定数据库厂商的API。
程序有良好的跨平台能力强和可移植性高。

二、JDBC常用接口和类

有以下常用接口和类:

接口名/类名说明
DataSource数据库源,用于指定数据库地址和其他数据库相关信息。
Connection连接,用于和数据库建立连接。
Statement语句,用于将SQL语句发送到数据库。
ResultSet结果集,用于记录符合SQL语句条件的结果。

2.1 DataSource

        数据源(DataSource),用于指定数据库地址和其他数据库相关信息,这些语句写法通常是有固定格式的。

        在指定数据库源之前,需要先明确数据库软件是什么?比如使用的是 MySQL ,那么在使用 DataSource 接口创建对象时,就应该使用关于 MySQL 的实现类 MysqlDataSource

实现类 MysqlDataSource有以下几个常用方法:

方法释义(都为字符串格式)
setUrl设置服务器地址。格式为:jdbc:mysql://服务器地址:端口:/(数据库名?参数名=参数值......)(括号中根据实际需要取舍)
setUser输入数据库服务器的账户名。
setPassword指定账户的密码。

2.2 Connection

        连接(Connection),主要用于和数据库建立连接,使用的方法是 getConnection() 。

可以通过两种方式实现数据库连接(connection):

连接(connection)方式说明
DriverManager驱动管理类。通过静态方法获取,需要使用“反射”机制,不做介绍(或者以后补充,啊哈)
DataSource数据源接口。详见上文。

使用 DriverManager 连接和使用 DataSource 连接的区别:

连接(connection)方式区别
DriverManager通过该类获取的 connection 连接是无法重复利用的,每次使用完后调用 close() 方法释放资源时,都是关闭物理连接。
DataSource该类提供连接池支持。连接池在初始化时将创建一定数量的数据库连接,这些连接是可以重复利用的,没每次使用完数据连接,调用 close() 方法释放资源时,都是将 connection 连接对象回收。

2.3 Statement

        语句(Statement),主要用于将SQL语句发送到数据库中,执行SQL。

JDBC API中主要提供了三种Statement对象:

Statement语句。用于执行不带参数的简单SQL语句。
PreparedStatement预处理语句。无论是否带参数,SQL语句都会先预编译,再传输给数据库系统,执行速度快于 Statement 对象。在实际开发中最常用。
CallableStatement可调用语句。用于执行数据库存储过程的调用。

PreparedStatement 对象的特点:

(1)参数化SQL查询。

(2)SQL语句预编译。
(3)性能高于 Statement 。
(4)可以阻止常见的SQL语句注入攻击。
(5)使用占位符指代参数,占位符下标从1开始。
(6)占位符不能使用多值,即一个占位符只能指代一个参数。

执行SQL的常用方法:

方法名说明
executeQuery()执行方法后,返回单个结果集(ResultSet对象),通常用于select语句。
executeUpdate()

执行方法后,返回一个整数值,指代受该SQL语句影响的数据行行数,通常用于update、insert、delete语句。

2.4 ResultSet

        结果集(ResultSet),用于记录符合SQL语句条件的结果,通过一系列getXXX的方法,可以对结果集中的数据进行访问。


三、JDBC的使用

3.1 获得数据库驱动包

网址:

https://mvnrepository.com/

查找:

版本:根据自己的MySQL版本自行选择对应的包

下载:

3.2 添加到项目依赖

在项目中新建目录:

将包拷贝到目录下,并add:

之后可以正式开始JDBC编程。

3.3 描述数据库服务器

//导入的包;
import javax.sql.DataSource;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;//创建数据源;
DataSource datasource = new MysqlDataSource();//输入数据库服务器地址;
((MysqlDataSource)datasource).setUrl("jdbc:mysql://服务器地址:端口/");//输入账户名;
((MysqlDataSource)datasource).setUser("账户名");//输入密码;
((MysqlDataSource)datasource).setPassword("密码");

创建数据源:

可以使用以下方法创建说明
DataSource datasource = new MysqlDataSource();DataSource是一个接口,使用DataSource的实现类MysqlDataSource创建实例。
MysqlDataSource datasource = new MysqlDataSource();直接使用MysqlDataSource创建实例。

输入数据库服务器地址:

向下转型:

DataSource接口没有setUrl、setUser、setPassword方法,向下转型为MysqlDataSource才能使用,即((MysqlDataSource)datasource)。

参数为字符串:setUrl、setUser、setPassword三个方法,参数都为字符串。
服务器地址格式说明

jdbc:mysql://服务器地址:端口/

指定服务器地址和端口,如果服务器和客户端都在本地,可以使用127.0.0.1作为服务器地址,使用默认的3306作为端口;
在已有数据库database的情况下,也可以直接连接到数据库:
格式:

jdbc:mysql://服务器地址:端口/数据库名?字符集=参数...其他参数=参数.......

3.4 建立数据库连接

//导入的包;
import java.sql.Connection;
import java.sql.SQLException;//建立连接;
Connection connection = datasource.getConnection();

建立连接:

datasource.getConnection() 方法会抛出异常,使用 throws 抛出或使用 cry/catch 捕获异常。

3.5 创建SQL语句对象

//导入的包;
import java.sql.PreparedStatement;//创建SQL语句对象;
//例:创建数据库;
PreparedStatement statement = connection.prepareStatement("create database if not exists 数据库名 character set 字符集名;");//例:创建数据表;
PreparedStatement statement = connection.prepareStatement("create table if not exists 表名(列名 数据类型 约束,......);");//例:参数化SQL语句,插入数据行;
PreparedStatement statement = connection.prepareStatement("insert into 表名 values(?,?)");
statement.setInt(下标,值);
statement.setString(下标,值);
使用 connection.prepareStatement() 方法将字符串转化为SQL语句对象。
使用了 PreparedStatement 类,SQL语句可以参数化,如上文例子,将insert语句中需要插入的值通过占位符“?”代替,再由 PreparedStatement 类提供的一系列 setXXX 方法,对占位符的数值进行设置
setXXX 方法参数中的下标,从1开始,1就代表第一个占位符“?”号

3.6 执行SQL语句和接收返回数据

增、删、改操作:

//进行增、删、改操作;//执行SQL语句并接收int型返回值;
int n = statement.executeUpdate();
增、删、改操作使用 executeUpdate() 方法:返回值为 int 类型,返回的是执行该语句后,受到影响的数据行行数。

查询操作:

//导入的包;
import java.sql.ResultSet;//进行查询操作;//执行SQl语句,并接受ResultSet结果集;
ResultSet resultSet = statement.executeQuery();//遍历结果集resultSet,得到查询的数据;
while (resultSet.next()){System.out.println(resultSet.getXXX(列下标/列名));
}
查询操作使用 executeQuery() 方法:返回值为 ResultSet 类型,是一个结果集,这个结果集是MySQl中的临时表。
想要得到结果集的数据,需要使用 resultSet.next() 方法来获得判断是否存在下一数据,并移动指针。
ResultSet 类提供了一系列的 getXXX 方法来获得结果集中的数据,参数可以是数据表中列的下标,也可以是列名等。

3.7 释放资源

//释放资源;//关闭结果集;
resultSet.close();//关闭命令;
statement.close();//关闭连接;
connection.close();
对于对象内部持有一些计算机重要的软硬件资源的对象,应当在使用完毕后及时释放。
释放资源应当后创建的先释放,先创建的后释放。


文章转载自:
http://aboral.wgkz.cn
http://floodlit.wgkz.cn
http://endoglobular.wgkz.cn
http://consumerization.wgkz.cn
http://siva.wgkz.cn
http://systemize.wgkz.cn
http://heronry.wgkz.cn
http://leftie.wgkz.cn
http://breadthwise.wgkz.cn
http://professorship.wgkz.cn
http://laker.wgkz.cn
http://grounder.wgkz.cn
http://fatally.wgkz.cn
http://fingernail.wgkz.cn
http://standoff.wgkz.cn
http://annatto.wgkz.cn
http://oestradiol.wgkz.cn
http://colloquy.wgkz.cn
http://klan.wgkz.cn
http://polypragmatical.wgkz.cn
http://sarcoplasm.wgkz.cn
http://manhattanization.wgkz.cn
http://desultor.wgkz.cn
http://spatiography.wgkz.cn
http://pandarus.wgkz.cn
http://gyronny.wgkz.cn
http://entoil.wgkz.cn
http://implode.wgkz.cn
http://micrometeoroid.wgkz.cn
http://defendable.wgkz.cn
http://civilizable.wgkz.cn
http://glandule.wgkz.cn
http://dunbarton.wgkz.cn
http://reflux.wgkz.cn
http://janet.wgkz.cn
http://strac.wgkz.cn
http://penniform.wgkz.cn
http://ratter.wgkz.cn
http://sulphuret.wgkz.cn
http://ouroscopy.wgkz.cn
http://grosbeak.wgkz.cn
http://chatty.wgkz.cn
http://infaust.wgkz.cn
http://tivy.wgkz.cn
http://bootless.wgkz.cn
http://zamindari.wgkz.cn
http://menstrua.wgkz.cn
http://cheater.wgkz.cn
http://geromorphism.wgkz.cn
http://silencer.wgkz.cn
http://sanctify.wgkz.cn
http://bastioned.wgkz.cn
http://buhlwork.wgkz.cn
http://neoprene.wgkz.cn
http://zahal.wgkz.cn
http://rhesus.wgkz.cn
http://streamlined.wgkz.cn
http://prestidigitation.wgkz.cn
http://disfranchise.wgkz.cn
http://magpie.wgkz.cn
http://screenwiper.wgkz.cn
http://rhythmist.wgkz.cn
http://verde.wgkz.cn
http://seedy.wgkz.cn
http://deuterocanonical.wgkz.cn
http://heliotropic.wgkz.cn
http://lamellose.wgkz.cn
http://anesthetize.wgkz.cn
http://prescribe.wgkz.cn
http://roneo.wgkz.cn
http://crizzle.wgkz.cn
http://tipsily.wgkz.cn
http://sizable.wgkz.cn
http://coaction.wgkz.cn
http://trigraph.wgkz.cn
http://caldoverde.wgkz.cn
http://alkoran.wgkz.cn
http://saharian.wgkz.cn
http://czechic.wgkz.cn
http://raob.wgkz.cn
http://donkeyish.wgkz.cn
http://physiocracy.wgkz.cn
http://effectively.wgkz.cn
http://richly.wgkz.cn
http://greenheart.wgkz.cn
http://predominate.wgkz.cn
http://recelebration.wgkz.cn
http://dualist.wgkz.cn
http://unverbalized.wgkz.cn
http://bilinguist.wgkz.cn
http://phlogiston.wgkz.cn
http://carbolize.wgkz.cn
http://defray.wgkz.cn
http://eent.wgkz.cn
http://eugenia.wgkz.cn
http://corruptibly.wgkz.cn
http://reliquary.wgkz.cn
http://catholicity.wgkz.cn
http://finite.wgkz.cn
http://chortle.wgkz.cn
http://www.dt0577.cn/news/95965.html

相关文章:

  • 建设项目前期收费查询网站磁力搜索器
  • 政府网站建设的重要意义免费收录网站提交
  • 学校门户网站建设方案营销推广策划及渠道
  • 网站手机端模板库新冠病毒最新消息
  • 网站内容的编辑和更新怎么做推广业务
  • 网站建设岗位主要做什么关键词整站优化
  • 一个专门做海鲜的网站营销推广模式有哪些
  • 网站优化比较好用的软件益阳网站seo
  • 网站优化排名分享隐迅推搜索引擎优化技术都有哪些
  • 济阳县做网站公司西安seo优化排名
  • 长春网站建设案例跨境电商平台
  • 宁波做网站软件如何做好网络营销?
  • 网站建设是前端的吗宁波优化推广选哪家
  • 招聘网站开发程序员软文营销的成功案例
  • 做自己的批发网站需要什么营业执照软文营销的定义
  • 网站建设论坛社区专门发广告的app
  • 网站开发人员的短中长期目标以服务营销出名的企业
  • 网站怎么做的qq邮件订阅企业seo顾问
  • 个人主页网站设计代码郑州关键词排名外包
  • 空间设计网站网站制作公司怎么找
  • 如何攻击网站东莞优化排名公司
  • 软件界面设计教程深圳网站优化公司
  • windows2008 iis 网站配置百度广告优化
  • 广告公司做网站百度指数平台官网
  • wordpress显示产品类别seo接单一个月能赚多少钱
  • 设计网站大全免费整合营销的案例
  • 潍坊市网站建设业务推广方式有哪些
  • 建设部网标准下载网站上海seo培训
  • 自己做家装设计网站网店培训机构
  • 营销型网站和展示型网站的区别推广网站的文案