当前位置: 首页 > 编程日记 > 正文

JDBC使用步骤

JDBC编程步骤:

一、注冊载入JDBC驱动程序;

注冊载入驱动driver。也就是强制类载入:其注冊载入JDBC驱动有三种方法: 

方法一:Class.forName(DriverName); 当中DriverName=Driver包名。Driver类名; 
Oracle的DriverName=“oracle.jdbc.driver.OracleDriver“。 
SQLServer的DriverName=“com.microsoft.jdbc.sqlserver.SQLServerDriver“。
方法三:直接创建一个驱动对象:new oracle.jdbc.driver.OracleDriver()。

MySql的DriverName=“com.mysql.jdbc.Driver“; 

方法二:Class.forName(DriverName).newInstance(); 

代码完毕两个功能:第一,把驱动程序载入到内存里;第二。把当前载入的驱动程序自己主动去DriverManager那注冊,DriverManager是JDBC规范中唯一的Java类。

二、得到连接对象 Connection

要连接数据库,须要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。      
使用DriverManager的getConnectin(Stringurl , String username ,  String password )方法传入指定的欲连接的数据库的路径、数据库的username与password来获得。      
  比如://连接MySql数据库,username和password都是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();    
   }

 

1、DriverManager在JDBC规范中是类而不是接口。它是一个服务类,用于管理JDBC驱动程序,提供getConnection()方法建立应用程序与数据库的连接。当JDBC驱动程序载入到内存时,会自己主动向DriverManager注冊。此行代码发出连接请求,DriverManager类就会用注冊的JDBC驱动程序来创建到数据库的连接。

2、DriverManager.getConnection()是个静态方法。

3、DriverManager在java.sql包中。当我们调用sql包里不论什么一个类(包含接口)的不论什么一个方法时都会报一个编译时异常SQLException。这里我们使用一个try块后跟多个catch块解决。

4、方法參数URL:统一资源定位符。我们连接的数据库在哪台主机上(这个通过ip地址确定),这个主机有可能装了好几种数据库软件,比方SqlServer,mysql,oracle,那么我们连接哪个数据库要通过port号来确定。port号又称服务号监听号,sqlserver为1433,mysql为3306,oracle为1521:。下表列出经常使用数据库软件的url写法:

Oracle: jdbc:oracle:thin:@ip:1521:dbName;

MySql:jdbc:mysql://ip:3306:dbName; 
SQLServer:jdbc:sqlserver://ip:1443;databaseName=dbName;

5、当使用本机ip地址连接时须要关闭防火墙。否则连接不上,使用localhost或127.0.0.1则不用关闭防火墙。

三、创建 Statement对象

1、运行静态SQL语句。通常通过Statement实例实现。   

2、运行动态SQL语句。通常通过PreparedStatement实例实现。         
3、运行数据库存储过程。通常通过CallableStatement实例实现。


 详细的实现方式:        
Statement stmt = con.createStatement();

PreparedStatement pstmt=con.prepareStatement(sql);         

CallableStatement cstmt =con.prepareCall("{CALLdemoSp(? , ?

)}") ;

四、运行sql语句

 Statement接口提供了三种运行SQL语句的方法:executeQuery、executeUpdate 和execute     

 1、ResultSet       executeQuery(String sqlString):运行查询数据库的SQL语句。返回一个结果集(ResultSet)对象。  

 2、int    executeUpdate(String sqlString):用于运行INSERT、UPDATE或DELETE语句以及SQL DDL语句,如:CREATETABLE和DROP TABLE等       

 3、execute(sqlString):用于运行返回多个结果集、多个更新计数或二者组合的 语句。详细实现的代码:

            ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;     int rows = stmt.executeUpdate("INSERTINTO ...") ;  boolean flag =stmt.execute(String sql) ;   

五、处理结果 两种情况:

    1、运行更新返回的是本次操作影响到的记录数。

    2、运行查询返回的结果是一个ResultSet对象。    

    ResultSet包括符合SQL语句中条件的全部行。而且它通过一套get方法提供了对这些行中数据的訪问。

    使用结果集(ResultSet)对象的訪问方法获取数据:  

    while(rs.next()){      

    String name = rs.getString("name") ;  

   String pass = rs.getString(1) ; // 此方法比較高效     

 }      

(列是从左到右编号的,而且从列1開始)

六、关闭资源释放资源

  操作完毕以后要把全部使用的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() ; 

         }          

  }

 


相关文章:

在mac下搭建java开发环境

刚刚从windows系统转到使用mac系统,感觉不是特别熟悉,需要一定的适应时间。下面简单介绍一下mac下搭建基本的java开发环境。 1.安装jdk 安装jdk1.7后,发现不需要进行环境变量配置,直接在terminal中就能使用java和javac命令了。j…

IT项目管理入门知识

转载于:https://www.cnblogs.com/sophia194910/p/6854462.html

什么是BP神经网络?

BP人工神经网络原理

mac下的intellij idea常用快捷键

最近用mac进行开发,纪录下mac下的intellij idea的快捷键,方便以后查询。 command点到具体方法 查看调用 commandN查找类 commandshiftN查找文件 commandR替换 commandY 删除行 commandX剪切删除行 commandw 用光标圈起代码 commandD复制一行 com…

struct和union的大小问题

union类型以其中size最大的为其大小struct类型以其中所有size大小之和为其大小 #include<iostream>usingnamespacestd;intmain(){ typedef union {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too; DATE max; cout<…

利用BP神经网络教计算机识别语音特征信号(代码部分SL)

本图文已经更新&#xff0c;详细地址如下&#xff1a; http://blog.csdn.net/lsgo_myp/article/details/54094884

Redis相关命令

一、命令示例 1. KEYS/RENAME/DEL/EXISTS/MOVE/RENAMENX: #在Shell命令行下启动Redis客户端工具。/> redis-cli#清空当前选择的数据库&#xff0c;以便于对后面示例的理解。redis 127.0.0.1:6379> flushdbOK#添加String类型的模拟数据。redis 127.0.0.1:6379> set myk…

手把手 | 教你爬下100部电影数据:R语言网页爬取入门指南

前言 网页上的数据和信息正在呈指数级增长。如今我们都使用谷歌作为知识的首要来源——无论是寻找对某地的评论还是了解新的术语。所有这些信息都已经可以从网上轻而易举地获得。 网络中可用数据的增多为数据科学家开辟了可能性的新天地。我非常相信网页爬取是任何一个数据科学…

如何在OSCOMMERCE中安装中文语言包

步骤如下&#xff1a; 下载中文语言包&#xff0c;可以从以下连结下载 http://www.oscommerce.com/community/contributions,1054 安装步骤如下: (演示地址:http://www.MedOnclick.com) 1. 打开你下载的包含本语言包的压缩文件&#xff08;cosc-v0.3.zip&#xff09;。 2. 将…

利用BP神经网络教计算机识别语音特征信号(代码部分SLR)

本图文已经更新&#xff0c;详细地址如下&#xff1a; http://blog.csdn.net/lsgo_myp/article/details/54094884

Intellij Idea 生成serialVersionUID的方法

默认情况下Intellij IDEA是关闭了继承了java.io.Serializable的类生成serialVersionUID的警告。如果需要ide提示生成serialVersionUID&#xff0c;那么需要做以下设置&#xff1a; 1、setting->Inspections->Serialization issues&#xff0c;将serialzable class withou…

小牛生产小牛的问题解决集粹

问题&#xff1a;一只刚出生的小牛&#xff0c;4年后生一只小牛&#xff0c;以后每年生一只。现有一只刚出生的小牛&#xff0c;问N年后共有牛多少只&#xff1f;1.原始笨方法privateintComput(intyears) { //初始化为1头牛 int count 1; …

构建基于Chromium的应用程序(Winform程序加载Html页面)

chromium是google chrome浏览器所采用的内核&#xff0c;最开始由苹果的webkit发展而出&#xff0c;由于webkit在发展上存在分歧&#xff0c;而google希望在开发上有更大的自由度&#xff0c;2013年google决定自己开发webcore的分支&#xff0c;叫做Blink引擎&#xff0c;而后g…

机器就能绘制这样的作品,你还去写生吗?(续)

本文介绍了利用程序让计算机把输入图像呈现铅笔素描画和彩绘画效果的算法原理。

Apache工具类ToStringBuilder用法简介

ToStringBuilder比较适合在打日志时&#xff0c;输出参数的信息&#xff0c;特别是在参数为对象时&#xff0c;该工具类能够很方便的自动打印对象中的属性值。 package test; /** * * author zhengtian * time 2012-6-28 */ public class User { privat…

自然语言处理:汉语分词

NLPIR/ICTCLAS 汉语分词系统&#xff08;http://ictclas.nlpir.org&#xff09;PyNLPIR 是该汉语分词系统的 python 封装版&#xff08;http://pynlpir.readthedocs.io...&#xff09; 安装步骤&#xff1a;① pip install pynlpir② pynlpir update 官方文档的汉语分词示例&am…

再也不买仙剑正版盘了

奶奶的&#xff0c;好不容易心血来潮买了一回&#xff0c;windows 2003安装上蓝屏&#xff0c;在xp虚拟机上装报错&#xff0c;狗日的大宇&#xff0c;以后专门玩盗版气它 转载于:https://www.cnblogs.com/charie/archive/2008/02/21/1076772.html

利用BP神经网络教计算机进行非线函数拟合(代码部分单层)

单层BP神经网络 本图文已经更新&#xff0c;详细地址如下&#xff1a; http://blog.csdn.net/lsgo_myp/article/details/54425751

ps aux|grep

ps a 显示现行终端机下的所有程序&#xff0c;包括其他用户的程序。 2&#xff09;ps -A 显示所有程序。 3&#xff09;ps c 列出程序时&#xff0c;显示每个程序真正的指令名称&#xff0c;而不包含路径&#xff0c;参数或常驻服务的标示。 4&#xff09;ps -e 此参数的效果…

排序(一)归并、快排、优先队列等(图文具体解释)

排序(一) 0基础排序算法 选择排序 思想&#xff1a;首先&#xff0c;找到数组中最小的那个元素。其次&#xff0c;将它和数组的第一个元素交换位置。再次。在剩下的元素中找到最小的元素。将它与数组的第二个元素交换位置。如此往复&#xff0c;直到将整个数组排序。 【图例】 …

利用BP神经网络教计算机进行非线函数拟合(代码部分多层)

利用BP神经网络教计算机进行非线函数拟合&#xff08;代码部分多层&#xff09; 本图文已经更新&#xff0c;详细地址如下&#xff1a; http://blog.csdn.net/lsgo_myp/article/details/54425751

年年英雄会,岁岁侠客行

虽然今年工作比较忙&#xff0c;但还是坚持参加了CSDN组织的英雄会第二届。如去年所约&#xff0c;CSDN在持续发展着&#xff0c;而英雄会这一中国独特的程序员式的聚会&#xff0c;胜利地举办了第二届。 虽然不能成为MVB&#xff0c;但还是感谢CSDN记得发给我邀请。这份情意还…

Velocity判断空的方法

Velocity中没有null&#xff0c;那么怎么判断null呢 1、在velocity中&#xff0c;非null被认为是真的&#xff0c;所以&#xff0c;可以如下用&#xff1a; #if($!变量名)// 变量不为空的代码 #else// 变量为空的代码 #end

js对Dom操作

<div id"myWebPanelForm"style"width:400;height:200;display:none"><div id"WebPanel_Body"style"width:400;height:200;display:none">测试</div></div><script type"text/javascript">win…

利用BP神经网络教计算机进行非线函数拟合

利用BP神经网络教计算机进行非线函数拟合 本图文已经更新&#xff0c;详细地址如下&#xff1a; http://blog.csdn.net/lsgo_myp/article/details/54425751

phpstorm failed to create jvm:error code -6 解决办法 解决方法

phpStorm 软件打开运行提示 failed to create JVM的解决办法。 修改文件 D:\Program Files (x86)\JetBrains\PhpStorm 7.1.3\bin\PhpStorm.exe.vmoptions 把内存值改成标准值&#xff0c;文件全部内容如下&#xff1a; [plain] view plaincopy -server -Xms128m -Xmx512m -X…

maven jar包冲突常见报错及解决方法

见到如下错误&#xff0c;可以想到是不是jar包冲突 1.java.lang.NoSuchMethodError2.java.lang.ClassNotFoundException3.java.lang.NoClassDefFoundError解决办法 以一个错误为例&#xff1a;解决方法&#xff1a;1.首先定位到具体类。查到org.apache.httpHost对应的maven依赖…

[轉]如果把HTML當成飾品....

轉自:http://blog.onlyone.idv.tw/997.htm [轉]如果把HTML當成飾品.... 如果有一天&#xff0c;有個人把HTML做成耳環掛在耳朵上&#xff0c;那麼… 不過&#xff0c;在國外&#xff0c;就真的有人把這玩意拿出來賣了&#xff01; 在該購物網站的商品說明&#xff0c;還很KUSO這…

利用“栈”解决“出轨”问题

本图文利用“栈”的知识解决了“出轨”问题&#xff01;

a标签点击事件

οnclick"detail(this,${vo.id})" function detail(obj,id){ var lb $("#lb").val(); $(obj).attr("href","${rootUrl }app/wx/recipeOrder/getCoudetail?id"id"&lb"lb); document.location.hrefobj.href; }