JDBC的基本知识

一、基本概念

JDBC:官方定义的一套操作所有关系型数据库的规则,即接口各个数据库厂商去实现这套接口,提供数据库驱动jar包。可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类

二、使用JDBC操作数据库的基本步骤

 1.加载JDBC驱动

2.连接数据库

3.发送SQL语句

4.处理结果集

5.关闭数据库

1.加载驱动程序

Class.forName("com.mysql.cj.jdbc.Driver");

注:需要导入mysql_connector _java_5.1.36_bin.jar包

2.连接数据库

Connection con = DriverManager .getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");

方法: static Connection getConnection(String url,String user,String password)
参数:
url : 指定连接的路径
语法:jdbc:mysql://IP地址(域名):端口号/数据库名称
例如:jdbc:mysql://localhost:3306/db20210907
细节: 如果连接的是本机的mysql服务器,并且mysql服务器默认端口号为3306,则url可以简写为:jdbc:mysql:///数据库名称
user : 用户名
password : 密码

常见错误

1.未导入驱动包。

2. URL写错了。写错了。

3.用户名密码错误。

4.驱动包的版本不兼容。 

3.发送SQL语句

基本接口

(1)connection

功能:获取执行sql的对象/获取连接对象。

Statement createStatement()
PreparedStatement prepareStatement(String sql)

 (2)Statement

实例:

Statement stmt = con.createStatement();
ResultSet res = stmt.executeQuery("select * from user_data");

 boolean execute(String sql) : 可以执行任意的sql(了解)

int executeUpdate(String sql) : 执行DML(insert、update、delete)语句、DDL(create、alter、drop)语句–>没有返回值

返回值:影响的行数,可以通过影响的行数判断DML语句是否执行成功,返回值>0的则成功,反之,则失败。
ResultSet executeQuery(String sql) : 执行(select)语句

(3)PreparedStatement(继承自statement)

实例:

 or使前面判断成立,从而使后面的语句全部忽略。从而形成SQL注入。

select * from tb_stu where name = ? and id = ?;
ps.setString(1,"小明");  //把动态SQL的第一个值设为小明。
ps.setInt(1,107);  //把第2个问号的值设为107。

4.处理结果集

ResultSet接口常用方法

next():游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true

 Frist():使指针返回第一行。从头开始查

last():使指针返回最后一行。

同时,它有多种返回类型方法和两种重载方式。

返回类型:int getInt() , String getString(),Double getDouble(),Object getObject()……

重载方式:getString(String 列名),getString(int 第几列)

三、使用JDBC对数据库进行操作

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

public class test3 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Connection con = null;
		try {
		Class.forName("com.mysql.cj.jdbc.Driver");
		con = DriverManager .getConnection("jdbc:mysql://127.0.0.1:3306/test","root","123456");
	    Statement  stmt = null;
 	    stmt = con.createStatement();
 	    
 	    //插入
 	    String sql = "insert into user_data (id,name,salary,age) values(5,'小唐','2000','18')";
 	    int result1 = stmt.executeUpdate(sql);
 	    System.out.println("有" + result1 +"行记录被修改 ");
 	    
 	    //修改
 	   String sql1 = "update user_data set name = '小小明' where id = 5";
	    int result1 = stmt.executeUpdate(sql1);
	    System.out.println("有" + result1 +"行记录被修改 ");
 	    
 	    //删除
 	   String sql2 = "delete from user_data where id = 5";
	    int result1 = stmt.executeUpdate(sql2);
	    System.out.println("有" + result1 +"行记录被修改 ");
		} catch (ClassNotFoundException | SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
	}

}


 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值