zoukankan      html  css  js  c++  java
  • 关于注解的初级认识

    /**
    * 通过注解拼接建表语句
    * create table test_person(
    *   pid number(10) primary key,
    *   person_name varchar2(255)
    * );
    * 思路:
    *
    *
    */
    @Table(name="test_person")
    public class Person {
      @Id
      private Integer pid;
      @Column(name="person_name")
      private String pname;
      public Integer getPid() {
        return pid;
      }
      public void setPid(Integer pid) {
        this.pid = pid;
      }
      public String getPname() {
        return pname;
      }
      public void setPname(String pname) {
        this.pname = pname;
      }
      public static void main(String[] args) {
        Class clazz = Person.class;
        Table table = (Table)clazz.getAnnotation(Table.class);
        StringBuffer sql = new StringBuffer("create table "+table.name()+" (");
        Field[] fields = clazz.getDeclaredFields();
        for(int i = 0;i<fields.length;i++){
          String fieldName = fields[i].getName();
          Column col = fields[i].getAnnotation(Column.class);
          String colName = col==null?fieldName:col.name();//获取列名
          sql.append(colName);
          if(fields[i].getType()==Integer.class){
            sql.append(" number(10) ");
          }else if(fields[i].getType()==String.class){
            sql.append(" varchar2(255) ");
          }
          Id id = fields[i].getAnnotation(Id.class);
          String pkContent = id==null?",":"primary key,";
          sql.append(pkContent);
        }
        sql.deleteCharAt(sql.length()-1);
        sql.append(")");
        System.out.println(sql);
      }
    }

    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.TYPE)
    public @interface Table {
      public String name() default("");
    }

    @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.METHOD,ElementType.FIELD})
    public @interface Id {

    }

    @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.METHOD,ElementType.FIELD})
    public @interface Column {
      public String name() default("");
    }

  • 相关阅读:
    AJAX
    Django(cookie和session)
    Django(分页)
    跨站请求伪造和csrf_token使用
    Django(ORM查询联系题)
    Django(ORM查询2)
    Django(ORM查询1)
    Django(ORM常用字段)
    复习
    第二次作业:卷积神经网络 part2
  • 原文地址:https://www.cnblogs.com/hwgok/p/5377579.html
Copyright © 2011-2022 走看看