JDBC

JDBC

JDBC本质

JDBC(java databases connectiviting)
JDBC定义了一套操作关系型数据库的公共接口,不同数据库厂家实现其接口,真正执行的是驱动jar包中的实现类

快速入门

1、导入驱动jar包
http://dev.mysql.com/downloads/connector/
教程:https://www.cnblogs.com/it-mh/p/11205866.html
2、注册驱动
3、获取数据库连接对象
4、定义sql语句
5、获取执行sql的statement对象
6、执行sql
7、处理结果
8、释放资源

代码实现:

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

public class Demo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 获取链接对象
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3","root","123");
        // 定义sql
        String sql = "update student set age =100 where name = 'king'";
        // 获取执行sql的statement对象
        Statement statement = connection.createStatement();
        // 执行sql
        int count = statement.executeUpdate(sql);
        // 结果
        System.out.println(count);
        // 释放资源
        statement.close();
        connection.close();
    }
}

JDBC-curd操作实例

statement.executeUpdate(sql)返回值是int,表示返回的影响行数一般执行DDL,DML语句。
stetement.executeQuery(sql)返回值是ResultSet是字段结果返回集合。
先看executeUpdate.

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

public class JDBCDemo {
    public static void main(String[] args) {
        Connection conn = null;
        Statement statement = null;
        try {
            // 注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 建立连接
            conn = DriverManager.getConnection("jdbc:mysql://rm-wz9gfi4876z4y12036o.mysql.rds.aliyuncs.com/test", "root", "123");
            // 创建sql
            String addSql = "insert into student values(6,'a',12)";
            String updateSql = "update student set age = 100 where id = 3";
            String delSql = "delete from student where id = 4";
            // 创建statement对象
            statement = conn.createStatement();
            // 执行sql
            int addCount = statement.executeUpdate(addSql);
            int updateCount = statement.executeUpdate(updateSql);
            int delCount = statement.executeUpdate(delSql);
            System.out.println("新增:" + addCount + "修改:" + updateCount + "删除:" + delCount);
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        } finally {
            // 释放资源
            if (null != statement) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (null != statement) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

ResultSet的使用:

import java.sql.*;

public class JDBCDemo {
    public static void main(String[] args) {
        Connection conn = null;
        Statement statement = null;
        try {
            // 注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 建立连接
            conn = DriverManager.getConnection("jdbc:mysql://rm-wz9gfi4876z4y12036o.mysql.rds.aliyuncs.com/test", "root", "123");
            // 创建sql
            statement = conn.createStatement();
            ResultSet resultSet = statement.executeQuery("select * from  student");
            // 获取返回集
            while (resultSet.next()){
                System.out.println(resultSet.getString("name"));
            }
            resultSet.close();
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        } finally {
            // 释放资源
            if (null != statement) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (null != statement) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
posted @ 2020-07-21 22:38  Kingfan  阅读(106)  评论(0编辑  收藏  举报