天天看点

JDBC编程的六个步骤以及使用示例(详细)

JDBC编程的六个步骤

1.注册驱动:通知Java程序我们要连接的是哪个品牌的数据库

2.获取数据库连接:Java进程和Mysql进程之间的通道开启了

3.获取数据库操作对象:这个对象是用来执行sql语句的

使用示例

例1:不带处理查询结果集的JDBC

package com.xiaoma.JDBC;

import java.sql.*;

public class TestJDBC {
    public static void main(String[] args) throws SQLException {
        //1.注册驱动
        com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();
        DriverManager.registerDriver(driver);
        //2.获取数据库连接对象
        String url="jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
        String username="root";
        String password="123456";
        Connection conn=DriverManager.getConnection(url,username,password);
        System.out.println(conn);
        //3.获取数据库操作对象(通过一个Connection连接对象可以拿到多个操作对象)
        Statement statement = conn.createStatement();
        //4.执行sql语句(这里以插入和删除为例,其余同理,前提是要会写sql语句)
        //String InsertSql="insert into people(name,age,address) values('小马',18,'山东省')";
        String DeleteSql="delete from people where name='小马'";
        //这个executeUpdate方法专门用来执行sql的增删改查语句的,其中返回值为影响力数据库中的数据条数,也就是影响力几行
        int i = statement.executeUpdate(DeleteSql);
        System.out.println(i);
        //5.释放资源,先释放statement再释放connection
        if (statement != null) {
            statement.close();
        }
        if (conn != null){
            conn.close();
        }
    }
}      

例2:带处理查询结果集的JDBC

package com.xiaoma.JDBC;

import java.sql.*;

public class TestJDBC02 {
    public static void main(String[] args) throws SQLException {
        //1.注册驱动
        com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();
        DriverManager.registerDriver(driver);

        //2.获取数据库连接对象
        String url="jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
        String username="root";
        String password="123456";
        Connection conn=DriverManager.getConnection(url,username,password);
        System.out.println(conn);

        //3.获取数据库操作对象(通过一个Connection连接对象可以拿到多个操作对象)
        Statement statement = conn.createStatement();

        //4.执行sql语句(这里以插入和删除为例,其余同理,前提是要会写sql语句)
        String SeleteSql="select * from people";
        //这个executeUpdate方法专门用来执行sql的增删改查语句的,其中返回值为影响力数据库中的数据条数,也就是影响力几行
        ResultSet resultSet = statement.executeQuery(SeleteSql);

        //5.处理查询结果集
        while(resultSet.next()){
            //这个getString()方法是不管数据库中的值是什么类型的,他都会以String类型返回
            //getString()是通过下标取值的,默认都是以字符串类型取出,可以通过相应类型的get方法取出特定类型的值
            System.out.println(resultSet.getString(1));
            System.out.println(resultSet.getString(2));
            System.out.println(resultSet.getString(3));
            System.out.println(resultSet.getString(4));
        }

        //6.释放资源,先释放statement再释放connection
        if (statement != null) {
            statement.close();
        }
        if (conn != null){
            conn.close();
        }
        if(resultSet!=null){
            resultSet.close();
        }
    }
}      

例3:将数据库连接信息写到properties配置文件中,通过读取properties配置文件连接数据库,进行查询(做开发基本上都用这种方式)

package com.xiaoma.JDBC;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
import java.util.ResourceBundle;

//读取配置文件
public class TestJDBC03 {
    public static void main(String[] args) throws SQLException, IOException {
        //获取配置文件数据
        InputStream is=TestJDBC03.class.getClassLoader().getResourceAsStream("db.properties");
        Properties pro=new Properties();
        pro.load(is);
        String username= pro.getProperty("username");
        String password=pro.getProperty("password");
        String url=pro.getProperty("url");

        //1.注册驱动
        com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();

        //2.获取数据库连接对象

        Connection conn=DriverManager.getConnection(url,username,password);
        System.out.println(conn);

        //3.获取数据库操作对象(通过一个Connection连接对象可以拿到多个操作对象)
        Statement statement = conn.createStatement();

        //4.执行sql语句(这里以插入和删除为例,其余同理,前提是要会写sql语句)
        String SeleteSql="select * from people";
        //这个executeUpdate方法专门用来执行sql的增删改查语句的,其中返回值为影响力数据库中的数据条数,也就是影响力几行
        ResultSet resultSet = statement.executeQuery(SeleteSql);

        //5.处理查询结果集
        while(resultSet.next()){
            //这个getString()方法是不管数据库中的值是什么类型的,他都会以String类型返回
            //getString()是通过下标取值的,默认都是以字符串类型取出,可以通过相应类型的get方法取出特定类型的值
            System.out.println(resultSet.getString(1));
            System.out.println(resultSet.getString(2));
            System.out.println(resultSet.getString(3));
            System.out.println(resultSet.getString(4));
        }

        //6.释放资源,先释放statement再释放connection
        if (statement != null) {
            statement.close();
        }
        if (conn != null){
            conn.close();
        }
        if(resultSet!=null){
            resultSet.close();
        }
    }
}