Java:JDBC的基本使用
2018-06-18 00:43:36来源:未知 阅读 ()
本文内容:
- 什么是JDBC
- JDBC的使用
首发日期:2018-05-27
什么是JDBC:
- JDBC全称Java Database Connectivity
- JDBC可以通过载入不同的数据库的“驱动程序”而与不同的数据库进行连接。
JDBC的优点:
- 使用的驱动不同,即可连接不同的数据库。
- 使用同一套操作来操作不同的数据库
- 如果每一个数据库java都制订一套连接方式,那么当不同的数据库更新的时候,java也需要更新自己的代码,而使用jdbc,使用同一套代码来操作,使用不同的驱动程序(驱动程序由数据库厂商提供)来连接,这使得可以连接不同的数据库。
JDBC的使用:
导入对应数据库的驱动类:
- 1.在对应的数据库厂商网站获取对应的jar包
- 2.将对应的jar包添加到引用。
- 在eclipse中可以将jar包导入一个文件夹后,右键Build Path -> add to path就可以将jar包添加到当前项目引用的库里面。
加载驱动:
PS:
- 在上面的forName中,执行了注册驱动,注册驱动这个代码被定义在驱动类的静态代码块中。
- 对于一些新手,使用的方法可能是,对于这种情况,那么他可以使用driver或DriverManager.getConnection来获取数据库连接对象;而对于另外一些新手,他们可能会使用,然后再通过DriverManager.getConnection来获取数据库连接对象。但本质上,这是一种浪费,因为静态代码块中已经静态生成了一个驱动对象并使用DriverManager.registerDriver注册了,所以上面两种都是浪费。使用forName后,可以使用DriverManager.getConnection来获取数据库连接对象。
获取连接:
- 在考虑使用forName节省资源后,下面介绍的获取连接的方法使用的是DriverManager.getConnection
- getConnection需要参数
- url:定义了连接的数据库的路径
- jdbc协议:数据库子协议:主机[:端口][/连接的数据库] 【[]代表可选的】
- 例如:jdbc:mysql://localhost:3306/test
- 配置流Properties:定义了连接数据库的方式,一般至少包含user和password
- 不使用配置流时,传入user和password
- 如果使用匿名登录,则只传入url
执行SQL语句:
JDBC执行SQL语句的方式主要有三种:
1.使用Statement
执行sql语句
2.使用PreparedStatement执行sql语句
3.使用CallableStatement
执行sql语句
上面的Statement、PerPareStatement、Callalestatement都可以使用连接对象来获取。
- 使用
Statement
执行语句 Statement对象的获取可以使用createStatement()来获取
- 获取
Statement对象后,对于查询类的sql语句使用:executeQuery(sql),sql是一个字符串sql语句,返回结果是一个结果集【如果获取结果看下面的结果部分】
对于更新类(插入、修改、删除、更新)的语句使用:executeUpdate(sql),sql是一个字符串sql语句,返回结果是一个整数(受影响的行数)
- 使用PreparedStatement执行语句
PreparedStatement对象的获取可以使用prepareStatement(sql)来获取,注意的是需要传入一条sql语句
- PreparedStatement的功能类似
Statement,但不同的是PreparedStatement可以使用占位符,它是由占位符标识需要输入数据的位置,然后再逐一填入数据。当然,PreparedStatement也可以执行没有占位符的sql语句
使用占位符后,使用setString或setInt等方法来设置每一位的数据。【有各种对应数据类型的设置方法,比如还有
setFloat
】setXXX方法中,第一个参数是位置,第二个是数据
- 获取
Statement对象后,对于查询类的sql语句使用:executeQuery(),返回结果是一个结果集【如果获取结果看下面的结果部分】
对于更新类(插入、修改、删除、更新)的语句使用:executeUpdate(),返回结果是一个整数(受影响的行数)
补充:
对于有sql缓存池的数据库,PreparedStatement的效率要高于
Statement【有兴趣的自查】
- 使用
CallableStatement
执行语句 CallableStatement
主要用来调用存储过程- 对于输出参数,需要使用registerOutParameter注册,第一个参数是位置,第二个参数是参数类型(使用Types.xxx)
- 注册之后,想要获取输出参数,可以使用
CallableStatement对象自身的getXXX方法来获取
定义的存储过程示例:
使用:
获取返回:
- 返回结果是一个结果集,它有一个光标指向结果的每一行,最开始它不指向结果,第一次执行next()后,它指向第一行结果,继续执行next(),他会继续指向下一行。next的返回结果是布尔值,它可以用来判断是否有下一行。
- 对于每一行结果,可以使用getXXX方法(参照下面)来获取某一列的结果,getXXX方法的参数可以为字段名,也可以为索引号(从1开始)
关闭连接:
- 后开启的需要先关闭,Statement、Connection、ResultSet都是需要关闭的
- 注意:关闭之前需要留心检查是否为null
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash