El estudio señala la conexión de base de datos JDBC

estructura de demostración:

JDBC de conexión de base de datos:

base de datos JDBC está conectado a la forma de realización más básico de los datos de conexión, la necesidad de introducir un mysql-conexión tarro

Crea un proyecto java normal, crear una carpeta lib paquete frasco de introducción, añadido a la sorprendente se puede conectar directamente a la base de datos

Código es el siguiente:

package conn;

import java.sql.*;

public class JdbcCon {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        /**
         * jdbc连接数据库,分为五个步骤如下:
         */
        //1.注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.获取连接
        Connection connection =         
        DriverManager.getConnection("jdbc:mysql://localhost:3306/jtsys", "root", "root");
        //3.获取传输器
        Statement statement = connection.createStatement();
        String sql = "select * from sys_users";
        //4.处理结果
        ResultSet resultSet = statement.executeQuery(sql);
        while(resultSet.next()){
            String username = resultSet.getString("username");
            String mobile = resultSet.getString("mobile");
            String email = resultSet.getString("email");
            System.out.println("username="+username+";mobile="+mobile+";email="+email);
        }
        //5.关闭资源
        resultSet.close();
        statement.close();
        connection.close();
    }
}

Ahora muchos de los marco serán paquete de JDBC, y el conjunto de resultados de procesamiento de paquetes, marco encapsulado nos ha traído una gran comodidad, sino como una entrada de color blanco, con la esperanza de fortalecer lentamente su comienzo con los fundamentos.

Aquí está el conjunto de resultados a sí mismo para crear objetos para el procesamiento:

estructura de la tabla de usuario

Primero: Crear un objeto de usuario, el objeto se ha simplificado

package pojo;

public class User {
    private Integer id;
    private String username;
    private String mobile;
    private String email;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", mobile='" + mobile + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

Segundo: Crear JdbcUtil

package utils;

import java.sql.*;

public class JdbcUtil {

    public static Connection getConnection() throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.jdbc.Driver");
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jtsys","root","root");
        return connection;
    }

    public static void close(Connection connection, Statement statement, ResultSet resultSet){
        if(connection != null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            connection = null;
        }
        if(statement != null){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            statement = null;
        }
        if(resultSet != null){
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            resultSet = null;
        }
    }
}

Tercero: el mapa objeto de prueba

package conn;

import pojo.User;
import utils.JdbcUtil;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class JdbcConPojo {
    public static void main(String[] args) {
        /**
         * 对结果集进行处理,主要依赖反射,通过对象的set方法给对象赋值
         * 为了方便起见,将jdbc的获取连接和关闭资源的方法封装到工具类中
         */
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;

        try {
            connection = JdbcUtil.getConnection();
            statement = connection.createStatement();
            String sql = "select id,username,mobile,email from sys_users";
            resultSet = statement.executeQuery(sql);
            //根据结果集获取列数据
            String[] columnDatas = getColumnData(resultSet);
            //获取对象的所有方法
            Method[] methods = User.class.getMethods();
            //创建user数组列表封装数据
            List<User> userList = new ArrayList<User>();
            while (resultSet.next()){
                for (int i = 0; i <columnDatas.length ; i++) {
                    //获取对象实例
                    User user = User.class.newInstance();
                    //获取列名
                    String columnName = columnDatas[i];
                    //构建set方法
                    String methodName = "set"+columnName;
                    //遍历所有方法,构建方法和对象方法匹配时,注入值
                    for (Method method : methods) {
                        if(methodName.equalsIgnoreCase(method.getName())){
                            method.invoke(user,resultSet.getObject(columnName));
                            break;
                        }
                    }
                    userList.add(user);
                }
            }
            for (User user : userList) {
                //sout在项目中是被日志所替代的,这里为了学习没有引入log包
                System.out.println(user);
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }finally {
            JdbcUtil.close(connection,statement,resultSet);
        }

    }

    private static String[] getColumnData(ResultSet resultSet) throws SQLException {
        //获取元数据
        ResultSetMetaData metaData = resultSet.getMetaData();
        //获取总列数
        int columnCount = metaData.getColumnCount();
        //遍历并添加到数组中
        String[] columns = new String[columnCount];
        for (int i = 1; i <= columnCount; i++) {
            columns[i-1] = metaData.getColumnLabel(i);
        }
        return columns;
    }
}

la base de datos JDBC en relación con el trabajo real es sustancialmente menor que el funcionamiento y molesto demasiado engorroso, que implica la necesidad de escribir código para una operación de largo plazo de múltiples bases de datos.

Aquí es un inserto de demostración Modificar Eliminar:

package conn;

import utils.JdbcUtil;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class JdbcMethod {
    public static void main(String[] args) {
        Connection connection = null;
        Statement statement = null;
        //ResultSet resultSet = null;

        try {
            connection = JdbcUtil.getConnection();
            statement = connection.createStatement();
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String updateSql = "update sys_users set username='chengcheng' where id='19'";
            String deleteSql = "delete from sys_users where id='19'";
            String insertSql =
                    "insert into sys_users values(19,'wangcheng','12345','12345','[email protected]','18889996666',1,2,'"+dateFormat.format(new Date())+"','"+dateFormat.format(new Date())+"','admin','admin')";
            /*boolean insertFlag = statement.execute(insertSql);
            System.out.println(insertFlag);*/
            boolean updateFlag = statement.execute(updateSql);
            System.out.println(updateFlag);
            System.out.println("输入D删除数据,请输入:");
            Scanner scanner = new Scanner(System.in);
            String s = scanner.nextLine();
            if(s.equalsIgnoreCase("d")){
                boolean deleteFlag = statement.execute(deleteSql);
                System.out.println(deleteFlag);
            }
            System.out.println("删除成功,需要重新插入数据请输入I,请输入:");
            String i = scanner.nextLine();
            if(i.equalsIgnoreCase("i")){
                boolean insertFlag = statement.execute(insertSql);
                System.out.println(insertFlag);
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtil.close(connection,statement,null);
        }
    }
}

Aquí el aprendizaje de conexión JDBC a la base de datos ha terminado, después de este registro se olvidó más fácil de encontrar. Hay algo mal, me espero corregir hermano mayor, muy agradecido! ! !

Publicado 15 artículos originales · ganado elogios 0 · Vistas 278

Supongo que te gusta

Origin blog.csdn.net/weixin_45146962/article/details/104855932
Recomendado
Clasificación