JDBC
概念
JDBC(Java DataBase Connectivity):Java连接数据库,可以使用Java语言连接数据库完成CRUD操作;
- CRUD:指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写;
JDBC核心思想
Java中定义了访问数据库的接口,可以为多种关系型数据库提供统一的访问方式;
由数据库厂商提供驱动实现类(Driver数据库驱动);
MySQL中JDBC驱动包
JDBC下载路径:https://dev.mysql.com/downloads/connector/
JDBC API
JDBC 是由多个接口和类进行功能实现;
环境的搭建
- 在项目下新建 lib 文件夹(New--->directory),用于存放 jar 文件;
- 将MySQL驱动文件mysql-connector-java-5.1.25-bin.jar 复制到项目的lib文件夹中;
- 选中lib文件夹 右键选择 add as library;
JDBC的开发六步
1. 加载驱动
使用Class.forName("com.mysql.jdbc.Driver");手动加载字节码文件到JVM中
Class.forName("com.mysql.jdbc.Driver");
2. 连接数据库
通过DriverManager.getConnection(url,user,password);获得数据库连接对象
Connection connection = DriverManager.getConnection
("jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8","root","root");
- URL(Uniform Resource Locator)统一资源定位符:由协议、IP、端口、SID(程序实例名称)组成
3. 获取执行的SQL的对象
通过Connection对象获得Statement对象,用于对数据库进行通用访问的
Statement statement = connection.createStatement();
4. 编写SQL语句并执行
编写SQL语句,并执行,接收执行后的结果
String sql = "update stu set student_name = '张三' where student_id = '1004'";
int result = statement.executeUpdate(sql);
- 在编写DML语句时,要注意字符串参数的符号是单引号 '值'
- DML语句:增、删、改时,执行的结果是受影响行数(int类型);
- DQL语句:查询时,返回的是数据结果集(ResultSet结果集);
5. 处理结果
接收并处理操作结果
if(result > 0){
System.out.println("成功!");
}else{
System.out.println("失败!");
}
- 受影响行数:逻辑判断,方法返回
- 查询结果集:迭代、依次获取
6. 释放资源
遵循的是先开后关的原则,释放过程中用到的所有资源对象
statement.close();
connection.close();
增删改案例
综合核心六步,实现增删改
public static void main(String[] args) throws Exception {
//1.加载驱动 将驱动字节码文件加载到JVM中
Class.forName("com.mysql.jdbc.Driver");
//2.连接数据库
String url = "jdbc:mysql://localhost:3306/companydb?useUnicode=true&characterEncoding=utf8";//连接地址
String user = "root" ;
String password = "root";
Connection connection = DriverManager.getConnection(url,user,password);
//测试是否连接成功
System.out.println(connection);
//3.获取执行SQL的对象 Statement
Statement statement = connection.createStatement();
//4.编写SQL语句,并执行SQL语句
//增加
String sql1 = "INSERT INTO stu(student_id,student_name,sex,birthday,phone,GradeId) VALUES('1003','kaka','男','2001-06-01','123456189',1);";
//删除
String sql2 = "delete from stu where student_id = '1003'";
//修改
String sql3 = "update stu set student_name = '张三' where student_id = '1004'";
int result = statement.executeUpdate(sql3);
//5.处理结果
if(result > 0){
System.out.println("成功!");
}else{
System.out.println("失败!");
}
//6.释放资源 先开后关
statement.close();
connection.close();
}
}