栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDBC连招详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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();
		}
	}


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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665808.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号