java JDBC编程流程步骤
JDBC:Java Data Base Connection
JDBC是用于运行sql语句并从数据库中获取新新的java API.
JDBC是用来(让我们的程序)通过网络来操作数据库的,作用非常重要;JDBC技术也是Java核心技术之中的一个。
是使用JDBC驱动程序訪问数据库的首选方式
通过JDBC操作数据库——步骤:
第1步:注冊驱动 (仅仅做一次)
第2步:建立连接(Connection)
第3步:创建运行SQL的语句(Statement)
第4步:运行语句
第5步:处理运行结果(ResultSet)
第6步:释放资源
使用JDBC第一步:载入驱动
注冊驱动有三种方式:
1. Class.forName(“com.mysql.jdbc.Driver”);
推荐这样的方式,不会对详细的驱动类产生依赖
2. DriverManager.registerDriver(com.mysql.jdbc.Driver);
会对详细的驱动类产生依赖
3. System.setProperty(“jdbc.drivers”, “driver1:driver2”);
尽管不会对详细的驱动类产生依赖;但注冊不太方便。所以非常少使用
使用JDBC第二步:建立连接
通过Connection建立连接,Connection是一个接口类。其功能是与数据库进行连接(会话)。
建立Connection接口类对象:
Connection conn =DriverManager.getConnection(url, user, password);
当中URL的格式要求为:
JDBC:子协议:子名称//主机名:port/数据库名?属性名=属性值&…
如:"jdbc:mysql://localhost:3306/test“
user即为登录数据库的username,如root
password即为登录数据库的密码,为空就填””
使用JDBC第三步:创建运行对象
运行对象Statement负责运行SQL语句。由Connection对象产生。
Statement st = connection.createStatement();
Statement接口类还派生出两个接口类PreparedStatement和CallableStatement,这两个接口类对象为我们提供了更加强大的数据訪问功能。
PreparedStatement能够对SQL语句进行预编译,这样防止了 SQL注入 提高了安全性。
PreparedStatement ps=connection.prepareStatement( "update user set id=? where username=?”); ————sql语句中庸 ? 作为通配符,变量值通过参数设入:ps.setObject(1, object);
而且预编译结果能够存储在PreparedStatement对象中。当多次运行SQL语句时能够提高效率。
作为Statement的子类,PreparedStatement继承了Statement的全部函数。
CallableStatement接口
CallableStatement类继承了PreparedStatement类,他主要用于运行SQL存储过程。
在JDBC中运行SQL存储过程须要转义。
JDBC API提供了一个SQL存储过程的转义语法:
{call<procedure-name>[<arg1>,<arg2>, ...]}
procedure-name:是所要运行的SQL存储过程的名字
[<arg1>,<arg2>, ...]:是相相应的SQL存储过程所须要的參数
使用JDBC第四步:运行SQL语句
运行对象Statement 或 PreparedStatement 提供两个经常使用的方法来运行SQL语句。
executeQuery(Stringsql),该方法用于运行实现查询功能的sql语句。返回类型为ResultSet(结果集)。
如:ResultSet rs =st.executeQuery(sql);
executeUpdate(Stringsql),该方法用于运行实现增、删、改功能的sql语句,返回类型为int,即受影响的行数。
如:int flag = st.executeUpdate(sql);
使用JDBC第五步:处理运行结果
ResultSet对象
ResultSet对象负责保存Statement运行后所产生的查询结果。
结果集ResultSet是通过游标来操作的。
游标就是一个可控制的、能够指向随意一条记录的指针。
有了这个指针我们就能轻易地指出我们要对结果集中的哪一条记录进行改动、删除,或者要在哪一条记录之前插入数据。一个结果集对象中仅仅包括一个游标。
另外,借助ResultSetMetaData ,可以将数据表的结构信息都查出来。
ResultSetMetaData rsmd= resultSet.getMetaData();
使用JDBC 第六步——释放资源
数据库资源不关闭,其占用的内存不会被释放,徒耗资源,影响系统。
文章改动自: 学习Java JDBC,看这篇就够了
java JDBC编程流程步骤的更多相关文章
- JDBC编程的步骤
一.进行JDBC编程的步骤大致如下: 1. 加载数据库驱动,通常使用Class类的forName()静态方法来加载驱动.如下代码: Class.forName(dirvirClass) 上面 ...
- Spring MVC 编程流程步骤
Spring MVC 编程流程步骤 1. 建立Maven工程 2. 添加Spring MVC依赖 <dependencies> <dependency> <groupId ...
- Java JDBC编程套路教程
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5847020.html 学习Java开发,一个必须掌握的知识点,就是数据库操作.当程序需要用到的数据达到一定程 ...
- 小菜鸟之java JDBC编程
JDBC技术 百度简介 : JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一 ...
- JDBC编程流程以及详细代码
加载驱动 打开连接 执行查询 处理结果 清理环境 import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Co ...
- Java JDBC下执行SQL的不同方式、参数化预编译防御
相关学习资料 http://zh.wikipedia.org/wiki/Java数据库连接 http://lavasoft.blog.51cto.com/62575/20588 http://blog ...
- JavaEE之JDBC编程[详解]
1.数据库简介 数据库(DB,Data Base ) 数据库管理系统(DBMS,Data Base Management System) 关系型数据库(RDB) 关系型数据库管理系统(RDBMS) S ...
- JDBC编程之程序优化
-----------------siwuxie095 首先下载 MySQL 的 JDBC 驱动,下载链接: https://dev.mysql.com/downloads/connector/j/ ...
- JDBC编程之数据更新
-------------------siwuxie095 JDBC 编程之数据更新 首先下载 MySQL 的 JDBC ...
随机推荐
- Linux 查看磁盘读写速度IO使用情况
# 查看io进程 命令:iotop 注:DISK TEAD:n=磁盘读/每秒 DISK WRITE:n=磁盘写/每秒. 注:标黄的可查看磁盘的读写速率,下面可以看到使用的io ...
- Lintcode481-Binary Tree Leaf Sum-Easy
481. Binary Tree Leaf Sum Given a binary tree, calculate the sum of leaves. Example Example 1: Input ...
- python 获取文件目录位置
test.py import os print('***获取当前目录***') print(os.getcwd()) print(os.path.abspath(os.path.dirname(__f ...
- 浅谈中大型企业CMDB的建设
作者:嘉维蓝鲸产品总监,贺勇 针对CMDB这个主题,之前一直想写一篇文章来表达我的看法,但是之前一直不敢写,为什么?因为CMDB这个主题属于一提大家都懂,但是深入讨论大家都晕菜的一个话题:在2018年 ...
- string部分方法
1.string.lastIndexOf() lastIndexOf 是从string末尾查找,但是返回值仍是首部的位置值. 2.string.replace() 放一个正则匹配会全部替换. 3.st ...
- fcgi-2.4.1 fastcgi开发包 make编译出错
fcgio.cpp: In destructor 'virtual fcgi_streambuf::~fcgi_streambuf()':fcgio.cpp:50: error: 'EOF' was ...
- 数据分析库之matplotlib
一.Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis 水平和垂直的轴线 轴标签 axisLabel 水平和垂直的轴标签 x轴和y轴刻度 tick 刻度标示 ...
- pandas中的空值处理
1.空值 1.1 有两种丢失数据: None: Python自带的数据类型 不能参与到任何计算中 np.nan: float类型 能参与计算,但结果总是nan # None+2 # 报错 # np.n ...
- Git:一个简单示例
初始状态:两个分支master/dev都只有一个文件readme.txt 待解决问题:在master分支新增文件,并且修改readme.txt文件,将上述操作同步至远程master分支,最后同步到de ...
- vscode wechat settings.json
// { // "window.zoomLevel": 0, // "editor.fontSize": 16, // "files.associat ...