JDBC——使用Java语言操作数据库
目录
JDBC简介
JDBC概念
JDBC本质
JDBC好处
JDBC快速入门
JDBC编程步骤
Statement和PreparedStatement的异同及优缺点
executeQuery和executeUpdate的区别
JDBC简介
JDBC概念
●JDBC就是使用Java语言操作关系型数据库的一套API
●全称: ( Java DataBase Connectivity ) Java数据库连接
同一套Java代码,操作不同的关系型数据库
JDBC本质
●官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口
●各个数据库厂商去实现这套接口,提供数据库驱动jar包
●我们可以使用这套接口(JDBC) 编程,真正执行的代码是驱动jar包中的实现类
JDBC好处
●各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发
●可随时替换底层数据库, 访问数据库的Java代码基本不变
JDBC快速入门
步骤:
JDBC编程步骤
0.导入相应jar包
1)创建目录,
2)将jar包复制到创建目录中
3)右键jar包点击Add as Library...
4) 选择Level复选框 选择Module Library 点击OK,jar包配置完成
1.注册驱动
注意:Class.forName需要捕获ClassNotFoundException.
2.获取连接
这里需要提供:数据库服务端的IP地址:127.0.0.1 (这是本机,如果连接其他电脑上的数据库,需填写相应的IP地址)
数据库的端口号: 3306 (mysql专用端口号)
数据库名称 db1(根据你自己数据库中的名称填写)
账号 root
密码 1234(如果你在创建数据库的时候没有使用默认的账号和密码,请填写自己设置的账号和密码)
使用DriverManager.getConnection(url,username,password)获取连接对象
Connection是与特定数据库连接回话的接口,使用的时候需要导包,而且必须在程序结束的时候将其关闭。getConnection方法也需要捕获SQLException异常。
3.定义sql语句
定义所需要对数据库进行操作的sql语句
4.获取执行sql的对象 Statement和PreparedStatement对象
5.执行sql
stmt.executeUpdate(sql) //用于DDL,DML语句
stmt.executeQuery(sql) //用于DQL语句
6.处理结果
7.释放资源(与关闭流的方式一样,先开的后关,后开的先关)
//6.处理结果
System.out.println(count);
//7.释放资源
stmt.close();
conn.close();
简单示例:
package com.itheima.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JDBCDemo {
public static void main(String[] args) throws Exception {
/**
* JDBC快速入门
*/
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver"); //mysql5之后的驱动jar包,可以省略注册驱动的步骤
//2.获取连接
String url = "jdbc:mysql://127.0.0.1:3306/db1?useSSL=false";
String username = "root";
String password = "1234";
Connection conn = DriverManager.getConnection(url,username,password);
//3.定义sql语句
String sql = "UPDATE account SET money = 2000 WHERE id =1";
//4.获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//5.执行sql
int count = stmt.executeUpdate(sql);//返回值是受影响的行数
//6.处理结果
System.out.println(count);
//7.释放资源
stmt.close();
conn.close();
}
}
Statement和PreparedStatement的异同及优缺点
同:两者都是用来执SQL语句的
异:PreparedStatement需要根据SQL语句来创建,它能够通过设置参数,指定相应的值,不是像Statement那样使用字符串拼接的方式。
PreparedStatement的优点:
1、其使用参数设置,可读性好,不易记错。在statement中使用字符串拼接,可读性和维护性比较差。
2、其具有预编译机制,性能比statement更快。
3、其能够有效防止SQL注入攻击。
executeQuery和executeUpdate的区别
相同点:二者都能够执行增加、删除、修改等操作。
不同点:
1、execute可以执行查询语句,然后通过getResult把结果取出来。executeUpdate不能执行查询语句。
2、execute返回Boolean类型,true表示执行的是查询语句,false表示执行的insert、delete、update等。executeUpdate的返回值是int,表示有多少条数据受到了影响。