第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

我這邊遍歷字段時候,判斷各字段是否有@Column注解總是為否,找了一上午沒找出來

/**********************Filter*********************/
package?com.fish.test;

@Table("user")
public?class?Filter?{

????@Column("id")
????private?int?id;

????@Column("user_name")
????private?String?userName;

????@Column("nick_name")
????private?String?nickName;

????@Column("age")
????private?int?age;

????@Column("city")
????private?String?city;

????@Column("email")
????private?String?email;

????@Column("mobile")
????private?String?mobile;

????public?Filter()?{
????}

????public?int?getId()?{
????????return?id;
????}

????public?void?setId(int?id)?{
????????this.id?=?id;
????}

????public?String?getUserName()?{
????????return?userName;
????}

????public?void?setUserName(String?userName)?{
????????this.userName?=?userName;
????}

????public?String?getNickName()?{
????????return?nickName;
????}

????public?void?setNickName(String?nickName)?{
????????this.nickName?=?nickName;
????}

????public?int?getAge()?{
????????return?age;
????}

????public?void?setAge(int?age)?{
????????this.age?=?age;
????}

????public?String?getCity()?{
????????return?city;
????}

????public?void?setCity(String?city)?{
????????this.city?=?city;
????}

????public?String?getEmail()?{
????????return?email;
????}

????public?void?setEmail(String?email)?{
????????this.email?=?email;
????}

????public?String?getMobile()?{
????????return?mobile;
????}

????public?void?setMobile(String?mobile)?{
????????this.mobile?=?mobile;
????}
}
/*********************Test**********************/
package?com.fish.test;

import?java.lang.reflect.Field;
import?java.lang.reflect.Method;

public?class?Test?{

????public?static?void?main(String[]?args)?{
????????Filter?f1?=?new?Filter();
????????f1.setId(10);//查詢id為10的用戶

????????Filter?f2?=?new?Filter();
????????f2.setUserName("Lucy");//模糊查詢用戶名為Lucy的用戶

????????Filter?f3?=?new?Filter();
????????f3.setEmail("liu@sina.com,?zh@163.com,?xie@qq.com");//查詢?yōu)槠渲腥我庖粋€的用戶

????????String?sql1?=?query(f1);
????????String?sql2?=?query(f2);
????????String?sql3?=?query(f3);

????????System.out.println(sql1);
????????System.out.println(sql2);
????????System.out.println(sql3);
????}

????private?static?String?query(Filter?f)?{
????????StringBuilder?sb?=?new?StringBuilder();
????????//1、獲取到class
????????Class?c?=?f.getClass();
????????//2、獲取到table的名字
????????boolean?exists?=?c.isAnnotationPresent(Table.class);
????????if?(!exists)?{
????????????return?null;
????????}
????????Table?t?=?(Table)c.getAnnotation(Table.class);
????????String?tableName?=?t.value();
????????sb.append("select*from").append(tableName).append("where?1=1");
????????//3.遍歷所有的字段
????????Field[]?fArray?=?c.getDeclaredFields();
????????for?(Field?field?:?fArray)?{
????????????//4.處理每個字段對應的值
????????????//4.1獲取字段的名
????????????boolean?fExists?=?field.isAnnotationPresent(Column.class);
????????????if(!fExists)?{
????????????????continue;
????????????}
????????????Column?column?=?field.getAnnotation(Column.class);
????????????String?columnName?=?column.value();
????????????//4.2、拿到字段的值
????????????String?fieldName?=?field.getName();
????????????String?getMethodName?=?"get"?+
????????????????????fieldName.substring(0,?1).toUpperCase()?+
????????????????????fieldName.substring(1);
????????????Object?fieldValue?=?null;
????????????try?{
????????????????Method?getMethod?=?c.getMethod(getMethodName);
????????????????fieldValue?=?(String)?getMethod.invoke(f);
????????????}?catch?(Exception?e)?{
????????????????e.printStackTrace();
????????????}
????????????//4.3、拼裝SQL
????????????sb.append("and").append(fieldName).append("=").append(fieldValue);
????????}
????????return?sb.toString();
????}
}


下面是我debug信息,找了好久都找不出來,哪位同學幫我看看啊,不勝感激

https://img1.sycdn.imooc.com//5c18708e00010e4013660736.jpg

正在回答

1 回答

猜測是你@Column注解的

@Retention(RetentionPolicy.RUNTIME)

設置錯了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

我這邊遍歷字段時候,判斷各字段是否有@Column注解總是為否,找了一上午沒找出來

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號