JDBC

1.JDBC简介

JAVA是通过 JDBC 技术实现各种数据库的访问,而JDBC 是Java数据库连接(Java DataBase Connctivity)技术简称,它充当于数据库的媒婆为为Java应用程序的各种数据库进行搭桥牵线,而且也可以把数据更持久的保存

2.JDBC的工作原理


  正如图所示 JDBC的几个重要的组成元素。 在最顶端的是我们自己编写的Java应用程序,二Java应用程序可以使用集成在jdk中的java.sql和javax.sql 的JDBC APL 来连接和操做数据库。

 在Java应用程序的下一级则是 JDBC APL 

JDBC APL  介绍:

JDBC APL 主要做三件事:与数据库连接,发送SQL语句,处理结果


Driver Manager类:装载驱动程序,并创建新的数据库连接提供支持。

Connection接口:负责连接数据库并承担担任传输数据的任务。

Statement接口:由Connection产生,负责执行sql语句。

ResultSet接口:负责保存和处理Statement执行后所产生的查询结果。


JDBC访问的四个重要的步骤

1.加载驱动,使用Class.forName()这个方法给指定的JDBC驱动加载到java程序中

语法:Class.forName(“JDBC驱动类的名字”)

2.与数据库建立连接

Driver Manage类是JDBC的管理层 ,它在用户和数据库中间,相当于是是一座桥,通过这座桥使用户来操做数据库,当调用

Connection()方法来接收数据库的连接。

语法:Connection  conn= DiverManager.getConnection(数据连接字符串,数据库用户名,密码);

注意:如果你的数据库哪里没有密码,就不要写了,对准自己要连接的数据库,以免发生数据库不存在的错误。

3.发生SQL语句,并的到返回结果。

数据库连接成功了,就该创建Statement接口对象,并把SQL语句传递到它所连接的数据库中,将ResultSet的结果集,它包含执行SQL语句查询结果。

示例:Statement stm = conn .createStatement();

sql语句:ResultSet rs = stm.executeQuery(sql语句)

例如:ResultSet rs = stm.executeQuery("insert  into student ( id name)   valuse(1 , "张三")");这样的,当我们插入的时候,

在C#使用占位符来代替所给的具体值比如:

string  sql ="insert  into student ( id name)   valuse({0} , "{1}")";

"{0}",下标是从0开始的而Java中也有占位符 但与C#不同,Java使用一个问号来占位

在Java使用占位符来代替所给的具体值比如:

string  sql ="insert  into student ( id name)   valuse(? , "?")";

Java中是这样的。

4.返回结果

使用while 来遍历数据,即输出出来。


  使用java方式连接数据库常见的几种错误

 注意  常见的错误有以下几类。
  JDBC 驱动类的名称书写错误,出现ClassNotFoundExceptio 异常。
  数据连接字符串,数据库用户名、密码书写错误,出现SQLException异常。数据库操作结束后,  没有关闭数据库连接,导致    仍旧占有系统资源。
  关闭数据库连接语句没有放到finally 语句块中,导致语句可能没有被执行。


Statement接口和ResultSet接口

                                                    Connection接口常用的方法

立即释放此Conection 对象的数据库和JDBC 资源          方法:void close( )

创建一个Statement 对象来将SQL 语句发送到数据库     方法:Statement createStatement( )  PreparedStatement

创建一个PreparedStatement 对象来将参数化的SQL 语句发送到数据库      方法:prepareStatement(String sql)

查询此Connection 对象是否已经被关闭                        方法:boolean isClosed( )


                                                       Statement 接口常用方法  

可以执行SQL 查询并获取ResultSet 对象                                          方法:ResultSet executeQuery (String sql )
可以执行插入、删除、更新的操作,返回值是执行该操作所影响前     方法:intexecuteUpdate (Stringsql)
可以执行任意SQL 语句                            方法:若结果为ResultSet 对象,则返回tnabooleanexecute (Stringsql)
若其为更新计数或者不存在任何结果,则返回false 

使用 Statement添加宠物
要创建 Statement对象让后调用execute(String sql )方法 executeUpdate(String sql )方法就可以了。
添加时注意:在写添加的时候,拼接时要用“+”连接,在拼接的时候使用要非常小心,尤其是引号,逗号和括号拼接,避免出错。

使用 Statement更新宠物

要创建 Statement对象让后调用execute(String sql )方法 executeUpdate(String sql )方法就可以了。



                                                       ResultSet接口常用的方法
  将光标从当前位置向下移动一行                              方法: boolean next( );
  将光标从当前位置向上移动一行                              方法:boolean previous( )  
  关闭ResultSet 对象                                                方法:void close( )  
  以int 的形式获取结果集当前行指定列号的值            方法:int getInt(String columnIabel)  
  以int 的形式获取结果集当前行指定列名的值            方法: int getInt(int columnIndex)  
  float的形式获取结果集当前行指定列号的值             方法: float getFloat(int columnIndex) 
  以float的形式获取结果集当前行指定列名的值          方法: float getFloat(String columnLabel) 
  以String的形式获取结果集当前行指定列号的值        方法: String getString(int columnIndex)
 以String的形式获取结果集当前行指定列名的值         方法:String getString(String columnLabel) 
 得到光标当前所指行的行号                                       方法:boolcan absolute(int row)  
 光标移动到row指定的行                                           方法:  int getRow( )  

PreparedStatement接口

PreparedStatement接口继承Statement 接口 ,PreparedStatement比普通的Statement  对象使用起来更加灵活,更有效率

PreparedStatement操做数据库的三个步骤

1,创建PreparedStatement对象

通过Connection 接口来PreparedStatement(String sql )来创建PreparedStatement对象

2,设置每个输入参数值

3,执行SQL语句


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值