Author Archives: Sian

常用的SQL语句汇总

1、DDL: 数据定义语句,操作库或表

## 库操作
SHOW DATABASES;-- 查看数据库

CREATE DATABASE db;-- 创建数据库

USE db;-- 使用/切换数据库

SELECT DATABASE ();-- 查看当前数据库

DROP DATABASE db;-- 删除数据库

## 表操作
USE db1;-- 切换数据库

SHOW TABLES;-- 查看所有表

CREATE TABLE t_demo (-- 创建数据库
    id INT PRIMARY KEY auto_increment,-- 指定该字段为主键,自增长
    username VARCHAR (32),-- 字符长度为32个字节
    update_time TIMESTAMP-- 时间戳类型,为空则自动填充为当前时间
) CHARACTER SET utf8mb4;-- 指定字符集的utf8mb4

CREATE TABLE t_demo_copy LIKE t_demo;-- 复制表

SHOW CREATE TABLE t_demo;-- 查看字符集或创建表语句

DESC t_demo;-- 查看表字段信息

ALTER TABLE t_demo ADD sex VARCHAR (3) AFTER username;-- 新增字段,after用于指定新字段位置

ALTER TABLE t_demo CHANGE sex gender VARCHAR (3);-- 修改某个字段的属性(名称、数据类型、字符集等)

ALTER TABLE t_demo MODIFY gender VARCHAR (3) DEFAULT '男';-- modify也可以用来修改字段属性

ALTER TABLE t_demo DROP gender;-- 删除某个字段

TRUNCATE TABLE t_demo;-- 清空整个表的数据

DROP TABLE t_demo_copy;-- 删除表

[……]

继续阅读

Java中Class类的基本使用(反射)

1、获取类对象的几种方式

Class.forName(String name)类名.class实例对象.getClass()

private static void getClassDemo() throws Exception{
    Class cls1 = Class.forName("java.lang.Object");
    System.out.println(cls1);   // class java.lang.Object
    Class cls2 = Object.class;
    System.out.println(cls2);   // class java.lang.Object
    Object obj = new Object();
    Class cls3 = obj.getClass();
    System.out.println(cls3);   // class java.lang.Object
    System.out.println(cls1 == cls2);   // true
    System.out.println(cls1 == cls3);   // true
}

[……]

继续阅读

Java中单元测试框架jUnit的基本使用

  • 单元测试一般写在一个单独的包内;
  • 单元测试的类名对应被测试的类名+Test,如:Person –> PersonTest;

  • 单元测试的方法名对应test+被测试的方法名,如:method –> testMethod;

  • 单元测试的方法一般无参无返回值;

  • 测试方法中使用断言来检测预期结果;

  • 单元测试的[……]

    继续阅读

Java内置的几个函数式接口的基本使用

  1. 相关类:SupplierConsumerPredicateFunction
  2. 什么是函数式接口

    • 有且只有一个抽象方法的接口被称作函数式接口
    • 函数式接口可以直接写成Lambda表达式
    • 函数式接口还可以写成方法引用的方式
    • 函数式接口对外展示的是一个规范,只需要满足这种规范即可成为其实现
    • 函数式接口可以类比为多态在函数式结构上的实现
    package com.yusian.function;
    
    import java.util.function.Supplier;
    
    /**
    * Supplier是一个函数式接口,返回任意类型数据,是一个容器
    * 他是对所有无参并返回一个对象的结构抽象,一切无参并返回对象的方法都可以成为他的实现
    * 这使得编程变得更加开放,可以想像是多态在函数式编程方式上的实现
    */
    public class SupplierDemo {
    
       public static void main(String[] args) {
           // 1、匿名内部类
           Supplier<Person> sup1 = new Supplier<Person>() {
               @Override
               public Person get() {
                   return new Person();
               }
           };
           Person p1 = sup1.get();
    
           // 2、Lambda表达式
           Supplier<Person> sup2 = () -> new Person();
           Person p2 = sup2.get();
    
           // 3、方法引用
           Supplier<Person> sup3 = Person::new;
           Person p3 = sup3.get();
    
           // 4、本地方法模拟
           Person p4 = supplier();
    
           // 5、只要满足函数式结构就可以
           Supplier<Person> sup5 = SupplierDemo::supplier;
           Person p5 = sup5.get();
    
           System.out.println(p1);
           System.out.println(p2);
           System.out.println(p3);
           System.out.println(p4);
           System.out.println(p5);
       }
    
       /**
        * 获取一个Person实例对象
        * @return Person
        */
       public static Person supplier() {
           return new Person();
       }
    }
    

    [……]

    继续阅读