JDBC

JDBC概述

JDBC是代表一组API,一个独立于特定数据管理系统,通用的SQL数据库存取和操作的公共接口,那么java代码中就通过驱动+接口+标准的sql语句实现和各种数据库的连接和操作。

开发步骤

1、把驱动jar包引入到项目中去

    <1>Build Path->Configure Build Path->Libraries->Add External JARS->选中...->ok
    <2>New Folder->赋值jar包到该目录下->右键 Build To Path

2、编写JDBC代码

  1. 注册驱动

  2. 获取连接,即登陆

  3. 传sql,执行sql

  4. 关闭连接(数据流和socket)

3版本问题

  • 新版本JDBC8.0的连接方式与旧版本不同,注册驱动不一样,url不一样

  • sql语句分为查询和更新两种操作,对应的返回值类型不一样

  • 利用PreparedStatement解决Statement的拼接、注入、bolg类型的问题

  • 利用PreparedStatement批处理操作,注意在url后加(&)参数:rewriteBathchStatements=true

public class TestJDBC {
	public static void main(String[] args) throws Exception {
		//1、注册驱动
		Class.forName("com.mysql.cj.jdbc.Driver");
//		Class.forName("com.mysql.jdbc.Driver");
		
		//2、获取连接,即登陆
		//协议:子协议://主机地址:端口号/文件路径
		String url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&rewriteBathchStatements=true";
		String user = "root";
		String password = "111111";
		Connection con = DriverManager.getConnection(url,user,password);
		
		//3、传sql,执行sql
		//sql的查询方式分为Update和Query
		
		Statement st = con.createStatement();
		//<1>Qyery
		String sql = "SELECT * FROM employees;";
		
		ResultSet res = st.executeQuery(sql);
		while(res.next()) {
			int id = res.getInt(1);//根据序号取结果
			String name = res.getString(2);
			int age = res.getInt(3);
			
			System.out.println("id: "+ id + ",name: "+ name +",age: " +age );
			
		}
		
		//<2>Update
		sql = "UPDATE employees SET NAME = 'wanfei' WHERE NAME ='kangdong';";
		int len = st.executeUpdate(sql); //更新了多少行
		System.out.println(len>0?"更新成功!":"更新失败");
		
		sql = "INSERT INTO employees VALUES(?,?,?);";
		PreparedStatement pst = con.prepareStatement(sql);//对sql数据进行预编译
		
		//批处理
		for(int i = 0;i<20;i++) {
			pst.setObject(1, i+3);
			pst.setObject(2, "afei"+i);
			pst.setObject(3, i);
			pst.addBatch();
		}
		int[] resSet= pst.executeBatch();
		for (int i : resSet) {
			System.out.println(i>0?"success":"fail");
		}
		//4、关闭连接
		pst.close();//关闭数据流
		st.close();//关闭数据流
		con.close();//关闭网络流socket
		
		
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yongfeicao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值