Antes de inserir o conteúdo em uma tabela, precisamos conectar nosso aplicativo java ao nosso banco de dados. Java tem sua própria API, a qual JDBC API que usa drivers JDBC para conexões de banco de dados. Antes do JDBC, a API ODBC era usada, mas foi escrita em C, o que significa que era dependente da plataforma. A API JDBC fornece a conexão de aplicativos para JDBC e o driver JDBC fornece uma conexão de gerenciador para driver.

Etapas para conectividade entre o programa Java e o banco de dados

1. Carregando o Driver: Para começar, primeiro você precisa carregar o driver ou registrá-lo antes de usá-lo no programa. O registro deve ser feito uma vez em seu programa. Você pode registrar um motorista de uma das duas maneiras mencionadas abaixo:

  • Class.forName():  Aqui carregamos o arquivo de classe do driver na memória durante a execução. Não há necessidade de usar novo ou criação de um objeto. O exemplo a seguir usa Class.forName() para carregar o driver Oracle -
Class.forName(“oracle.jdbc.driver.OracleDriver”);
  • DriverManager.registerDriver():  DriverManager é uma classe integrada de Java com um registro de membro estático. Aqui, chamamos o construtor da classe do driver em tempo de compilação. O exemplo a seguir usa DriverManager.registerDriver() para registrar o driver Oracle -
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())

2. Crie as conexões: Depois de carregar o driver, estabeleça as conexões usando:

Connection con = DriverManager.getConnection(url,user,password)

Usuário : nome de usuário a partir do qual seu prompt de comando SQL pode ser acessado.
Senha: senha a partir da qual seu prompt de comando SQL pode ser acessado.

con: é uma referência à interface de conexão.
url  : Localizador Uniforme de Recursos. Ele pode ser criado da seguinte forma:

String url = “ jdbc:oracle:thin:@localhost:1521:xe”

Onde oracle é o banco de dados usado, thin é o driver usado, @localhost é o endereço IP onde o banco de dados está armazenado, 1521 é o número da porta e xe é o provedor de serviços. Todos os 3 parâmetros acima são do tipo String e devem ser declarados pelo programador antes de chamar a função. O uso disso pode ser referido no código final.

3. Crie uma declaração: Uma vez que uma conexão é estabelecida, você pode interagir com o banco de dados. As interfaces JDBCStatement , CallableStatement e PreparedStatement definem os métodos que permitem enviar comandos SQL e receber dados de seu banco de dados.

O uso da declaração JDBC é o seguinte:

Statement st = con.createStatement();

Aqui, con é uma referência à interface de conexão usada na etapa anterior.

4. Execute a consulta: Agora vem a parte mais importante da execução da consulta. A consulta aqui é uma consulta SQL. Agora sabemos que podemos ter vários tipos de consultas. Alguns deles são os seguintes:

  • Consulta para atualização / inserção de tabela em um banco de dados.
  • Consulta para recuperar dados.

O método executeQuery() da interface Statement é usado para executar consultas de recuperação de valores do banco de dados. Este método retorna o objeto de ResultSet que pode ser usado para obter todos os registros de uma tabela.
O método executeUpdate (consulta SQL) da interface de instrução é usado para executar consultas de atualização / inserção.

Exemplo:

int m = st.executeUpdate(sql);
if (m==1)
    System.out.println("inserted successfully : "+sql);
else
    System.out.println("insertion failed");

Aqui, SQL é uma consulta SQL do tipo String

5. Feche as conexões: Finalmente, enviamos os dados para o local especificado e agora estamos quase concluindo nossa tarefa. Ao fechar a conexão, os objetos de Statement e ResultSet serão fechados automaticamente. O método close() da interface Connection é usado para fechar a conexão.

Exemplo:

con.close();
// Java program to insert records to a table using JDBC
  
import java.io.*;
import java.sql.*;
  
public class Database {
  
    // url that points to mysql database, 'db' is database
    // name
    static final String url
        = "jdbc:mysql://localhost:3306/db";
  
    public static void main(String[] args)
        throws ClassNotFoundException
    {
        try {
            // this Class.forName() method is user for
            // driver registration with name of the driver
            // as argument
  
            // we have used MySQL driver
            Class.forName("com.mysql.jdbc.Driver");
  
            // getConnection() establishes a connection. It
            // takes url that points to your database,
            // username and password of MySQL connections as
            // arguments
            Connection conn = DriverManager.getConnection(
                url, "root", "1234");
  
            // create.Statement() creates statement object
            // which is responsible for executing queries on
            // table
            Statement stmt = conn.createStatement();
  
            // executeUpdate() is used for INSERT, UPDATE,
            // DELETE statements.It returns number of rows
            // affected by the execution of the statement
            int result = stmt.executeUpdate(
                "insert into student(Id,name,number) values('1','rachel','45')");
  
            // if result is greater than 0, it means values
            // has been added
            if (result > 0)
                System.out.println("successfully inserted");
  
            else
                System.out.println(
                    "unsucessful insertion ");
  
            // closing connection
            conn.close();
        }
  
        catch (SQLException e) {
            System.out.println(e);
        }
    }
}

Driver, DriverManager(), Connection(), Statement(), Resultset() são classes fornecidas pela API JDBC. 

  • Se a inserção for bem-sucedida, a saída será: Inserida com sucesso 
  • Se a inserção não for bem-sucedida, a saída será: inserção malsucedida

Inserindo registros