目录
JDBC的基本使用
JDBC的含义:
Java DataBase Connectivity,Java数据库连接
*JDBC定义了操作所有关系型数据库的规则(接口),各个数据库厂商去实现这套接口,提供数据库驱动jar包,我们可以使用这套接口编程,但真正执行的是驱动jar包中的实现类
使用JDBC流程:
1.导入驱动jar包:mysql-connector-java-5.1.37-bin.jar
2.注册驱动
3.获取数据库的连接对象 Connection
4.定义sql语句从而操纵数据库
5.获取执行sql语句的对象 Statement
6.执行sql,接受返回结果
7.处理结果
8.释放资源
下面简单介绍一个例子,以一个DML语句为例:
首先用IDEA创建好一个项目,然后在项目中创建一个libs文件夹,将jar包放入其中,并右击libs文件夹--Add as Library
之后看一下代码:
package cn.itcast.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class jdbcUpdate {
public static void main(String[] args) throws SQLException {
//0.抽取变量,复用
Statement stmt = null;
Connection conn = null;
try {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.定义sql
String sql = "update account set balance = 1500 where id = 3";
//3.获取Connection对象,如果你访问的数据库端口是默认的3306,就可以省略成///
conn = DriverManager.getConnection("jdbcUtils:mysql:///mytest","root","root");
//4.获取执行sql的对象 Statement
stmt = conn.createStatement();
//5.执行sql
int count = stmt.executeUpdate(sql);//影响的行数
System.out.println(count);
//6.处理结果
if(count > 0){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
//7.释放资源
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
*有些方法会报红线让你处理异常,比如getConnection我们可以选择抛出异常,而释放资源的方法我们就选择try catch。
DQL语句和DML相比,在执行sql的过程有所变化:DML语句返回的是一个int类型的变量,告知你此条操作对数据库影响的行数,而DQL语句返回的是一个结果集ResultSet。依旧看例子:
package cn.itcast.jdbc;
import java.sql.*;
public class jdbcDQL {
public static void main(String[] args) {
//0.抽取变量,复用
Statement stmt = null;
Connection conn = null;
ResultSet rs = null; //结果集对象
try {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取Connection对象
conn = DriverManager.getConnection("jdbcUtils: