概述:JDBC操作流程

课程目标

1、什么是JDBC?
2、Jdbc的执行原理
3、写程序

1、什么是JDBC?

java Data Base Connectivity(java数据库连接)
由一些接口和类构成的API,这些接口和类主要在java sql,javax sql包中
数据库系统的组成:数据,数据库,程序,操作系统,人员
此处我们要学的是数据库系统中的程序

2、Jdbc的执行原理(执行步骤:六句话)

2.1. 加载驱动
2.2. 建立连接
2.3 准备sql语句
2.4 执行sql语句
2.5 处理结果
2.6 断开连接,释放资源

3、写程序

3.1 导入jar包(常常会引用别人已经实现的方法,通常会封装成jar包)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2. 写程序
3.2.1 封装DBUtil 工具类
// 封装DBUtil 工具类
static Connection coon;
static String url;
static String user;
static String password;
static PreparedStatement ps;
static ResultSet rs;

static{
	url="jdbc:mysql://localhost:3306/student";
	user="root";
	password="root";
}

//1.2.加载驱动建立连接
public static ResultSet getConnection(){
	try {
		//1.加载驱动
		Calss.forName("com.mysql.jdbc.Driver");
	} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
	}
	try {
		//2.建立连接
		Connection coon = Drivermanager.getConnection(url,user,password);
	return conn;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
	}
}

//6.断开连接,释放资源
public static void close(){
	if(rs!=null){
		try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}
	if(ps!=null){
			try {
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	if(conn!=null){
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
}

//查看方法
//返回一个ResultSet类型的rs 可以通过while处理数据
public static ResultSet select (String sql,Object[] obj){
	conn = getConnection;//建立连接
	try {
		//准备sql语句
		PreparedStatement ps = conn.prepareStatement(sql);
		//给sql语句中的?占位符赋值
		for(int i = 0; i < obj.length; i++){
			ps.setObject(i+1, obj[i]);
		}
		//执行sql语句
		rs = ps.excuteQuery();
		return rs;
	} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
}

//修改方法(添加、删除、修改)
//返回一个int类型的信息修改的行数
public static int update(String sql,Object[] obj){
	conn = getConnection();
	try {
		PreparedStatement ps = conn.prepareStatement(sql);
		for(int i=0;i<obj.length;i++){
			ps.setObject(i+1, obj[i]);
		}
		int i = ps.executeUpdate();
		return i;
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		return 0;
	}
}
3.2.2 测试类
查询
public static void main(String[] args){
	//查询
	String sql="select * from user where u_name=?";
	Object[] obj={"大岚"};
	ResultSet rs = DBUtil.select(sql, obj);
	while(rs.next()){
		System.out.println(rs.getInt("u_id"));
	}
}

显示结果

在这里插入图片描述

删除修改:
public static void main(String[] args){
	//删除修改
		String sql1 = "delete from user where u_id=?";
		Object[] obj1={12};
		int update1 = DBUtil.update(sql1, obj1);
		System.out.println("修改的行数:"+update1);
}
删除前:

在这里插入图片描述

删除后:

在这里插入图片描述

添加修改
public static void main(String[] args){
	//添加修改
	String sql2 = "insert into user(u_name,u_age,u_sex,d_id) value(?,?,?,?)";
	Object[] obj={"小帅",24,"男",1};
	int update2 = DBUtil.update(sql2, obj);
	System.out.println("修改的行数:"+update2);
}
添加前:

在这里插入图片描述

添加后:

在这里插入图片描述

修改信息
public static void main(String[] args){
	//修改信息  把id为10的名字修改为“小小小”;
	String sql = "update user set u_name=? where u_id=?";
	Object[] obj = {"小小小",10};
	int update = DBUtil.update(sql, obj);
	System.out.println(update);
}
修改前:

在这里插入图片描述

修改后:

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值