【转】完整java开发中JDBC连接数据库代码和步骤
2019独角兽企业重金招聘Python工程师标准>>>
1 、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过java.lang.Class类的静态方法forName(String className)实现。
例如:
try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){ System.out.println("找不到驱动程序类 ,加载驱动失败!"); e.printStackTrace() ;
}
成功加载后,会将Driver类的实例注册到DriverManager类中。
2 、提供JDBC连接的URL
•连接URL定义了连接数据库时的协议、子协议、数据源标识。
•书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode= true :表示使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为 true 。characterEncoding=gbk:字符编码方式。
3 、创建数据库的连接
•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象, 该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username, String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 密码来获得。
例如:
//连接MySql数据库,用户名和密码都是root String url = "jdbc:mysql://localhost:3306/test" ; String username = "root" ; String password = "root" ; try{ Connection con = DriverManager.getConnection(url , username , password ) ; }catch(SQLException se){ System.out.println("数据库连接失败!"); se.printStackTrace() ; }
4 、创建一个Statement
•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下 3 种类型:
1 、执行静态SQL语句。通常通过Statement实例实现。
2 、执行动态SQL语句。通常通过PreparedStatement实例实现。
3 、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;
5 、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate 和execute
1 、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句 ,返回一个结果集(ResultSet)对象。
2 、 int executeUpdate(String sqlString):用于执行INSERT、UPDATE或 DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3 、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的 语句。
具体实现的代码:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6 、处理结果
两种情况:
1 、执行更新返回的是本次操作影响到的记录数。
2 、执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:
while(rs.next()){ String name = rs.getString("name") ; String pass = rs.getString(1) ; // 此方法比较高效
}
(列是从左到右编号的,并且从列 1 开始)
7 、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 明顺序相反:
1 、关闭记录集
2 、关闭声明
3 、关闭连接对象
if(rs != null){ // 关闭记录集 try{ rs.close() ; }catch(SQLException e){ e.printStackTrace() ; }
}
if(stmt != null){ // 关闭声明 try{ stmt.close() ; }catch(SQLException e){ e.printStackTrace() ; }
}
if(conn != null){ // 关闭连接对象 try{ conn.close() ; }catch(SQLException e){ e.printStackTrace() ; }
}
转载于:https://my.oschina.net/sherwayne/blog/99132
【转】完整java开发中JDBC连接数据库代码和步骤相关推荐
- 完整java开发中JDBC连接数据库代码和步骤
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...
- Java开发中JDBC连接数据库代码和步骤
JDBC连接数据库:创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lan ...
- java jdbc连接 代码块_java 中JDBC连接数据库代码和步骤详解及实例代码
•创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的 ...
- java开发中jdbc连接数据 库的操作代码
2019独角兽企业重金招聘Python工程师标准>>> JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要 ...
- 【代码调优】Java开发中总结的代码质量优化技巧,springboot企业级开发教程
SELECT * FROM db_user WHERE username='validuser' OR '1'='1' AND password='' 同样,攻击者可以为password提供如下字符串 ...
- java开发中JDBC连接MySQL
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...
- Java中JDBC连接数据库详解
今天动力节点java学院小编分享的是JDBC连接数据库的相关知识,希望通过看过此文,各位小伙伴对DBC连接数据库有所了解,下面就跟随小编一起来看看JDBC连接数据库的知识吧. 一.JDBC连接数据库概 ...
- 编写高质量代码:改善Java程序的151个建议 (第1章 Java开发中通用的方法和准则)
第1章 Java开发中通用的方法和准则 The reasonable man adapts himself to the world;the unreasonable one persists in ...
- 时间转换竟多出1年!Java开发中的20个坑你遇到过几个?
前言 最近看了极客时间的<Java业务开发常见错误100例>,再结合平时踩的一些代码坑,写写总结,希望对大家有帮助,感谢阅读~ 1. 六类典型空指针问题 包装类型的空指针问题 级联调用的空 ...
最新文章
- 运用xlib进行事件响应(X11 API)的小例子
- java旋转图片后边上变黑_Java旋转图像将背景的一部分变成黑色
- redis队列(list)
- PHP实时生成并下载超大数据量的EXCEL文件 1
- c语言case标号是连续的吗,在switch语句中,case后的标号只能是什么?_后端开发...
- jsp 中select 下拉选择框 el 三元运算符 如何选中与不选中
- 特殊人物请遵循公司工作的基本准则
- 用低代码+BPM赋能知识文档管理系统
- 2019年12月份统考计算机应用基础题库,2019年12月网络教育统考《计算机应用基础》模拟题...
- 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(10月17日~10月23日)...
- 深入JavaWeb技术世界15:通过项目逐步深入了解Mybatis(二)
- outlook 网页版使用公共邮箱发送邮件
- 【Visual C++】游戏开发笔记之六——游戏画面绘图(三)透明特效的制作方法
- 人工智能和AI到底是什么??浅谈人工智能和AI
- 【FI】SAP 付款及清账
- 电子词典的实现(一)
- 如何构建无服务器 WebSockets 平台
- Lind.DDD.Paging分页模块介绍
- python remi库官网_python库介绍-PySimpleGUI-简单的GUI开发工具
- OMI/Aura臭氧数据下载及绘图
热门文章
- mysql排序显示行数的语句_MySQL中sql语句count(*),orderby,随机数据展示。
- Spring Cloud Eureka 配置原理详解
- Linux性能优化方向及相关工具
- Java 常用负载均衡算法解析
- [HDFS Manual] CH4 HDFS High Availability Using the Quorum Journal Manager
- CArray动态数组
- oracle 11g(四)给oracle添加为系统服务(脚本)
- Office Web Apps所需证书的申请分配部署详解
- 字符串在编号查询中的应用示例及常见问题.sql
- SkyDrive Explorer 把微软25GB网络硬盘搬进“我的电脑”