Bootstrap

JDBC入门

什么是JDBC

    JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。

使用JDBC

    使用JDBC会用到它的核心类:DriverManager、Connection、Statement,和ResultSet。步骤为:

1.导入驱动
2.加载驱动类
3.得到Connent连接对象
4.编写sql
5.创建Statement对象
6.通知数据库执行sql
7.如果为查询会得到ResultSet结果集,解析数据
8.关闭资源

首先要导入jdbc的jar包:

 

然后加载驱动类:

//加载驱动类
Class.forName("com.mysql.jdbc.Driver");

直接在包下复制Driver的引用地址。 

接下来就是得到Connection的连接对象:

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/esa?useSSL=false", "root", "123456");

getConnection方法里面的参数为数据库地址,用户名,密码。

然后编写sql语句,这里以插入为例子:

String sql = "insert into demo values('赵六','语文','88')";

创建Statement对象

Statement statement = conn.createStatement();

通知数据库执行sql

boolean a = statement.execute(sql);


完整代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Main {
    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/esa?useSSL=false", "root", "123456");

            System.out.println("数据库连接成功");
            String sql = "insert into demo values('赵六','语文','88')";
            Statement statement = conn.createStatement();
            boolean a = statement.execute(sql);
            if (statement != null){
                statement.close();
            }
            if (conn != null){
                conn.close();
            }
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

 这是执行之前的表

 

执行后


Statement最为重要的方法是:

  1. int executeUpdate(String sql):执行更新操作,即执行insert、update、delete语句,其实这个方法也可以执行create table、alter table,以及drop table等语句,但我们很少会使用JDBC来执行这些语句;

  2. ResultSet executeQuery(String sql):执行查询select操作,执行查询操作会返回ResultSet,即结果集。

  3. boolean execute() 了解!可以执行executeUpdate()和executeQuery()两个方法能执行的sql语句,这个方法可以用来执行增、删、改、查所有SQL语句。该方法返回的是boolean类型,表示SQL语句是否有结果集!。如果使用execute()方法执行的是更新语句,那么还要调用int getUpdateCount()来获取insert、update、delete语句所影响的行数。如果使用execute()方法执行的是查询语句,那么还要调用ResultSet getResultSet()来获取select语句的查询结果。

 上面用的是execute(),返回一个false表示这个语句没有结果集。对于增删改的语句,推荐用executeUpdate(),返回影响的行数。查询语句推荐用executeQuery(),返回一个ResultSet结果集。

如果是查询,对于返回的结果集,需要使用循环赖获取里面的值:

String sql = "select * from demo1 where name = '"+name+"'  ";
            statement = conn.createStatement();
            resultSet = statement.executeQuery(sql);
            while (resultSet.next()){
                String name1 = resultSet.getString("name");
                String course = resultSet.getString("course");
                String score = resultSet.getString("score");
                System.out.println(name1+" "+course+" "+score);
            }

 

;