注解,即元数据,形式化地在代码中添加信息,把元数据与源代码文件结合在一起。注解可以完整地描述程序所需的信息。可以使用注解来简化和自动化重复的过程或代码

javaSE5有三种注解:

`@Override`表示当前方法将覆盖父类中的方法, `@Deprecated`表示使用当前元素时会发出警告, `@SuppressWarnings`关闭不必要的编译器警告信息

创建一个自定义注解时,有四种注解可以使用。

注解 != 注释

注解是源代码层面的东西

**元注解:**

定义注解时,需要使用一些元注解来修饰注解:

`@Target`表示定义的注解的使用域(是一个方法METHOD或一个域)

METHOD方法声明, CONSTRUCTOR构造器声明, FIELD域声明, LOCAL_VARIABLE局部变量声明, PACKAGE包声明, PARAMETER参数声明, TYPE类,接口,或枚举类型声明

`@Rectetion`定义注解的存在时间(源代码SOURCE,类文件CLASS,运行时RUNTIME)

定义的注解中没有方法的注解叫做标记注解maker annotation

`@DOcument`表示将此注解包含在Javadoc中

`@Inherit`允许子类继承父类中的注解

**注解的元素声明:**

元素可以使用的种类:1.所有基本数据类型;2.String;3.Class;4.enum;5.Annotation;6.以上5种的数组。*名义上不允许包装类型*,元素不能有不确定值null,至少有默认值。可以使用默认值为负数或者空字符串表示参数的不正确。

```java

@Target(ElementType.METHOD)

@RetentionPolicy(ElementType.RUNTIME)

public @interface UseCase{

public int id();

public String description() default "no description";

}

```

在使用该UseCase注解时,需要使用键值对的方式给出id和description

**编写创建注解处理器:**

注解处理器,读取注解,留一个方法接口

注解的属性为int,和String,int型的属性作为注解的标志,可以使用一个方法接口,参数为一个Integer的容器,一个Class对象。

```java

注解处理器接口:

public static void useCaseTracker(List useCase, Class> cl){...}

调用注解处理器:

useCaseTracker(new ArrayList, myUseCase.class);

```

class是一个关键字,不能作为参数。

**注解的扩展应用:**

框架应用:Spring框架,Spring freamwork,等等一系列。对象映射框架ORM,mybatis,hibernate等等。使用注解来简化和自动化重复代码。

**注解的应用理解:**

一般的自定义注解如果不使用注解处理器,则自定义的注解与注释没有什么区别。向代码中添加信息。添加注解处理器后,可以实施监控,对类,方法,参数,进行监控,处理使用了这些注解的方法的参数,对这些数据进行处理分析,可以打印日志,可以进行拦截,可以通过注解处理器进行代码复用。

hibernate 时间 默认值 -(mysql) 注解_注解@ -shihchang相关推荐

  1. mysql关于时间的面试题,mysql时间设置默认值MySQL常见面试题

    1.limit(选出10 到20 条) select * from students order by id limit 9,10; 2.MySQL 会使用索引的操作符号 =,>,=,betwe ...

  2. mysql添加时间默认值_mysql 创建时间字段添加默认值

    在创建时间字段的时候 例如:字段  create_time   默认值可以设置为CURRENT_TIMESTAMP插入数据时候会自动添加时间,默认值为当前时间 update_time  默认值可以设置 ...

  3. java 注解默认值_Java系列之注解

    Java 注解(Annotation)又称之为 Java 标注.元数据,是 Java 1.5 之后加入的一种特殊语法,通过注解可以标注 Java 中的类.方法.属性.参数.包等,可以通过反射原理对这些 ...

  4. mysql创建数据库没有默认值报错_详解Mysql数据库date, datetime类型设置0000-00-00默认值(default)报错问题...

    现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00",出现异常:Invalid default value for 'time' 原因 ...

  5. mysql设置时间默认值

    应用场景: 1.在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间: 2.在数据库中,要记录每条数据是什么时候修改的,不需要应用程序去特意 ...

  6. mysql无效的时间默认值_mysql – ‘timestamp’的默认值无效

    我在我的数据库中收到错误.我遇到时间戳的无效默认值. 这是我的数据库: CREATE TABLE IF NOT EXISTS `post` ( `id` int(11) NOT NULL, `text ...

  7. mysql数据库字段默认值设为什么_为什么数据库字段需要设置默认值

    收到一只叮咚 mysql数据库默认对varchar的字段的值不就是空('')么,对数值默认是0,那还需要设置默认值的必要性何在?疑问的原因是没启用MySQL的严格模式(strictmode),很多快捷 ...

  8. mysql 整型默认值,MySQL表字段设立默认值

    mysql表字段设置默认值 环境 MySQL 5.1 + 命令行工具 问题 MySQL表字段设置默认值 解决 --SQL: CREATE TABLE test( i_a int NOT NULL DE ...

  9. SQLServer 2012 可视化窗口中,设置“时间”默认值为“当前时间

    最近,需要在SQLServer 2012中,设置datetime的默认值为当前时间. 通过可视化窗口进行设置,而不是将getdate()函数写在sql语句中,也不是将'2022-2-2 22:22:2 ...

最新文章

  1. c语言2维动态数组的创建,如何创建一个动态2维数组?
  2. linux下redis安装教程,linux下安装配置redis图文详解
  3. Spring MVC测试框架入门–第2部分
  4. CSS环绕球体的旋转文字-3D效果
  5. 在C#中动态地添加控件
  6. 记一次easywechat企业付款问题
  7. Flash Builder 4.7 注释字体修改
  8. DNF2020年全新脚本展示第一部分
  9. 美国通胀放缓幅度超预期 美元或面临进一步承压?
  10. java爬虫爬取b站视频分享iframe代码并保存10000条数据到数据库
  11. 如何实现语音转文字?这三个方法简单又实用,轻松实现语音转文字
  12. Unity小游戏算法分析与实现(Unity+XR+游戏开发+算法+MVC+斗地主+耳轮跳+见缝插针+王者荣耀+绝地求生+立钻哥哥+==)
  13. sql优化之终极方案
  14. 你不会还不知道数组里面有这些好用的方法吧!(JavaScript)
  15. springboot调用第三方邮箱发送邮件过程详解
  16. 【群友问题讨论】java类对象数组一些知识盲区
  17. cf网络原因服务器无响应,CF老出现网络出现异常,与服务器断开
  18. 道翰天琼认知智能奠基者领导者 中国原生认知智能科技 认知智能整体核心科技解密
  19. Python保存TXT文件
  20. sphinx:基于 Python 的文档生成工具

热门文章

  1. 上海交大计算机网络课件 翁惠玉 ppt,上海交通大学 计算机网络PPT3 翁惠玉.ppt
  2. [云炬创业基础笔记]第四章测试23
  3. 科大星云诗社动态20201211
  4. [我的1024开源程序]30元写的广义误差分布函数
  5. 【附源码】一看就懂的感知机算法PLA
  6. 仔细想了想支持向量机(Support Vector Mechine)
  7. VTK修炼之道4_Win32控制台项目
  8. C#反射技术之一动态读取和设置对象的属性值
  9. Linux基础(一)----- Linux常用命令
  10. STM32开发 -- VS2017错误