浅谈JDBC

JDBC是什么

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,提供了统一的标准接口,程序可以通过JDBC API和不同关系数据库管理系统交互。
在这里插入图片描述
JDBC API包括以下常用的接口

接口名称作用
JDBC DriverJDBC驱动
java.sql.Connection连接
java.sql.Statement静态处理块
java.sql.PreparedStatement预处理
java.sql.ResultSet结果集
java.sql.ResultSetMetaData结果集元信息

JDBC驱动
JDBC驱动程序是一组Java类,它们实现JDBC接口以与特定数据库进行交互,由数据库供应商提供。例如MySql,Oracle,SQL Server都提供了JDBC驱动。想要使用,需要把对应的jar包导入项目即可。
连接
连接数据库,我们需要知道数据库的类型地址对应的端口号,以及用户名和密码。可以通过DriverManager类的静态方法,获取连接。

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

处理块
处理块分为两种:java.sql.Statement 静态处理块,java.sql.PreparedStatement预处理
预处理块通过?号的方式防止SQL注入,并且由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。
静态处理块

String sql = "update stu_user set uname = '张三' where uuid = 123";
 //获取处理块 (打包发送)
 Statement state=conn.createStatement();
 //执行完毕得到结果,接收结果集
ResultSet result=state.executeQuery(sql);

预处理块
从1开始

String sql = "update stu_user set uname = ? where uuid = ?";
state=conn.prepareStatement(sql);
//为?赋值
state.setString(1, "张三");
state.setObject(2, 123);
state.executeQuery()

例子

/*
 * java连接数据库基本流程:
 * 	前提: 获取数据库厂商的包
 *	1.加载驱动(选择哪一个数据库)
 *	2.获取连接(与数据库连接上)
 *	3.准备sql 
 *	4.获取处理块 (打包发送)
 *	5.执行完毕得到结果,接收结果集
 *	6.处理数据
 *	7.关闭
 */
public class JDBCSimpleDemo01 {
	 public static void main(String[] args) throws ClassNotFoundException, SQLException {
		 //1.加载驱动(选择哪一个数据库)
		 Oracle驱动
		 Class.forName("oracle.jdbc.OracleDriver");
		 MySql驱动
		 Class.forName("com.mysql.jdbc.Driver");
		 //2.获取连接(与数据库连接上)
		 Oracle连接方式
		 Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "SCOTT", "TIGER");
		 mysql连接方式
		 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/project", "root", "123456");
		 //3.准备sql 
		 String sql="select empno,ename from emp";  //注意:sql语句后面不要添加分号;
		

//4.获取处理块 (打包发送)
		静态处理块
		 Statement state=conn.createStatement();
		 //5.执行完毕得到结果,接收结果集
		 ResultSet result=state.executeQuery(sql);
		 预处理块
		 PrepareStatementstate=conn.prepareStatement(sql);
		 ResultSet result = state.executeQuery()
		 
		 //6.处理数据
		 while(result.next()){
			 int i=result.getInt(1);
			 String name=result.getString("ename");
			 System.out.println(i+"-->"+name);
		 }
		 //7.关闭
		 result.close();
		 state.close();
		 conn.close();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值