数据库_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();
    }
    }
   }
  }

        

  

原文地址:https://www.cnblogs.com/memo-song/p/8954681.html