• Java自学-JDBC Hello JDBC


    JDBC基础

    JDBC (Java DataBase Connection) 是通过JAVA访问数据库

    步骤 1 : 为项目导入mysql-jdbc的jar包

    访问MySQL数据库需要用到第三方的类,这些第三方的类,都被压缩在一个叫做Jar的文件里。
    为了代码能够使用第三方的类,需要为项目导入mysql的专用Jar包。
    通常都会把项目用到的jar包统一放在项目的lib目录下,在本例就会放在
    E:projectj2selib 这个位置
    然后在eclipse中导入这个jar包

    导包步骤: 右键project->property->java build path->libaries->add external jars

    为项目导入mysql-jdbc的jar包
    步骤 2 : 初始化驱动

    通过Class.forName("com.mysql.jdbc.Driver");
    初始化驱动类com.mysql.jdbc.Driver

    如果忘记了第一个步骤的导包,就会抛出ClassNotFoundException

    Class.forName是把这个类加载到JVM中,加载的时候,就会执行其中的静态初始化块,完成驱动的初始化的相关工作。

    初始化驱动

    package jdbc;
       
    public class TestJDBC {
        public static void main(String[] args) {
               
            //初始化驱动
            try {
                //驱动类com.mysql.jdbc.Driver
                //就在 mysql-connector-java-5.0.8-bin.jar中
                //如果忘记了第一个步骤的导包,就会抛出ClassNotFoundException
                Class.forName("com.mysql.jdbc.Driver");
                  
                System.out.println("数据库驱动加载成功 !");
       
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
               
        }
    }
    

    步骤 3 : 建立与数据库的连接

    建立与数据库的Connection连接
    这里需要提供:
    数据库所处于的ip:127.0.0.1 (本机)
    数据库的端口号: 3306 (mysql专用端口号)
    数据库名称 how2java
    编码方式 UTF-8
    账号 root
    密码 admin

    注: 这一步要成功执行,必须建立在mysql中有数据库how2java的基础上,如果没有,点击查看创建数据库如何进行数据库的创建。

    建立与数据库的连接

    package jdbc;
      
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
      
    public class TestJDBC {
        public static void main(String[] args) {
      
            try {
                Class.forName("com.mysql.jdbc.Driver");
      
                // 建立与数据库的Connection连接
                // 这里需要提供:
                // 数据库所处于的ip:127.0.0.1 (本机)
                // 数据库的端口号: 3306 (mysql专用端口号)
                // 数据库名称 how2java
                // 编码方式 UTF-8
                // 账号 root
                // 密码 admin
      
                Connection c = DriverManager
                        .getConnection(
                                "jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8",
                                "root", "admin");
      
                System.out.println("连接成功,获取连接对象: " + c);
      
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
      
        }
    }
    

    步骤 4 : 创建Statement

    Statement是用于执行SQL语句的,比如增加,删除

    创建Statement

    package jdbc;
      
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
      
    public class TestJDBC {
        public static void main(String[] args) {
      
            try {
                Class.forName("com.mysql.jdbc.Driver");
      
                Connection c = DriverManager
                        .getConnection(
                                "jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8",
                                "root", "admin");
      
                // 注意:使用的是 java.sql.Statement
                // 不要不小心使用到: com.mysql.jdbc.Statement;
                Statement s = c.createStatement();
      
                System.out.println("获取 Statement对象: " + s);
      
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
      
        }
    }
    

    步骤 5 : 执行SQL语句

    s.execute执行sql语句
    执行成功后,用mysql-front进行查看,明确插入成功

    执行SQL语句之前要确保数据库how2java中有表hero的存在,如果没有,需要事先创建表

    执行SQL语句

    package jdbc;
      
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
      
    public class TestJDBC {
        public static void main(String[] args) {
      
            try {
                Class.forName("com.mysql.jdbc.Driver");
      
                Connection c = DriverManager
                        .getConnection(
                                "jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8",
                                "root", "admin");
      
                Statement s = c.createStatement();
      
                // 准备sql语句
                // 注意: 字符串要用单引号'
                String sql = "insert into hero values(null,"+"'提莫'"+","+313.0f+","+50+")";
                s.execute(sql);
      
                System.out.println("执行插入语句成功");
      
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
      
        }
    }
    

    步骤 6 : 关闭连接

    数据库的连接是有限资源,相关操作结束后,养成关闭数据库的好习惯
    先关闭Statement
    后关闭Connection

    package jdbc;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    public class TestJDBC {
        public static void main(String[] args) {
     
            Connection c = null;
            Statement s = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
     
                c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8", "root",
                        "admin");
     
                s = c.createStatement();
     
                String sql = "insert into hero values(null," + "'提莫'" + "," + 313.0f + "," + 50 + ")";
     
                s.execute(sql);
     
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                // 数据库的连接时有限资源,相关操作结束后,养成关闭数据库的好习惯
                // 先关闭Statement
                if (s != null)
                    try {
                        s.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                // 后关闭Connection
                if (c != null)
                    try {
                        c.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
     
            }
     
        }
    }
    

    步骤 7 : 使用try-with-resource的方式自动关闭连接

    如果觉得上一步的关闭连接的方式很麻烦,可以参考关闭流 的方式,使用try-with-resource的方式自动关闭连接,因为Connection和Statement都实现了AutoCloseable接口

    package jdbc;
      
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
      
    public class TestJDBC {
        public static void main(String[] args) {
      
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
      
            try (
                Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8",
                    "root", "admin");
                Statement s = c.createStatement();             
            )
            {
                String sql = "insert into hero values(null," + "'提莫'" + "," + 313.0f + "," + 50 + ")";
                s.execute(sql);
                  
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    

    练习一次性 插入100条数据

    借助循环,和上面学习到的JDBC的知识,向数据库中插入100条数据,并在mysql-front中观察查询结果
    在这里插入图片描述
    答案 :

    做一个0-100的for循环,生成不同的sql语句,然后执行

    package jdbc;
       
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
       
    public class TestJDBC {
        public static void main(String[] args) {
       
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
       
            try (
                Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8",
                    "root", "admin");
                Statement s = c.createStatement();             
            )
            {
                 
                for (int i = 0; i < 100; i++) {
                    String sql = "insert into hero values(null," + "'英雄"+i+"'"  + "," + 313.0f + "," + 50 + ")";
                    s.execute(sql);
                }
                 
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    
  • 相关阅读:
    求原根
    koa2-router中间件来请求数据获取
    koa2 快速开始
    如何修改host
    bzoj 2480——扩展BSGS
    bzoj 4128: Matrix ——BSGS&&矩阵快速幂&&哈希
    Ubuntu 16.04LTS 安装和配置Bochs
    2019ICPC徐州网络赛 A.Who is better?——斐波那契博弈&&扩展中国剩余定理
    求十亿内所有质数的和
    MYSQL的随机查询的实现方法
  • 原文地址:https://www.cnblogs.com/jeddzd/p/12467116.html
Copyright © 2020-2023  润新知