1. JDBC连接数据库
  2. •创建一个以JDBC连接数据库的程序,包含7个步骤:
  3. 1、加载JDBC驱动程序:
  4. 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
  5. 这通过java.lang.Class类的静态方法forName(String  className)实现。
  6. 例如:
  7. try{
  8. //加载MySql的驱动类
  9. Class.forName("com.mysql.jdbc.Driver") ;
  10. }catch(ClassNotFoundException e){
  11. System.out.println("找不到驱动程序类 ,加载驱动失败!");
  12. e.printStackTrace() ;
  13. }
  14. catch(Exception e){
    e.printStackTrace() ;
    }
  15. 成功加载后,会将Driver类的实例注册到DriverManager类中。   
    当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception e 初始化,也就是实例 化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() .printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解)
  16. 2、提供JDBC连接的URL
  17. •连接URL定义了连接数据库时的协议、子协议、数据源标识。
  18. •书写形式:协议:子协议:数据源标识
  19. 协议:在JDBC中总是以jdbc开始
  20. 子协议:是桥连接的驱动程序或是数据库管理系统名称。
  21. 数据源标识:标记找到数据库来源的地址与连接端口。
  22. 例如:(MySql的连接URL)
  23. jdbc:mysql:
  24. //localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
  25. useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为
  26. gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。
  27. 3、创建数据库的连接
  28. •要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,
  29. 该对象就代表一个数据库的连接。
  30. •使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和
  31. 密码来获得。
  32. 例如:
  33. //连接MySql数据库,用户名和密码都是root
  34. String url = "jdbc:mysql://localhost:3306/test" ;
  35. String username = "root" ;
  36. String password = "root" ;
  37. try{
  38. Connection con = DriverManager.getConnection(url , username , password ) ;
  39. }catch(SQLException se){
  40. System.out.println("数据库连接失败!");
  41. se.printStackTrace() ;
  42. }
  43. 4、创建一个Statement
  44. •要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3
  45. 种类型:
  46. 1、执行静态SQL语句。通常通过Statement实例实现。
  47. 2、执行动态SQL语句。通常通过PreparedStatement实例实现。
  48. 3、执行数据库存储过程。通常通过CallableStatement实例实现。
  49. 具体的实现方式:
  50. Statement stmt = con.createStatement() ;
  51. PreparedStatement pstmt = con.prepareStatement(sql) ;
  52. CallableStatement cstmt =   con.prepareCall("{CALL demoSp(? , ?)}") ;
  53. 5、执行SQL语句
  54. Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute
  55. 1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句   ,返回一个结果集(ResultSet)对象。
  56. 2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或 DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等     3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的   语句。
  57. 具体实现的代码:
  58. ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
  59. int rows = stmt.executeUpdate("INSERT INTO ...") ;
  60. boolean flag = stmt.execute(String sql) ;
  61. 6、处理结果
  62. 两种情况:
  63. 1、执行更新返回的是本次操作影响到的记录数。
  64. 2、执行查询返回的结果是一个ResultSet对象。
  65. • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。
  66. • 使用结果集(ResultSet)对象的访问方法获取数据:
  67. while(rs.next()){
  68. String name = rs.getString("name") ;
  69. String pass = rs.getString(1) ; // 此方法比较高效
  70. }   (列是从左到右编号的,并且从列1开始)
  71. 7、关闭JDBC对象
  72. 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
  73. 明顺序相反:
  74. 1、关闭记录集
  75. 2、关闭声明
  76. 3、关闭连接对象
  77. if(rs != null){   // 关闭记录集
  78. try{
  79. rs.close() ;
  80. }catch(SQLException e){
  81. e.printStackTrace() ;
  82. }
  83. }
  84. if(stmt != null){   // 关闭声明
  85. try{
  86. stmt.close() ;
  87. }catch(SQLException e){
  88. e.printStackTrace() ;
  89. }
  90. }
  91. if(conn != null){  // 关闭连接对象
  92. try{
  93. conn.close() ;
  94. }catch(SQLException e){
  95. e.printStackTrace() ;
  96. }
  97. }

java中连接数据库相关推荐

  1. java中连接数据库失败,提示:Acc?¨s refus?? pour l'utilisateur: 'root'@'@localhost' (mot de passe: OUI)

    java中连接数据库失败,提示:Acc?¨s refus?? pour l'utilisateur: 'root'@'@localhost' (mot de passe: OUI) 这是由于连接数据库 ...

  2. jsp项目中连接数据库解决java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的问题

    jsp项目中连接数据库解决java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的问题 参考文章: (1)jsp项目中连接数据库解决java.l ...

  3. Java中JDBC连接数据库详解

    今天动力节点java学院小编分享的是JDBC连接数据库的相关知识,希望通过看过此文,各位小伙伴对DBC连接数据库有所了解,下面就跟随小编一起来看看JDBC连接数据库的知识吧. 一.JDBC连接数据库概 ...

  4. Redis在Java中的使用及连接数据库(附源码)

    Redis在Java中的使用及连接数据库(附源码) 引言: 本文主要分享了Redis如何在IDEA中部署,运行:模拟加入Redis的操作: 文章目录 Redis在Java中的使用及连接数据库(附源码) ...

  5. [转]JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

    首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对应的数据库表的实体类.Dao层是使用了Hibernate连接数据库.操作数据库(增删改查).Service层:引用对应的Dao数据库操 ...

  6. 在java中下列描述错误的是_在 JAVA 中 , 关于类的方法 , 下列描述错误的是 ()._学小易找答案...

    [多选题]价值的特性是 [简答题]输入任一字符串,统计其中数字,字母及其它字符个数 .(25分) [填空题]1.产品整体包括哪五个基本层次 2核心层次产品最基本的层次,是产品的_____ [单选题]纸 ...

  7. java中处理字符编码(网页与数据库)(转)

    首先声明一下,此文章时从网上转载的.如下的某些方法是确实管用,但是从中发现了有一点不足,就是原文笔者没考虑使用不同Web Server时出现的情况,比如文章里我用红色字体画出来的部分代码在Tomcat ...

  8. java中class.forname连接mysql数据库_数据库链接与 Class.forName()用法详解

    主要功能 Class.forName(xxx.xx.xx)返回的是一个类 Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类, 也就是说JVM会执行该类的静态代码段 ...

  9. stmt在java中的应用_JDBC技术基础总结转载,非原创

    JDBC的全称是Java DataBase Connectivity,即Java数据库连接.它是一套行业标准的API,可以在Java应用程序中与关系型数据库建立连接,并执行相关操作,例如Oracle, ...

  10. Java中几个主流的数据库连接池

    池(Pool)技术在一定程度上可以明显优化服务器应用程序的性能,提高程序执行效率和降低系统资源开销.这里所说的池是一种广义上的池,比如数据库连接池.线程池.内存池.对象池等.其中,对象池可以看成保存对 ...

最新文章

  1. DNS子域委派配置案例[转载]
  2. html中如何屏蔽一段代码,html中如何使用python屏蔽一些基本功能(示例代码)
  3. 微软等数据结构+算法面试100题全部答案集锦
  4. 【NLP】从0梳理1场NLP赛事!
  5. int指令01 - 零基础入门学习汇编语言64
  6. feign接口调用出现连接超时
  7. 怎么用计算机算立方数,计算器的使用方法
  8. (组合数学笔记)Pólya计数理论_Part.10_Pólya定理的推广——De Bruijn定理的母函数形式
  9. JAVA if语句快捷键_java编程基础 第一、第二章
  10. 算法89---图的最小生成树
  11. python中怎么调用sort_python中sort()方法的cmp参数
  12. 【雕虫小技第10篇】scratch编程技巧之源码素材快速导出为png或者svg格式
  13. iOS模拟器发送通知和UI测试
  14. 北京政协:电子垃圾回收是亟待破解的难题
  15. Elasticsearch学习4《Elasticsearch的各种查询》
  16. python字典生成器
  17. 【WinHex篇】WinHex制作特定区域镜像教程
  18. GB/T 20984-2022《信息安全技术 信息安全风险评估方法》解读
  19. [干货] 一文看懂numpy.nonzero() 与 numpy.argwhere()非零元素处理
  20. 计算机怎样禁止再添加新用户,Win10如何添加新用户?

热门文章

  1. 微信AES-128-CBC加密解密
  2. IE浏览器提示对象不支持“append”属性或方法
  3. Windows服务程序
  4. 自定义UITabBar的两种方式
  5. 【工具】JAVA 在单元读取文件并比较
  6. 数据挖掘方法论流程图
  7. dede首页如何调用单页文档内容标签
  8. 计算机网络数据链路层之其基础概述
  9. 网络层QoS分类和标记字段详解
  10. windows10快速搭建和部署docker、kubernetes开发环境