JDBC有这一篇就够了(万字JDBC附代码详解)

目录
1.JDBC的本质
2.JDBC的使用步骤
3.DriverManager对象
4.Connectioin对象
5.Statement对象
6.ResultSet对象
7.JDBC工具类
8.PreparedStatement类
9.JDBC管理事务

1.JDBC的本质

Java DataBase Connectivity(Java语言连接数据库)
JDBC是SUN公司制定的一套接口(interface)

在这里插入图片描述

2.JDBC的使用步骤

第一步:注册驱动(作用:告诉Java程序,即将要连接的是哪个品牌的数据库)
第二步:获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要关闭通道。)
第三步:获取数据库操作对象(专门执行sql语句的对象)
第四步:执行SQL语句(DQL DML…)
第五步:处理查询结果集(只有当第四步执行的是select语句的时候,才有这第五步处理查询结果集。)
第六步:释放资源(使用完资源之后一定要关闭资源。Java和数据库属于进程间的通信,开启之后一定要关闭。)

代码模版:

package testJdbc;

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

public class test2 {
   

	
	public static void main(String[] args) throws SQLException, ClassNotFoundException {
   
		//1、注册驱动
		String JDBCDriver = "com.mysql.jdbc.Driver";
		Class.forName(JDBCDriver);
		//2、连接数据库
		String url="jdbc:mysql://127.0.0.1:3306/school";  //链接数据的url
		String user="root"; //登录数据库的用户名
		String password="123456"; //用户的密码
		Connection conn = DriverManager.getConnection(url, user, password);
		Statement st = conn.createStatement();
		//一、查询sql
		String sql="select * from student";
	    ResultSet rs = st.executeQuery(sql);
	    
		System.out.println("SId"+" "+"Sname"+" "+"Sage"+" "+"Ssex");
		while (rs.next()) {
   
			System.out.println(rs.getString("SId")+" "+rs.getString("Sname")+" "+rs.getString("Sage")+" "+rs.getString("Ssex"));
		}
		
		
		/*//二、修改数据
		int update = st.executeUpdate("update student set Sname='xiaolizi' where SId=2");
		System.out.println("修改后成功的条数:"+update);
		*/
		
		//三、删除
		//st.execute("delete from student where SId='2'");
		
		
		//四、添加数据
//		String sql1 = "insert into student(SId,Sname,Sage,Ssex) values('4','郑','3','2')";
//		st.execute(sql1);
		
		
		//关闭连接
		conn.close();
		st.close();
		rs.close();
	}
}

3.DriverManager对象

3.1DriverManager对象简介

DriverManager是驱动管理对象,有两个功能,第一个功能是注册驱动,第二个功能是获取数据库连接

3.2DriverManager注册驱动

我们查看DriverManager类发现它有这么一个方法

static void registerDriver(Driver driver):注册与给定的驱动程序DriverManager

但是我们可以看到我们的注册驱动用到的是
String JDBCDriver ="com.mysql.jdbc.Driver";
Class.forName(JDBCDriver);
这样的两句代码,那么好像和我们的DriverManager无关。
其实不是,我们写代码使用的是Class.forName("com.mysql.jdbc.Driver")把Driver加载到JVM中,
类里面有静态代码块自动执行

public class Driver extends NonRegisteringDriver implements java.sql.Driver {
   
public Driver() throws SQLException {
   }
static {
   
try {
   
     DriverManager.registerDriver(new Driver());
   } catch (SQLException var1) {
   
throw new RuntimeException("Can't register driver!");
   }}}

看到这样的两句代码是不是就恍然大悟,原来在加载这个类的同时执行了同同步代码块,就是在注册驱动

再看下面一张图
在这里插入图片描述

我们可以看到这个jar包已经包含了这个驱动加载,如果我们没有写注册驱动,他也会自动加载驱动(也就是说Mysql5之后的版本驱动的jar包可以省略注册驱动的步骤)

3.2DriverManager获取数据库连接

方法:

public static Connection getConnection(String url,String user,String password)

参数:
*url:指定连接的路径
*语法:jdbc:mysql://ip地址(域名):端口号/数据库名
*例子:jdbc:mysql://localhost:3306/db3
*细节:如果连接的是本机mysql服务器且端口号为3306,可以省略jdbc:mysql:///数据库连接名

4.Connectioin对象

Connection:数据库连接对象,它的功能有:

1.功能:
获取执行sql的对象
Statement createStatement()
PreparedStatement prepareStatement(String sql)
2.管理事务:
开启事务:setAutoCommit(boolean autoCommit):调用该方法设置参数为false,即开启事务
提交事务:commit();
回滚事务:rollback();

5.Statement对象

它的作用的执行sql语句,对应的方法有:

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值