• Java基础--JDBC


    JDBC(Java Database Connectivity) 

    Java数据库连接,提供了一种与平台无关的用于执行SQL语句的标准javaAPI,可以方便实现多种关系型数据库的统一操作

    常用的类与接口为DriverManager、Connection、Statement、ResultSet、PreparedStatement , SavePoint

    DriverManager

    管理JDBC驱动的服务类,通过它获取Connection数据库链接,常用方法如下:
    public static synchronized Connection getConnection(String url, String user, String password) throws Exception;

    JDBC2.0中引DataSource,推荐使用DataSource获取连接.

    PreparedStatement

    预编译的statement对象,PreparedStatement是Statement的子接口,它允许数据库预编译SQL,通常指带参数的SQL语句.
    无需重新传入SQL语句,避免数据库每次都编译SQL语句。
    PreparedStatement可以为编译的SQL语句传入参数值,void setXxx(int index, value)

    ResultSet

    保存执行Sql后的返回结果集.

    java连接Mysql示例

    引入Mysql驱动

    <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>5.1.30</version>
    </dependency>

    ------

    package jdbc;
    
    import java.sql.*;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class JdbcTest {
    
        public static void queryForList() {
            Connection connection = null;
            ResultSet resultSet = null;
            PreparedStatement statement = null;
    
            List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
            String url = "jdbc:mysql://192.168.3.5:3306/javaweb";
            String user = "root";
            String pwd = "z";
            String sql = "select * from user_t where id != ? ";
    
            try {
                // 加载JDBC驱动
                Class clazz = Class.forName("com.mysql.jdbc.Driver");
                System.out.println(clazz);
    
                // 获取数据库连接
                connection = DriverManager.getConnection(url, user, pwd);
    
                // 获取Statement,每一个Statement表示一次数据库请求
                statement = connection.prepareStatement(sql);
    
                // 设置参数
                statement.setString(1, "-1");
    
                // 执行查询
                resultSet = statement.executeQuery();
    
                // 获取查询结果
                ResultSetMetaData metadata = resultSet.getMetaData();
    
                while (resultSet.next()) {
                    Map<String, Object> map = new HashMap<String, Object>();
                    for (int i = 0,count = metadata.getColumnCount(); i < count; i++) {
                        String columnName = metadata.getColumnName(i + 1);
                        map.put(columnName, resultSet.getString(columnName));
                    }
                    resultList.add(map);
                }
    
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (resultSet != null) {
                        resultSet.close();
                    }
                    if (statement != null) {
                        statement.close();
                    }
                    if (connection != null) {
                        connection.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
    
            //打印结果
            for (Map m : resultList) {
                System.out.println(m);
            }
        }
    
    
        public static void main(String[] args) {
            queryForList();
        }
    
    }

    ------

    end

  • 相关阅读:
    中间件格式
    python3 bytes与str数据类型相互转换
    python 连接mongodb 使用
    md5 简单加密
    django 使用https协议运行runserver
    工厂模式
    C++字符串
    C++字符
    C++数学函数
    MATLAB函数总结——数值运算和符号运算
  • 原文地址:https://www.cnblogs.com/luangeng/p/6105411.html
Copyright © 2020-2023  润新知