[学习笔记] 使用Java实现数据库编程之JDBC

# 学习 # · 2020-07-27

JDBC简介

1、JDBC API:Sun公司提供。

(1)DriverManage类:装载驱动程序。

(2)Connection接口:负责连接数据库并担任传送数据任务。

(3)Statement接口:执行SQL语句。

(4)ResultSet接口:保存和处理执行结果。

2、JDBC访问数据库的步骤:

(1)加载JDBC驱动。

(2)与数据库建立连接。

(3)发送SQL语句并得到返回结果。

(4)处理返回结果。


连接数据库

1、JDBC-ODBC桥连接数据库:

import java.sql.*;

public class Test {
    public static void main(String[] args) {
        Connection conn = null;
        //1、加载驱动
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        } catch (ClassNotFoundException e) {
            System.out.println("Error:" + e.getMessage());
        }
        //2、建立连接
        try {
            conn = DriverManager.getConnection("jdbc:odbc:myDB", "root", "root");
            System.out.println("建立连接成功!");
        } catch (SQLException e) {
            System.out.println("Error:" + e.getMessage());
        } finally {
            //3、关闭连接
            try {
                if (null != conn) {
                    conn.close();
                    System.out.println("关闭连接成功!");
                }
            } catch (SQLException e) {
                System.out.println("Error:" + e.getMessage());
            }
        }
    }
}

2、纯Java方式连接数据库:

import java.sql.*;

public class main {
    public static void main(String[] args) {
        Connection conn = null;        //实例化Connection
        //1、加载驱动
        try{
            Class.forName("com.mysql.jdbc.Driver");
        } catch(Exception e) {
            System.out.println("Error:" + e.getMessage());
        }
        //2、建立连接
        try {
            //conn = DriverManager.getConnection(url,user,passwd);
            DriverManager.getConnection("jdbc:mysql://localhost:3306/epet","root","123456");
            System.out.println("Mysql数据库连接成功!");
        } catch (Exception e) {
            System.out.println("Error:" + e.getMessage());
        } finally {
            //3、关闭连接
            try {
                if(conn != null) {
                    conn.close();
                    System.out.println("关闭Mysql数据库连接成功!");
                }
            } catch (Exception e) {
                System.out.println("Error:" + e.getMessage());
            }
        }
    }
}

Statement接口和ResultSet接口

1、Connection接口的常用方法:

(1)void close():释放Connection对象的数据库和JDBC源。

(2)Statement createStatement():创建一个Statement对象将SQL语句发送到数据库。

(3)PreparedStatement prepareStatement(String sql):创建一个PreparedStatement对象将参数化的SQL语句发送到数据库。

(4)boolean isClosed():查询Connection对象是否已经被关闭。

2、Statement接口的常用方法:

(1)ResultSet executeQuery(String sql):执行SQL查询并获取ResultSet对象。

(2)int executeUpdate(String sql):执行SQL插入删除更新操作,返回所影响的行数。

(3)boolean execute(String sql):执行任意SQL语句。

3、ResultSet接口的常用方法:

(1)boolean next():将光标从当前位置向下移动一行。

(2)boolean previous():将光标从当前位置向上移动一行。

(3)void close():关闭ResultSet对象。

(4)int getInt(int index/String label):以int的形式获取结果集当前行指定列号的值。

(5)float getFloat(int index/String label):以float的形式获取结果集当前行指定列号的值。

(6)String getString(int index/String label):以String的形式获取结果集当前行指定列号的值。

(7)int getRow():得到光标当前所指的行号。

(8)boolean absolute(int row):光标移动到row指定的行。

4、应用示例:

import java.sql.*;

public class main {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        //1、加载驱动
        try{
            Class.forName("com.mysql.jdbc.Driver");
        } catch(Exception e) {
            System.out.println("Error:" + e.getMessage());
        }
        //2、建立连接
        try {
            conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/epet","root","123456");
            System.out.println("Mysql数据库连接成功!");
            stmt = conn.createStatement();
            rs = stmt.executeQuery("select * from master");
            System.out.println("主人信息列表\n编号\t姓名\t元宝数");
            while(rs.next()) {
                System.out.println(rs.getInt("id") + "\t" + rs.getString("name") + "\t" + rs.getString("money"));
            }
        } catch (Exception e) {
            System.out.println("Error:" + e.getMessage());
        } finally {
            //3、关闭连接
            try {
                if(rs != null) {
                    rs.close();
                }
                if(stmt != null) {
                    stmt.close();
                }
                if(conn != null) {
                    conn.close();
                    System.out.println("关闭Mysql数据库连接成功!");
                }
            } catch (Exception e) {
                System.out.println("Error:" + e.getMessage());
            }
        }
    }
}

PreparedStatement接口

1、使用PreparedStatement接口的优点:防止SQL注入。

2、PreparedStatement接口常用方法:

(1)boolean execute():执行SQL语句。

(2)ResultSet executeQuery():执行SQL查询并返回ResultSet。

(3)int executeUpdate():执行SQL(插入修改删除)语句。

(4)void setInt(int index,int x):指定参数设置为给定Java int值。(setFloat、setDouble等同理)

(5)void setObject(int index,Object x):使用给定对象设置指定参数的值。

3、使用PreparedStatement操作数据库:

(1)创建对象:

PreparedStatement pstmt = conn.prepareStatsment("UPDATE dog SET health=? Where id=?");

(2)设置每个输入参数的值:

Pstmt.setInt(1,80);
Pstmt.setInt(2,1);

(3)执行SQL语句:

Pstmt.executeUpdate();
如无特殊说明,本博所有文章均为博主原创。

如若转载,请注明出处:一木林多 - https://www.l5v.cn/archives/36/

评论