JDBC连招详解

JDBC是什么?

Java Data Base Connectivity(Java数据库连接),是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口。

JDBC有什么用?

我们用JAVA就能连接到数据库,并对数据进行增删查改一系列操作。

JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。

JDBC程序编写过程

一、加载JDBC驱动程序

连接数据库之前,需要先将目的数据库的驱动连接到JVM(相关驱动包请至厂商官网下载),这里用的是Mysql的驱动包,将驱动包导入工具软件内

这里通过java.lang.Class类的静态方法forName(String  className)实现。   

 try{   
    //加载MySql的驱动类   
    Class.forName("com.mysql.jdbc.Driver") ;   
    }
 catch(ClassNotFoundException e){   
    System.out.println("找不到驱动程序类 ,加载驱动失败!");   
    e.printStackTrace() ;   
    }  

二、 连接数据库

        要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。

try{   
    Connection con =  DriverManager.getConnection(url , username , password ) ;   
     }
catch(SQLException e){   
    System.out.println("数据库连接失败!");   
    e.printStackTrace() ;   
    }   

  使用DriverManager的静态方法getConnection()来获取该对象,该方法的三个参数为连接数据库所必须的三个要素,即连接的数据库的路径、数据库的用户名和密码。

其中用户名和密码请自行填充

URL:

 

JDBC URL的标准由三部分组成,各部分间用冒号分隔。

  • 协   议: JDBC URL中的协议总是jdbc

  • 子协议:子协议用于标识一个数据库驱动程序

  • 子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息。包含主机名(对应服务端的ip地址),端口号,数据库名

三、创建Statement对象

要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:   

  1. 执行静态SQL语句。通过Statement实例实现。   
  2. 执行动态SQL语句。通过PreparedStatement实例实现。   
  3. 执行数据库存储过程。通过CallableStatement实例实现。   

常用的是PreparedStatement

具体实现:

Statement stmt = con.createStatement() ;   
PreparedStatement ps = con.prepareStatement(sql) ;   
CallableStatement cs = con.prepareCall("{CALL demoSp(? , ?)}") ;   

四、执行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(String sql) ;   
int rows = stmt.executeUpdate(String sql) ;   
boolean flag = stmt.execute(String sql) ;   

五、结果处理

执行sql语句一般有两种情况,

  1. 执行更新返回的是本次操作影响到的记录数。   
  2. 执行查询返回的结果是一个ResultSet对象。

ResultSet包含符合SQL语句中条件的所有行,可使用结果集(ResultSet)对象的访问方法获取数据:   

if(rs.next()){     
    String name= rs.getString(1) ;  
     }   

这里只是简单的获取了单行单列的数据,查询多行多列的数据,请进行遍历查询。

六、关闭JDBC

 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源

public static void closeResource(Connection conn,Statement ps,ResultSet rs){
		try {
			if(ps != null)
				ps.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		try {
			if(conn != null)
				conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		try {
			if(rs != null)
				rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}


这套不解释连招,你学会了吗?

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>