JDBC入门

一、JDBC概述

JDBC( Java DataBase Connectivity ) 翻译过来就是Java数据库连接,其实就是通过Java语言操作数据库的一门技术。

1.JDBC的由来

由于数据库厂商提供的数据库驱动(操作数据库的jar包)各不相同,导致开发人员的学习成本十分的高。因此SUN公司提出了JDBC这套规范,用来统一访问数据的标准。JDBC本质上是一套接口,SUN要求所有的数据库厂商在设计驱动时,都要实现JDBC这套标准。因此开发人员只要学会JDBC这套接口,所有的数据库驱动就都会使用了。

2.JDBC包的介绍

JDBC主要是由java.sql 和javax.sql包组成的,并且这两个包已经被集成到J2SE的规范中了,这意味着,只要一个普通的java程序就可以使用JDBC。
需要注意的是,JDBC包中大部分都是接口,因此在开发数据库程序时,除了如上的两个包,还需要手动的导入具体的数据库驱动。

二、为什么要学习JDBC?

在Java开发中,我们不是通过CMD窗口来操作数据库,更多的是通过Java程序来操作数据库,而JDBC就可以实现这样一个操作。

三、JDBC开发步骤

(1)注册数据库驱动
在这里插入图片描述
所谓的注册驱动,就是让JDBC程序加载mysql驱动程序,并管理驱动。
驱动程序实现了JDBC API定义的接口和数据库服务器交互的功能,加载驱动是为了方便使用这些功能。

(2)获取连接之数据库URL
在这里插入图片描述
DriverManager.getConnection() 用于获取数据连接, 返回的Connection连接对象是JDBC程序连接数据库至关重要的一个对象。参数2和参数3分别是所连接数据库的用户名和密码。

JDBC入门_第1张图片
❤️ Tips:
当连接本地数据库,并且端口为3306,可以简写为如下形式:
在这里插入图片描述
(3)Statement传输器对象
在这里插入图片描述
Statement传输器对象用于向数据库服务器发送sql语句。
JDBC入门_第2张图片
该对象提供的主要方法有:
JDBC入门_第3张图片
JDBC入门_第4张图片
JDBC入门_第5张图片

(4)ResultSet结果集对象
ResultSet对象用于封装sql语句查询的结果,也是一个非常重要的对象。该对象上提供了遍历数据及获取数据的方法。
JDBC入门_第6张图片
在这里插入图片描述
该对象提供的主要的方法:
JDBC入门_第7张图片
JDBC入门_第8张图片
JDBC入门_第9张图片
JDBC入门_第10张图片
(5)释放资源
JDBC入门_第11张图片
此处释放资源必须按照一定的顺序释放,越晚获取的越先关闭。所以先关闭 rs对象,再关闭stat对象,最后关闭conn对象。
另,为了避免上面的程序抛出异常,释放资源的代码不会执行,应该把释放资源的代码放在finally块中.

四、JDBC 增删改查

代码:

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

import org.junit.Test;

import com.tedu.util.JdbcUtil;

/*
 * JDBC的增删改查
 * C:create 新增
 * R:Retrieve 查询
 * U:update 更新
 * D:delete 删除
 */
public class JdbcCRUD {
	/*1.新增:往account表中添加一个name为john,money为3000的记录*/
    @Test
    public void add() {
    	Connection conn = null;
    	Statement stat = null;
    	ResultSet rs = null;
    	try{
    	conn = JdbcUtil.getConn();//2.获取连接
    	//3.获取传输器
        stat = conn.createStatement();
        //4.执行SQL语句,返回执行结果
        String sql = "insert into account values(null,'lucy',3500)";
        int rows = stat.executeUpdate(sql);
    	//5.处理结果
        System.out.println("影响了"+rows+"行");
    	}catch(Exception e){
    		e.printStackTrace();
    	}finally{
    		//释放资源
			JdbcUtil.close(conn, stat, rs);
		}
    	
    }
    
    /*2.修改:将account表中name为join的记录,money修改为8000*/
    @Test
    public void update() {
    	Connection conn = null;
    	Statement stat = null;
    	ResultSet rs = null;
    	try{
    		conn = JdbcUtil.getConn();
    		stat = conn.createStatement();
    		String sql = "Update account set money = 1500 where name = 'lucy'";
    		int rows = stat.executeUpdate(sql);
    		
    	}catch(Exception e){
    		e.printStackTrace();
    	}finally{
    		JdbcUtil.close(conn, stat, rs);
    	}
    }
    /*3.查询 :查询account表中name为join的记录*/
    @Test
    public void find() {
    	Connection conn = null;
    	Statement stat = null;
    	ResultSet rs = null;
    	try{
    		conn = JdbcUtil.getConn();
    		stat = conn.createStatement();
    		String sql = "select * from account where name = 'lucy'";
    		 rs = stat.executeQuery(sql);
    		 while(rs.next()) {
    			 int id = rs.getInt("id");
    			 String name = rs.getString("name");
    			 double money = rs.getDouble("money");
    			 System.out.println("id: "+ id +"name: " + name + "money" + money);
    		 }
    	}catch(Exception e){
    		e.printStackTrace();
    	}finally{
    		JdbcUtil.close(conn, stat, rs);
    	}
    }
    	
    	
    
    /*4.删除:删除account表中name为join的记录*/
    @Test
    public void delete() {
    	Connection conn = null;
    	Statement stat = null;
    	ResultSet rs = null;
    	try{
    		conn = JdbcUtil.getConn();
    		stat = conn.createStatement();
    		String sql = "delete from account where name = 'lucy'";
    		int rows  = stat.executeUpdate(sql);
    		System.out.println("影响了"+rows+"行");
    	}catch(Exception e) {
    		e.printStackTrace();
    	}finally{
    		JdbcUtil.close(conn, stat, rs);
    	}
    	
}

你可能感兴趣的:(JDBC入门)