JDBC小结1

这篇博客总结了JDBC的基本使用,包括加载驱动、建立数据库连接、执行SQL语句以及处理结果集。通过示例展示了如何增加记录和按列号获取字段值。
摘要由CSDN通过智能技术生成

JDBC小结1

1.JDBC:java数据库连接技术
sun公司只提供接口与抽象类,具体实现由各大数据库厂商实现
各大厂商的实现称为驱动

sun公司提供的接口和抽象类:
1.DriverManger 驱动管理器
2.Connection 连接数据库
3.Statement 执行SQL语句
4.ResultSet 结果集

步骤

  • 1.加载驱动
  • 2.连接数据库
  • 3.通过Statement对象执行SQL
  • 4.通过ResultSet获取结果集
package com.kang;

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

/*
 * 1.加载驱动
 * 2.连接数据库
 * 3.通过Statement对象执行SQL
 * 4.通过ResultSet获取结果集
 */


public class MyJDBC {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
//	Driver driver = new com.mysql.cj.jdbc.Driver();//创建了一个驱动
//	DriverManager.registerDriver(driver);//加载
	//以上两行代码在Driver类中的静态代码块,通过反射机制加载类,自然会执行静态代码块中的代码,而且只执行一次,只会加载一次驱动    
	Class.forName("com.mysql.cj.jdbc.Driver");
	String url= "jdbc:mysql://localhost:3306/jdbc1?characterEncoding=UTF8&&serverTimezone=UTC";
	String user="root";
	String password="123456";
	Connection connection = 
			DriverManager.getConnection(url, user, password);
	String sql="create table student(id integer primary key auto_increment,"
			+ "name varchar(30),"
			+ "sex varchar(5),"
			+ "age integer)charset=utf8";
	Statement statement  =  connection.createStatement();
	//返回值代表有没有结果集,有为true,没有false(查询语句有结果集)
	boolean rt = statement.execute(sql);
	System.out.println("rt = "+ rt);
	
}
}
//通過java来创建Student这张表

表1
在这里插入图片描述

增加一条记录###


String sql =  "insert into student (name,sex,age) values ('张三','男','23')";
	 
	Statement statement = connection.createStatement();
boolean rt=	statement.execute(sql);
if(!rt) {//进来表示rt为false,为非查询语句
	//获取受影响的行数,对增、删、改是有效,如果是查询,返回值为-1,如果是执行DDL(数据库定义语言  对数据库、表结构进行操作 
    //建库、建表、修改表结构、删库、删表等等)返回0
	//所以返回结果不能作为成功失败的条件
int uc = statement.getUpdateCount();
System.out.println("uc = "+ uc);
}
}
}
//返回为1

查询验证:表2
在这里插入图片描述

根据列号获取记录的字段值


String sql =  "insert into student (name,sex,age) values ('张三','男','23')";
	String sql = "select * from student"; 
	
	Statement statement = connection.createStatement();
boolean rt=	statement.execute(sql);
if(!rt) {
int uc = statement.getUpdateCount();
System.out.println("uc = "+ uc);
}else {
	ResultSet  rs = statement.getResultSet();
	/*
	 * 返回值是一个boolean值,true代表还有记录,
	 * false代表已经获取完成
	 */
//	rs.next();
//	rs.beforeFirst();
	while(rs.next()) {
		//每执行一次循环体,就获取到了一条记录,获取记录的字段值
	int id =rs.getInt(1);
	System.out.println("id = "+id);
	String name = rs.getString(2);
	System.out.println("name = "+ name);
	String sex = rs.getString(3);
	System.out.println("sex = "+sex);
	int age = rs.getInt(4);
	System.out.println("age = "+ age);
	}
}

结果:在这里插入图片描述

按照字段名获取

while(rs.next()) {
		//每执行一次循环体,就获取到了一条记录,获取记录的字段值
		//如果有别名,此处应该使用别名
int id =rs.getInt("id");
	System.out.println("id = "+id);
	String name = rs.getString("name");
	System.out.println("name = "+ name);
	String sex = rs.getString("sex");
	System.out.println("sex = "+sex);
	int age = rs.getInt("age");
	System.out.println("age = "+ age);
	}
//执行DDL和DML的方法(没有结果集的)
//DDL返回值为0 DML返回受影响的行数
int rowCount=statement.executeUpdate(sql);

//执行有结果集的方法(查询)
 rs =statement.executeQuery(sql);
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值