数据库之:JDBC开发步骤及常用接口介绍

1.什么是jdbc

java database connectivity:java 连接数据库技术

sun公司简化开发,设计的一套数据库连接管理规范,主要由一些列接口组成。

实现连接数据库的条件:

  • jdbc接口:java包(java.sql, javax.sql)
  • 驱动:由各自数据库厂商提供,驱动就是对jdbc接口的实现

2.jdbc开发的步骤

  •     注册驱动(通过Drivermanager管理驱动:知道是哪个数据库)
  •     建立连接(Connection)
  •     发送sql命令
  •     获取相应处理结果
  •     释放资源

具体步骤:

1)注册驱动

 连接的是哪个数据库(oracle,mysql......),就把这个数据库的驱动Driver交给DriverManager来进行管理。

                      DriverManager.redisterDriver(new Driver());

 DriverManager(类)

 驱动管理器

 作用:注册和管理驱动程序

            获取连接对象

 方法1:

此方法不可取:在加载Driver类时,会执行Driver类中的静态代码块,自动注册一次,然后register()方法会再注册一次;(类被加载了一次后,再次new不会执行静态代码块里的内容)。

           DriverManager.registerDriver(new Driver());

 

方法2:

一般使用此方法

         Class.forName("com.mysql.jdbc.Driver");

 

2)建立连接

 使用TCP连接,来连接具体的数据库。

                    Connection conn = DriverManager.getConnection(
                        “jdbc:mysql://localhost:3306/bd888?useSSL=true”,
                        "root",
                        "root");

Connerction(接口)

代表与数据库服务的连接

作用:作为数据传输的通道,创建Statement对象。


conn.setAutoCommit(aitoCommit);//设置事务自动提交
conn.commit();//提交事务
conn.rollback();//回滚事务

conn.createStatement();//创建Statement实现类对象
conn.prepareStatement(sql);//创建prepareStatement对象,prepareStatement是Statement接口的子接口
conn.prepareCall(sql);//创建prepareCall对象,prepareCall是Statement接口的子接口,用于调用存储过程


//方法:DatabaseMetaData getMetaData();
//元数据:解释数据的数据
DatabaseMetaDate md = conn.getMetaData();//获取元数据实现对象
String dpn = md.getDatabaseProductName();//获取数据库产品的名字
String driverName = md.getDriverName();//获取驱动的名字
String url = md.getURL();//获取URL
String userName = md.getUserName();//获取用户名

 

3)发送sql命令

                    String sql = "select * from student";    //sql语句
                    //发送sql命令    接收响应
                    Statement stmt = conn.createStatement(); //创建Statement对象
                    ResultSet res = stmt.execute(sql);   //接收结果集

Statement接口

用于发送sql指令

子接口:  PrepareStatement         CallableStatement         

Statement接口中常用方法:     

  • execute:发送任意sql命令,返回boolean类型
  • executeQuery:发送查询命令,返回ResultSet类型
  • executeUpdate:发送增删改查和DDL语句,返回值为int,影响的行数
  • executeBatch:发送批处理命令,返回值int[ ]       

ResultSet(接口)

结果集,底层封装指向结果集的游标

数据库之:JDBC开发步骤及常用接口介绍_第1张图片

ResultSet接口常见方法:

  • next():用于移动游标,返回值为boolean,为true则当前行有值,false则当前行没有值。
  • getX():用于获取字段值,getString、getInt、getLong.....
  • ResultSetMetaData rsmd = rs.getMetaData();

代码示例:

package test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.mysql.jdbc.Driver;

public class Test {

	public static void main(String[] args) {
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			//1.注册驱动
			DriverManager.registerDriver(new Driver());
			//2.建立连接
			conn = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/bd1808?useSSL=true", 
					"root", 
					"root");
			//3.发送sql命令
			String sql = "select * from student";
			//发送sql命令以及接收响应
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			//4.获取响应并处理
			while(rs.next()){//获取记录
				//逐列获取数据
				int sid = rs.getInt("sid");
				String sname = rs.getString("sname");
				int cid = rs.getInt("cid");
				System.out.printf("sid:%d,sname:%s,cid:%d\n",sid,sname,cid);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			//5.释放资源
			try {
				if(rs!=null){
					rs.close();
				}
				if(stmt != null){
					stmt.close();
				}
				if(conn != null){
					conn.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

}

 

 

 

 

 

 

 

你可能感兴趣的:(数据库之:JDBC开发步骤及常用接口介绍)