Java-JDBC

JDBC即Java Database Connectivity,是一个由Java操作数据库的执行标准,大部分由接口组成。JDBC不是技术而是服务,所有的操作完全固定。

JDBC核心部分:

  1. DriverManager类:驱动管理器,通过Java驱动程序提供的API与Java驱动程序互动,而Java驱动程序负责底层数据库细节。
  2. Connection接口
  3. Statement接口
  4. PreparedStatement接口
  5. ResultSet接口

JDBC连接办法:

  1. JDBC-ODBC:使用微软的ODBC技术进行数据库连接。程序->JDBC->ODBC->数据库
  2. JDBC本地连接:程序->JDBC ->数据库
  3. JDBC网络连接:程序 ->网络协议 -> JDBC -> 数据库

连接数据库:

  1. 开启数据库监听+启动数据库进程。
  2. 加载数据库驱动程序开发jar包(Class.forName)
  3. 通过DriverManager连接数据库(sql包中,Connection getConnection)
  4. 关闭数据库(close)
package com.joeaaa.demo18JDBC;

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

public class JDBCTest {
    public static final String DBDRIVER = "com.mysql.jdbc.Driver";
    public static final String DBURL="jdbc:mysql://localhost:3306/demo01";
    public static final String DBUSER = "root";
    public static final String PASSWORD = "p123";

    public static void main(String[] args) throws Exception {
        Connection conn;
        Class.forName(DBDRIVER); // 加载驱动
        try{
            //注册JDBC驱动程序
            Class.forName(DBDRIVER);
            //建立连接
            conn = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);
            if (!conn.isClosed()) {
                System.out.println("数据库连接成功");
                System.out.println(conn);
                conn.close();
            }
        } catch (ClassNotFoundException e) {
            System.out.println("数据库驱动没有安装");

        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("数据库连接失败");
        }
    }
}

执行SQL语句

statement = conn.creatStatement();
String sql = "DELETE FROM list WHERE uid in (1,11,21);
// 执行结果
Result res = statement.executeQuery(sql);
while(result.next(){
sout(res.getString("name");
sout(res.getInt("age");
// 更新行数
int len = statement.executeUpdate(sql);
// 关闭连接
statement.close()
conn.close()

PreparedStstement

package com.joeaaa.demo18JDBC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;

public class JDBCTest {
    public static final String DBDRIVER = "com.mysql.jdbc.Driver";
    public static final String DBURL="jdbc:mysql://localhost:3306/demo01";
    public static final String DBUSER = "root";
    public static final String PASSWORD = "jonathan";

    public static void main(String[] args) throws Exception {
        String name = "Mr'smith";
        Date birthday = new Date();
        int age = 30;
        String note = "here he comes";

        String sql = "INSERT INTO member (mid, name, age, birthday, note) VALUES (mysql.nextval,?,?,?,?)";
        Connection conn;
        PreparedStatement pstatment = null;
        Class.forName(DBDRIVER); // 加载驱动
        try{
            //注册JDBC驱动程序
            Class.forName(DBDRIVER);
            //建立连接
            conn = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);
            pstatment = conn.prepareStatement(sql);
            // 设置SQl语句?参数
            pstatment.setString(1, name);
            pstatment.setInt(2,age);
            pstatment.setDate(3,new java.sql.Date(birthday.getTime()));
            pstatment.setString(4, note);

            if (!conn.isClosed()) {
                System.out.println("数据库连接成功");

                int len = pstatment.executeUpdate();
                System.out.println("更新了:"+len +" 行");
                pstatment.close();
                conn.close();
            }
        } catch (ClassNotFoundException e) {
            System.out.println("数据库驱动没有安装");

        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("数据库连接失败");
        }
    }
}

模糊查询:

pstatement.setString(1, "%", + keyWord + "%");

分页显示:

Oracle使用ROWNUM完成。