• jdbc连接数据库


    package com.huawei.jdbc;

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

    import com.huawei.utils.DBUtil;

    public class TestJDBC01 {

    /**
    * 要操作数据库
    *
    *
    * 可以将数据量理解为一个仓库
    *
    * 如果 要将东西放进去 则需要钥匙 (数据库驱动)
    *
    * 用钥匙(驱动)去将仓库(数据库)打开 然后存储数据
    * @throws SQLException
    * @throws ClassNotFoundException
    *
    *
    * 操作数据库的步骤
    *
    * 1、加载驱动
    *
    * 2、得到连接
    *
    * 3、操作数据库
    *
    * 4、关闭资源
    *
    *
    */

    public static void main(String[] args) throws Exception {


    /**
    *
    * 获取连接Connection的方式
    *
    * 第一种:
    * Class.forName()加载指定的驱动类 并生成对象 放到DriverManager中管理 com.mysql.jdbc.Driver
    *
    * 第二种:
    * 在类路径下 提供 META-INF/services/java.sql.Driver 文件 在文件里面协商驱动的全局限定名
    *
    *
    * 得到Connection的步骤
    *
    * 显示或是隐式加载驱动到 DriverManager中
    *
    * 再由得到的驱动对象去根据提供的数据去得到连接
    *
    *
    *
    *
    *
    *
    *
    *
    */

    //Class.forName("com.mysql.jdbc.Driver");

    //Connection connection = null;
    //关于在JDBC中的URL

    //jdbc:数据库类型://地址:端口/数据库名
    //connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");

    //System.out.println(connection);

    //testExecuteQuery();

    //testExecuteUpdate();
    testUpdate();
    }



    public static void testExecuteQuery() throws SQLException, ClassNotFoundException{
    Class.forName("com.mysql.jdbc.Driver");
    //得到连接
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
    //得到sql语句的执行者
    Statement statement = connection.createStatement();
    //有sql执行者去执行sql语句
    //执行sql语句的方式
    //一种是主要针对查询的 一定会返回一个结果集
    //一种主要是针对查询以外的 会返回一个受影响的行数
    ResultSet rs = statement.executeQuery("SELECT * from users");
    //变量结果集
    /*while(rs.next()){
    System.out.println(rs.getString(1)+":"+rs.getObject(2));
    }*/
    //rs.
    System.out.println("---------------------");
    while(rs.next()){
    System.out.println(rs.getString("password")+":"+rs.getObject("username"));
    }
    //释放资源 关闭顺序
    //ResultSet statement connection
    rs.close();
    statement.close();
    connection.close();

    }

    /**
    *
    */
    public static void testExecuteUpdate() throws Exception{
    //显示加载驱动
    Class.forName("com.mysql.jdbc.Driver");
    //得到连接
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
    //sql语句执行者
    Statement statement = connection.createStatement();

    //String sql = "insert into users (username,password) values ('wangwu','123123456')";
    String sql = "INSERT INTO users (username,password) VALUES ('wangwu','123123456')";

    int num = statement.executeUpdate(sql);

    System.out.println(num);

    statement.close();

    connection.close();
    }

    public static void testUpdate() throws Exception{
    //得到连接
    Connection connection = DBUtil.getConnection();
    //语句执行者
    Statement statement = connection.createStatement();
    String sql = "UPDATE users SET password='abcd123' WHERE username='wangwu'";

    int num = statement.executeUpdate(sql);

    System.out.println(num);

    DBUtil.close(statement,connection);


    /**
    * Statement 会有 一个关于sql注入的bug 所以 基本不使用
    */

    }

    }

  • 相关阅读:
    优化SQL查询:如何写出高性能SQL语句
    提高SQL执行效率的16种方法
    Spring Ioc DI 原理
    java内存泄漏
    转:js闭包
    LeetCode Best Time to Buy and Sell Stock III
    LeetCode Best Time to Buy and Sell Stock with Cooldown
    LeetCode Length of Longest Fibonacci Subsequence
    LeetCode Divisor Game
    LeetCode Sum of Even Numbers After Queries
  • 原文地址:https://www.cnblogs.com/hwgok/p/5814607.html
Copyright © 2020-2023  润新知