在表whiteip中查看IP 127.0.0.1是否存在时,返回结果为空:
jdbcTemplate.queryForObject("select ip from whiteip where ip = ? limit 1", new Object[]{ip}, java.lang.String.class);
用Navicat打开表时,该IP是存在的:
但在命令行下显示数据如下,所以出错:
+-----------------+
|ip|
+-----------------+
|.0.1
|192.168.11.72
|192.168.11.74|
|192.168.11.76
|192.168.11.78
+-----------------+
原因:
录入数据时,jdbcTemplate.update("load data local infile ? into table whiteip(ip)", filepath);
每一行默认按'\t'分割数据,但文件中数据格式如下:
所以录入不准确,应加上'\t':
此时:
mysql>select ip from whiteip;
+----------------+
|ip|
+----------------+
|127.0.0.1|
|192.168.11.72|
|192.168.11.74|
|192.168.11.76|
|192.168.11.78|
+----------------+
导入文件语句还存在两个子句:FIELDS与LINES
1. 如果不指定FIELDS子句,缺省值与下面写法相同:
FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'
2. 如果不指定LINES子句,缺省值与下面写法相同:
LINES TERMINATED BY '\n'