7.29学习总结 (枚举类 mysql多表查询 注解)

枚举类

概念:

【Java】枚举类型_java 枚举类-CSDN博客

测试代码:

package com.example.util;

import java.util.Scanner;

public enum Season {
    SPRING("绿", "春暖花开"),
    SUMMER("红", "夏日炎炎"),
    AUTUMN("黄", "秋风萧瑟"),
    WINTER("蓝", "冰雪皑皑");  //第一行是常量  每个常量都是枚举类创建的对象,可以写构造方法        public static final

    private String color;
    private String msg;

    Season() {
    }

    Season(String color,String msg)
    {
        this.color=color;
        this.msg=msg;
    }

    public String getColor() {
        return color;
    }

    public String getMsg() {
        return msg;
    }

    public static void main(String[] args) {
        Season[] seasons = Season.values();
        for(Season s:seasons){
            System.out.println(s.ordinal()+"--"+s.name()+"--"+s.getColor()+"--"+s.getMsg());
        }
    }
}

测试结果:

Mysql多表查询

SQL之多表查询_sql多表查询-CSDN博客

内连接:(返回两张表的交集)

隐式内连接  

select * from t1,t2 where 条件;

显式内连接:

select * from t1 join t2 on 条件;

外连接:

左外连接:

select * from t1 left join t2 on 条件;  //返回t1的所有结果和t1,t2的交集

右外连接:

select * from t1 right join t2 on 条件;  //返回t2的所有结果和t1,t2的交集

注解

@Deprecated :表示已经过时



@SuppressWarnings("all") 抑制编译器所产生的所有类型的警告

元注解——注解的注解

@Retention


@Target

用元注解来写一个自定义注解

自定义注解:
package com.example.testAnnotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)  //可用于修饰类
public @interface MyAnnotation {
    String className();
    String methodName();
//    int age() default 18;
}
测试:
Student类:
package com.example.testAnnotation;

import lombok.Data;

@Data
public class Student {
    int id;
    String name;
    int age;

    public void m1(){
        System.out.println("m1方法被调用");
    }
}
测试代码:
package com.example.testAnnotation;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

@MyAnnotation(className = "com.example.testAnnotation.Student",methodName = "m1") 
public class test {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
        //拿到注解中的 className 和 methodName
        Class<test> testClass = test.class;
        MyAnnotation annotation = testClass.getAnnotation(MyAnnotation.class);
        String className = annotation.className();
        String methodName = annotation.methodName();
        System.out.println("className:"+className+"\n"+"methodName:"+methodName);


        //加载类
        Class<?> c = Class.forName(className);
        //获取无参构造
        Constructor<?> constructor = c.getConstructor();
        //创建实例
        Object obj = constructor.newInstance();
        //获取方法
        Method method = c.getMethod(methodName);
        //调用方法(invoke)
        method.invoke(obj);
    }
}
测试结果:

JDK8新特性:可重复注解和类型注解

JDK8新特性(六):JDK 8 可重复注解 与 类型注解_jdk8 类型注解-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值