初识JDBC

来源:互联网 发布:apache闪退 编辑:程序博客网 时间:2024/06/07 21:26

今天刚学了JDBC,这是一个学习笔记。

首先我们要知道:

  JDBC是一套行业标准的API,可以在Java应用程序中与关系型数据库建立连接,并执行相关操作。

  JDBCJava数据基础连接,JavaDatabase Connectivity)是标准的Java访问数据库的APIJDBC定义了数据库的连接,SQL语句的执行以及查询结果集的遍历等。JDBC把这些操作定义为接口,位于包java.sql下面。如java.sql.Connectionjava.sql.Statementjava.sql.ResultSet等。各个数据库提供商在自己的JDBC驱动中实现了这些接口。

然后JDBC的基本功能:

                                     1.连接数据库

                                     2.向数据库执行查询数据动作

                                     3.向数据库执行更新数据动作

                                     4.向数据库执行插入数据动作

                                     5.向数据库执行删除数据动作

                                     6.执行存储过程

再然后上图:

其实,对于这个图我也不懂,不过领会精神嘛,对不对?(手动斜眼)。

我觉得上面的看不看,其实并不影响你写代码(手动滑稽)。


这里提前说明一下:我用的是Oracle,所以只有Oracle的示例。

连接过程详解:

准备工作:导入JDBC驱动

驱动在:你的数据库自带了jdbc驱动。当然,也可以在网上找写些稳定一些的。


找一个顺眼的copy到java项目(新建一个)文件夹里:

然后右键你的项目:


然后如图操作:

结果如下:

好!导入成功,接下来就是代码部分了。

私个人将JDBC连接步骤分为4步:

一、加载JDBC驱动

通过java.lang.Class类的静态方法forName(String className)实现。(推荐使用,还有两种,有兴趣的自己百度)

try {   Class.forName("oracle.jdbc.driver.OracleDriver");//字符串就是指定类的位置   System.out.println("驱动加载成功!");  } catch (ClassNotFoundException e) {   System.out.println("找不到驱动!");   e.printStackTrace();  }
成功加载后,会将OracleDriver类的实例注册到DriverManager类中,后面就可以直接调用其方法了。

二、获取数据库连接

通过DriverManager类创建数据库连接对象Connection。DriverManager类作用于Java程序和JDBC驱动程序之间,用于检查所加载的驱动程序是否可以建立连接,然后通过它的getConnection方法,根据数据库的URL、用户名和密码,创建一个JDBC Connection 对象。

URL书写方法》》协议名:IP地址(域名):端口:数据库名

例子:jdbc:oracle:thin:@localhost:1521:orcl

当然,用户名和密码可以直接写在URL后面,怎么写自己百度去。

try {String url = "jdbc:oracle:thin:@localhost:1521:orcl";//数据库服务器地址String username = "scott";//用户名String password = "123";//密码Connection con = DriverManager.getConnection(url , username , password ) ;} catch (SQLException e) {System.out.println("服务器连接失败!");e.printStackTrace();}

三、创建并执行sql语句

现在已经创建了数据库的连接,并连上数据库了,但是想要操作该数据库,需要用到sql语句,这里我们就需要一个传输器对象来传输sql语句到数据库中去执行。

要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:
                                                                                          1、执行静态SQL语句。通常通过Statement实例实现。
                                                                                          2、执行动态SQL语句。通常通过PreparedStatement实例实现。
                                                                                          3、执行数据库存储过程。通常通过CallableStatement实例实现。

并且java.sql.Statement身上有许多传输sql语句的方法:其中用的最多的是
                                                                                          1、executeQuery(String sql) :用于向数据发送查询语句。
                                                                                          2、executeUpdate(String sql):用于向数据库发送insert、update或delete语句
                                                                                          3、execute(String sql):用于向数据库发送任意sql语句

try {Statement stmt = con.createStatement();//创建传输器对象String sql = "insert into stu values (3,'张三',22,'男')";//要执行的sql语句int i = stmt.executeUpdate(sql);//结果} catch (SQLException e) {e.printStackTrace();}

四、对结果进行分析处理

这个看返回什么,以及需求对返回的结果进行处理。

System.out.println("插入了" + i + "条记录!");

这可能是最简陋的处理了,哇哈哈。


注意:别忘了关闭JDBC对象

stmt.close();con.close();

完整代码及处理结果:

处理前:

完整代码:

import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class Demo {public static void main(String[] args) {Connection con = null;Statement stmt = null;try {//1、加载JDBC驱动Class.forName("oracle.jdbc.driver.OracleDriver");//字符串就是指定类的位置System.out.println("驱动加载成功!");//2、获取数据库连接String url = "jdbc:oracle:thin:@47.94.92.152:1521:orcl";//数据库服务器地址String username = "scott";//用户名String password = "123";//密码con = DriverManager.getConnection(url , username , password ) ;System.out.println("连接数据库成功!");//3、创建并执行sql语句stmt = con.createStatement();//创建传输器对象String sql = "insert into stu values (3,'张三',22,'男')";//要执行的sql语句int i = stmt.executeUpdate(sql);//结果//4、对结果进行分析处理System.out.println("插入了" + i + "条记录!");} catch (ClassNotFoundException e) {System.out.println("找不到驱动!");e.printStackTrace();}catch (SQLException e) {e.printStackTrace();}finally{try {if(stmt != null) stmt.close();if(con != null) con.close();} catch (SQLException e) {e.printStackTrace();}}}}


运行后:



欢迎指正。



原创粉丝点击