身份证代码

INSERT 语句中行值表达式的数目超出了 1000 行值的最大允许值。 
insert into admUser(username, mobile, age) values(,,),(,,),(,,)来批量导入,
导入数据多出现这样的问题
为了解决这个问题,加一个判断,超过一千条就分批插入。
完整脚本 请前往https://download.csdn.net/download/weixin_43074825/12525308

insert into User_City(province,citycode,citycode2,city)VALUES
(11,1100,110000,'北京市'),
(11,1101,110100,'北京市市辖区'),
(11,1101,110101,'北京市东城区'),
(11,1101,110102,'北京市西城区'),
(11,1101,110103,'北京市崇文区'),
(11,1101,110104,'北京市宣武区'),
(11,1101,110105,'北京市朝阳区'),
(11,1101,110106,'北京市丰台区'),
(11,1101,110107,'北京市石景山区'),
(11,1101,110108,'北京市海淀区'),
(11,1101,110109,'北京市门头沟区'),
(11,1101,110111,'北京市房山区'),
(11,1101,110112,'北京市通州区'),
(11,1101,110113,'北京市顺义区'),
(11,1101,110114,'北京市昌平区'), (11,1101,110115,'北京市大兴区'), (11,1101,110116,'北京市怀柔区'), (11,1101,110117,'北京市平谷区'), (11,1102,110200,'北京市市辖县'), (11,1102,110221,'北京市昌平县'), (11,1102,110222,'北京市顺义县'), (11,1102,110223,'北京市通县'), (11,1102,110224,'北京市大兴县'), (11,1102,110226,'北京市平谷县'), (11,1102,110227,'北京市怀柔县'), (11,1102,110228,'北京市密云县'), (11,1102,110229,'北京市延庆县'), (12,1200,120000,'天津市'), (12,1201,120100,'天津市市辖区'), (12,1201,120101,'天津市和平区'), (12,1201,120102,'天津市河东区'), (12,1201,120103,'天津市河西区'), (12,1201,120104,'天津市南开区'), (12,1201,120105,'天津市河北区'), (12,1201,120106,'天津市红桥区'), (12,1201,120107,'天津市塘沽区'), (12,1201,120108,'天津市汉沽区'), (12,1201,120109,'天津市大港区'), (12,1201,120110,'天津市东丽区'), (12,1201,120111,'天津市西青区'), (12,1201,120112,'天津市津南区'), (12,1201,120113,'天津市北辰区'), (12,1201,120114,'天津市武清区'), (12,1201,120115,'天津市宝坻区'), (12,1202,120200,'天津市市辖县'), (12,1202,120221,'天津市宁河县'), (12,1202,120222,'天津市武清县'), (12,1202,120223,'天津市静海县'), (12,1202,120224,'天津市宝坻县'), (12,1202,120225,'天津市蓟县'), (13,1300,130000,'河北省'), (13,1301,130100,'河北省石家庄市'), (13,1301,130101,'河北省石家庄市市辖区'), (13,1301,130102,'河北省石家庄市长安区'), (13,1301,130103,'河北省石家庄市桥东区'), (13,1301,130104,'河北省石家庄市桥西区'), (13,1301,130105,'河北省石家庄市新华区'), (13,1301,130106,'河北省石家庄市郊区'), (13,1301,130107,'河北省石家庄市井陉矿区'), (13,1301,130108,'河北省石家庄市裕华区'), (13,1301,130121,'河北省井陉县'), (13,1301,130122,'河北省获鹿县'), (13,1301,130123,'河北省正定县'), (13,1301,130124,'河北省栾城县'), (13,1301,130125,'河北省行唐县'), (13,1301,130126,'河北省灵寿县'), (13,1301,130127,'河北省高邑县'), (13,1301,130128,'河北省深泽县'), (13,1301,130129,'河北省赞皇县'), (13,1301,130130,'河北省无极县'), (13,1301,130131,'河北省平山县'), (13,1301,130132,'河北省元氏县'), (13,1301,130133,'河北省赵县'), (13,1301,130181,'河北省辛集市'), (13,1301,130182,'河北省藁城市'), (13,1301,130183,'河北省晋州市'), (13,1301,130184,'河北省新乐市'), (13,1301,130185,'河北省石家庄市鹿泉市'), (13,1302,130200,'河北省唐山市'), (13,1302,130201,'河北省唐山市市辖区'), (13,1302,130202,'河北省唐山市路南区'), (13,1302,130203,'河北省唐山市路北区'), (13,1302,130204,'河北省唐山市东矿区'), (13,1302,130205,'河北省唐山市开平区'), (13,1302,130206,'河北省唐山市新区'), (13,1302,130207,'河北省唐山市丰南区'), (13,1302,130208,'河北省唐山市丰润区'), (13,1302,130221,'河北省丰润县'), (13,1302,130222,'河北省丰南县'), (13,1302,130223,'河北省滦县'), (13,1302,130224,'河北省滦南县'), (13,1302,130225,'河北省乐亭县'), (13,1302,130226,'河北省迁安县'), (13,1302,130227,'河北省迁西县'), (13,1302,130229,'河北省玉田县'), (13,1302,130230,'河北省唐海县'), (13,1302,130281,'河北省遵化市'), (13,1302,130283,'河北省唐山市迁安市'), (13,1303,130300,'河北省秦皇岛市'), (13,1303,130301,'河北省秦皇岛市市辖区'), (13,1303,130302,'河北省秦皇岛市海港区'), (13,1303,130303,'河北省秦皇岛市山海关区'), (13,1303,130304,'河北省秦皇岛市北戴河区'), (13,1303,130321,'河北省青龙满族自治县'), (13,1303,130322,'河北省昌黎县'), (13,1303,130323,'河北省抚宁县')(13,1304,130401,'河北省邯郸市市辖区'), (13,1304,130402,'河北省邯郸市邯山区'), (13,1304,130403,'河北省邯郸市丛台区'), (13,1304,130404,'河北省邯郸市复兴区'), (13,1304,130406,'河北省邯郸市峰峰矿区'), (13,1304,130421,'河北省邯郸县'), (13,1304,130423,'河北省临漳县'), (13,1304,130424,'河北省成安县'), (13,1304,130425,'河北省大名县'), (13,1304,130426,'河北省涉县'), (13,1304,130427,'河北省磁县'), (13,1304,130428,'河北省肥乡县'), (13,1304,130429,'河北省永年县'), (13,1304,130430,'河北省丘县'), (13,1304,130431,'河北省鸡泽县'), (13,1304,130432,'河北省广平县'), (13,1304,130433,'河北省馆陶县'), (13,1304,130434,'河北省魏县'), (13,1304,130435,'河北省曲周县'), (13,1304,130481,'河北省武安市'), (13,1305,130500,'河北省邢台市'), (13,1305,130501,'河北省邢台市市辖区'), (13,1305,130502,'河北省邢台市桥东区'), (13,1305,130503,'河北省邢台市桥西区'), (13,1305,130521,'河北省邢台县'), (13,1305,130522,'河北省临城县'), (13,1305,130523,'河北省内丘县'), (13,1305,130524,'河北省柏乡县'), (13,1305,130525,'河北省隆尧县'), (13,1305,130526,'河北省任县'), (13,1305,130527,'河北省南和县'), (13,1305,130528,'河北省宁晋县'), (13,1305,130529,'河北省巨鹿县'), (13,1305,130530,'河北省新河县'), (13,1305,130531,'河北省广宗县'), (13,1305,130532,'河北省平乡县'), (13,1305,130533,'河北省威县'), (13,1305,130534,'河北省清河县'), (13,1305,130535,'河北省临西县'), (13,1305,130581,'河北省南宫市'), (13,1305,130582,'河北省沙河市'), (13,1306,130600,'河北省保定市'), (13,1306,130601,'河北省保定市市辖区'), (13,1306,130602,'河北省保定市新市区'), (13,1306,130603,'河北省保定市北市区'), (13,1306,130604,'河北省保定市南市区'), (13,1306,130621,'河北省满城县'), (13,1306,130622,'河北省清苑县'), (13,1306,130623,'河北省保定市涞水县'), (13,1306,130624,'河北省保定市阜平县'), (13,1306,130625,'河北省保定市徐水县')


 


 


 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个自定义注解校验身份证代码示例: 首先,我们需要定义一个注解 `@IdNumber`,用于标注需要进行身份证校验的字段: ```java @Documented @Constraint(validatedBy = IdNumberValidator.class) @Target({ElementType.FIELD, ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME) public @interface IdNumber { String message() default "身份证号码不正确"; Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {}; } ``` 其中,`@Constraint(validatedBy = IdNumberValidator.class)` 表示该注解需要使用 `IdNumberValidator` 进行校验。 接着,我们需要实现 `IdNumberValidator`: ```java public class IdNumberValidator implements ConstraintValidator<IdNumber, String> { @Override public void initialize(IdNumber constraintAnnotation) { } @Override public boolean isValid(String value, ConstraintValidatorContext context) { if (StringUtils.isBlank(value)) { return true; } return isIdNumber(value); } /** * 身份证校验 * * @param idNumber 身份证号码 * @return 是否有效 */ private boolean isIdNumber(String idNumber) { String regex = "^\\d{15}$|^\\d{17}[0-9Xx]$"; if (!idNumber.matches(regex)) { return false; } String provinceCode = idNumber.substring(0, 2); if (!ProvinceCodeUtils.isValidProvinceCode(provinceCode)) { return false; } if (!isValidBirthDate(idNumber)) { return false; } return isValidCheckCode(idNumber); } /** * 校验生日日期 * * @param idNumber 身份证号码 * @return 是否有效 */ private boolean isValidBirthDate(String idNumber) { String birthDateStr; if (idNumber.length() == 15) { birthDateStr = "19" + idNumber.substring(6, 12); } else { birthDateStr = idNumber.substring(6, 14); } SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); format.setLenient(false); try { format.parse(birthDateStr); } catch (ParseException e) { return false; } return true; } /** * 校验校验码 * * @param idNumber 身份证号码 * @return 是否有效 */ private boolean isValidCheckCode(String idNumber) { if (idNumber.length() == 15) { return true; } char[] idCharArray = idNumber.toCharArray(); int[] idIntArray = new int[17]; for (int i = 0; i < 17; i++) { idIntArray[i] = Integer.parseInt(String.valueOf(idCharArray[i])); } int[] weightFactorArray = new int[]{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; int sum = 0; for (int i = 0; i < 17; i++) { sum += idIntArray[i] * weightFactorArray[i]; } int checkCodeIndex = sum % 11; char[] checkCodeArray = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}; char checkCode = checkCodeArray[checkCodeIndex]; return checkCode == idCharArray[17]; } } ``` 其中,`isValid` 方法用于进行身份证校验,`isValidBirthDate` 方法用于校验生日日期,`isValidCheckCode` 方法用于校验校验码。 最后,在需要进行身份证校验的字段上使用 `@IdNumber` 注解即可: ```java public class User { @IdNumber private String idNumber; // getter/setter 略 } ``` 这样,在使用 `@Valid` 注解校验实体时,如果 `idNumber` 字段不符合身份证规则,则会抛出 `ConstraintViolationException` 异常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值