zoukankan      html  css  js  c++  java
  • 数据库_day05_查询语句及JDBC

    mysql查询语句及JDBC

    一,查询语句关键字

      1.分组:GROUP BY,按照某列进行分组显示,该组有几种数据就分几组.可以和聚合函数一起使用.

      2.条件:HAVING 和WHERE类似,但是HAVING只能用在GROUP BY后面,可以使用判断字符 = != > <

      3.LIMIT:在整个SELECT语句后,是控制显示条数的.两个参数,第一个是从第几条开始,第二个是显示几条

      4.查询语句关键字的执行顺序:

          SELCET -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY -> LIMIT

      5.代码

        SELECT emp.job,emp.hiredate,avg(emp.sal+IFNULL(comm,0)) AS avg_sal;

        FROM lan_ou.emp

        WHERE hiredate BETWEEN '1980-01-01' AND '1981--12-31'

        GROUP BY emp.job

        HAVING avg_sal > 1000

        ORDER BY avg_sal ASC;

    二,JDBC : JAVA连接数据库

      1.装载驱动: Class.forName("com.mysql.cj.jdbc.Driver");//将驱动类通过类名加载到内存

      2.获得连接: Connection conn = DriverManager    //参数:URL ,账户名,密码

              .getConnection("jdbc:mysql://localhost:3306/lan_ou","root","123456");

      3.获得执行SQL语句的对象: Statement state = conn.createStatement();

      4.执行sql语句:

            String sql = "SELECT * FROM stu;";  //需要执行的sql语句赋值给字符串变量

            int rows = state.executeUpdate(sql);//返回值为int类型,表示该sql语句影响的行数

            ResultSet resultSet = state.executeQuery(sql); //resultSet查询语句返回的结果集合

            while(resultSet.next()){

              String id = resultSet.getString('sid');//根据原类型取数据,可以进行计算等操作

              System.out.println(resultSet.getObject("sname");//若用Object,则不能计算等操作

            }; 

      5.关闭资源:state.close();  ,  conn.close();

    三,轮子:JDBCUtil

      package com.lanou3g.code0426;
      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.SQLException;
      import java.sql.Statement;

      public class JDBCUtil {
        private static Connection conn; //连接对象
      static {
        // 静态代码块
        //当程序第一次加载这个类的时候就会先执行这个类的静态代码块
        //并且整个项目只要不停,只会执行一次
        //加载mysql驱动,执行一次即可
      try {
        Class.forName("com.mysql.cj.jdbc.Driver");
        conn = DriverManager.getConnection(
            "jdbc:mysql://localhost:3306/lan_ou","root","123456");

        } catch (Exception e) {
        e.printStackTrace();
        }
      }


       public static Statement getStatement(){
        try {
          Statement statement = conn.createStatement();
          return statement;
        } catch (SQLException e) {
          e.printStackTrace();
        }

        return null;
       }

       public static void closeConn(){
        if (conn != null){
        try {
          conn.close();
        } catch (SQLException e) {
          e.printStackTrace();
         }
        }
       }

       public static void closeResource(Statement statement){
        if(statement != null){
        try {
          statement.close();
        } catch (SQLException e) {
        e.printStackTrace();
        }
        }
       }
      }

            

      

  • 相关阅读:
    MySQL DELAY_KEY_WRITE Option
    More on understanding sort_buffer_size
    myisam_sort_buffer_size vs sort_buffer_size
    share-Nothing原理
    GROUP_CONCAT(expr)
    Mysql History list length 值太大引起的问题
    Why is the ibdata1 file continuously growing in MySQL?
    洛谷1201 贪婪的送礼者 解题报告
    洛谷1303 A*B Problem 解题报告
    洛谷2142 高精度减法 解题报告
  • 原文地址:https://www.cnblogs.com/memo-song/p/8954681.html
Copyright © 2011-2022 走看看