- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从文件中逐行读取,然后将详细信息插入 mysql 数据库中。但问题是有些行不包含我称为 natted ip 和 port 的字段。我循环遍历该文件然后插入到数据库中。然而问题是,因为并非每一行都包含 natted ip 和端口,所以我需要数据库在插入到它们不出现的表中时跳过这两列,但插入其余的并且不重复。我怎样才能确保这一点?
public static void readData() throws ClassNotFoundException, SQLException{
File fileName = new File(FILE);
try(Scanner input = new Scanner(fileName) ){
String firstLine, secondLine, thirdLine;
firstLine = input.nextLine();
secondLine = input.nextLine();
String[] secondString = secondLine.split(" ");
for(String string: secondString){
timestamp = secondString[0]+" "+secondString[1]; //to be inserted
timezone = secondString[2]; //to be inserted
}
thirdLine = input.nextLine();
String[] thirdString = thirdLine.split(":");
for(String string: thirdString){
session = thirdString[1].trim(); //to be inserted
}
while(input.hasNextLine()){
String line;
line = input.nextLine();
String[] cdr_string = line.split(" ");
for(String string:cdr_string){
type = cdr_string[1].trim(); //to be inserted
internalIP_and_port = cdr_string[8];
destinationIP_and_port = cdr_string[10].trim();
}
if(internalIP_and_port.contains("[")){
String[] splitIPs = internalIP_and_port.split(Pattern.quote("["));
for(String string:splitIPs){
internalIP_and_port = splitIPs[0].trim();
nattedIP_and_port = splitIPs[1].trim();
nattedIP_and_port = nattedIP_and_port.substring(0, nattedIP_and_port.length() -1);
}
String[] splitIP_and_port = nattedIP_and_port.split(":");
for(String string:splitIP_and_port){
natted_ip = splitIP_and_port[0].trim(); //to be inserted
natted_port = splitIP_and_port[1].trim(); //to be inserted
}
// System.out.println(natted_ip);
}
String[] split_internal_IP_and_port = internalIP_and_port.split(":");
for(String string : split_internal_IP_and_port){
internal_ip = split_internal_IP_and_port[0].trim(); //to be inserted
internal_port = split_internal_IP_and_port[1].trim(); //to be inserted
}
String[] split_destination_IP_and_port = destinationIP_and_port.split(":");
for(String string : split_destination_IP_and_port){
destination_ip = split_destination_IP_and_port[0].trim(); //to be inserted
destination_port = split_destination_IP_and_port[1].trim(); //to be inserted
}
saveData();
}
}catch(IOException ex){
System.out.println(ex);
}
File log_done = new File(FILE_DONE);
fileName.renameTo(log_done);
fileName.delete();
}
private static void saveData() throws ClassNotFoundException, SQLException{
Connection con = connect();
PreparedStatement stmt = con.prepareStatement("INSERT INTO decoder(type, internal_ip, internal_port, natted_ip, natted_port, destination_ip, destination_port, session, timestamp, timezone, filename) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
stmt.setString(1, type);
stmt.setString(2, internal_ip);
stmt.setString(3, internal_port);
stmt.setString(4, natted_ip);
stmt.setString(5, natted_port);
stmt.setString(6, destination_ip);
stmt.setString(7, destination_port);
stmt.setString(8, session);
stmt.setString(9, timestamp);
stmt.setString(10, timezone);
stmt.setString(11, FILENAME);
stmt.executeUpdate();
}
public static Connection connect() throws ClassNotFoundException, SQLException{
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection(URL, USERNAME, PASSWORD);
}```
I'm reading from this file:
udp VPN: public --> public 41.72.118.178:56620 --> 103.10.116.19:51130
https VPN: public --> public 10.65.19.224:46765[165.56.53.149:15674] --> 31.13.75.36:443
tcp VPN: public --> public 35.212.240.3:34533 --> 41.72.96.58:20792
dns VPN: public --> public 10.65.179.189:12718 --> 165.56.45.2:53
https VPN: public --> public 10.65.145.37:34490[165.56.53.161:38013] --> 185.60.219.9:443
https VPN: public --> public 10.65.14.63:43956[165.56.53.178:27552] --> 216.58.223.106:443
https VPN: public --> public 10.66.32.44:37573[165.56.53.141:29821] --> 185.60.219.33:443
udp VPN: public --> public 172.21.242.243:10188[41.72.123.88:55777] --> 119.3.74.66:10327
http VPN: public --> public 172.21.218.82:65167[41.72.121.132:46765] --> 5.45.58.214:80
https VPN: public --> public 10.66.118.81:52792[165.56.53.185:46319] --> 104.82.200.59:443
udp VPN: public --> public 76.64.76.78:13114 --> 41.72.108.238:34835
I want it to show like this:
+----+----------+----------------+---------------+---------------+------------
| id | type | internal_ip | internal_port | natted_ip | natted_port
+----+----------+----------------+---------------+---------------+------------
| 1 | udp | 41.72.118.178 | 56620 | NULL | NULL |
| 2 | https | 10.65.19.224 | 46765 | 165.56.53.149 | 15674 |
| 3 | tcp | 35.212.240.3 | 34533 | NULL | NULL |
| 4 | dns | 10.65.179.189 | 12718 | NULL | NULL |
| 5 | https | 10.65.145.37 | 34490 | 165.56.53.161 | 38013 |
| 6 | https | 10.65.14.63 | 43956 | 165.56.53.178 | 27552 |
| 7 | https | 10.66.32.44 | 37573 | 165.56.53.141 | 29821 |
| 8 | udp | 172.21.242.243 | 10188 | 41.72.123.88 | 55777 |
| 9 | http | 172.21.218.82 | 65167 | 41.72.121.132 | 46765 |
| 10 | https | 10.66.118.81 | 52792 | 165.56.53.185 | NULL |
| 11 | udp | 76.64.76.78 | 13114 | NULL | NULL |
| 12 | https | 10.66.81.19 | 34736 | 165.56.53.81 | 29021 |
| 13 | tcp | 10.66.18.62 | 55976 | 165.56.53.233 | 62585
And not like this:
+----+----------+----------------+---------------+---------------+------------
| id | type | internal_ip | internal_port | natted_ip | natted_port
+----+----------+----------------+---------------+---------------+------------
| 1 | udp | 41.72.118.178 | 56620 | NULL | NULL |
| 2 | https | 10.65.19.224 | 46765 | 165.56.53.149 | 15674 |
| 3 | tcp | 35.212.240.3 | 34533 | 165.56.53.149 | 15674 |
| 4 | dns | 10.65.179.189 | 12718 | 165.56.53.149 | 15674 |
| 5 | https | 10.65.145.37 | 34490 | 165.56.53.161 | 38013 |
| 6 | https | 10.65.14.63 | 43956 | 165.56.53.178 | 27552 |
| 7 | https | 10.66.32.44 | 37573 | 165.56.53.141 | 29821 |
| 8 | udp | 172.21.242.243 | 10188 | 41.72.123.88 | 55777
最佳答案
您应该在外部初始化 natted_ip 和 natted_port,如下代码所示。因为这个变量保存了以前记录的数据,并且您不会清除它们。对于所有可以为 null 的变量都可能发生这种情况。
natted_ip = null;
natted_port = null;
for(String string:splitIP_and_port){
natted_ip = splitIP_and_port[0].trim();
natted_port = splitIP_and_port[1].trim();
}
关于java - 如何将字段插入 mysql 数据库,但如果重复则跳过一两列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55374335/
在有些场景下,我们需要对我们的varchar类型的字段做修改,而修改的结果为两个字段的拼接或者一个字段+字符串的拼接。 如下所示,我们希望将xx_role表中的name修改为name+id。
SELECT incMonth as Month, SUM( IF(item_type IN('typ1', 'typ2') AND incMonth = Month, 1, 0 ) )AS
我最近读到 volatile 字段是线程安全的,因为 When we use volatile keyword with a variable, all the threads read its va
我在一些模型中添加了一个 UUID 字段,然后使用 South 进行了迁移。我创建的任何新对象都正确填充了 UUID 字段。但是,我所有旧数据的 UUID 字段为空。 有没有办法为现有数据填充 UUI
刚刚将我的网站从 mysql_ 更新为 mysqli,并破坏了之前正常运行的查询。 我试图从旋转中提取 id,因为它每次都会增加 1,但我不断获取玩家 id,有人可以告诉我我做错了什么吗?我尝试了将
我在 Mac OS X 上使用带有 Sequel Pro 的 MySQL。我想将一个表中的一个字段(即名为“GAME_DY”的列)复制到另一个名为“DAY_ID”的表的空字段中。两个表都是同一数据库的
问题: 是否有可能有一个字段被 JPA 保留但被序列化跳过? 可以实现相反的效果(JPA 跳过字段而序列化则不会),如果使用此功能,那么相反的操作肯定会很有用。 类似这样的事情: @Entity cl
假设我有一个名为“dp”的表 Year | Month | Payment| Payer_ID | Payment_Recipient | 2008/2009 | July
我将尝试通过我的 Raspberry Pi 接入点保证一些 QoS。 开始之前,我先动手:我阅读了有关 tcp、udp 和 ip header 的内容。在IP header description我看
如果你能弄清楚如何重命名这个问题,我愿意接受建议。 在 Dart 语言中,可以编写一个带有 final 字段的类。这些是只能设置的字段构造函数前 body 跑。这可以在声明中(通常用于类中的静态常量)
你怎么样? 我有两个带有两个字段的日期选择器 我希望当用户选择 (From) 时,第二个字段 (TO) 将是 next day 。比如 booking.com 例如:当用户选择From 01-01-2
我想我已经看到了这个问题的一些答案,这些答案可能与我需要的相差不远,但我对 mysql 的了解还不够确定,所以我会根据我的具体情况提出问题。 我有一个包含多个表的数据库,为此,如果“image”表上的
我在 mySQL 数据库中有 2 个表: customers ============ customer_id (1, 2 ) customer_name (john, mark) orders ==
我正在开发一个员工目标 Web 应用程序。 领导/经理在与团队成员讨论后为他们设定目标。这是一年/半年/季度,具体取决于组织遵循的评估周期。 现在的问题是添加基于时间段的字段或存档上一季度/年度数据的
我正在寻找允许内容编辑器从媒体库中选择多个文件的东西,这些文件将在渲染中列出。他们还需要能够上传文件和搜索。它必须在页面编辑器(版本 8 中称为体验编辑器)中工作。 到目前为止我所考虑的: 一堆文件字
现在,我有以下由 original.df %.% group_by(Category) %.% tally() %.% arrange(desc(n)) 创建的 data.frame。 DF 5),
我想知道是否有一些步骤/解决方案可以处理错误消息并将它们放入 Pentaho 工具中的某个字符串或字段中?例如,如果连接到数据库时发生某些错误,则将该消息从登录到字符串/字段。 最佳答案 我们在作业的
如何制作像短信应用程序一样的“收件人”字段?例如,右侧有一个“+”按钮,当添加某人时,名称将突出显示并可单击,如圆角矩形等。有没有内置的框架? 最佳答案 不,但请参阅 Three20 的 TTMess
是否可以获取记录的元素或字段的列表 通过类型信息类似于类的已发布属性的列表吗? 谢谢 ! 最佳答案 取决于您的delphi版本,如果您使用的是delphi 2010或更高版本,则可以使用“新rtti”
我正在构建一个 SQLite 数据库来保存我的房地产经纪人的列表。我已经能够使用外键来识别每个代理的列表,但我想在每个代理的记录中创建一个列表;从代理商和列表之间的一对一关系转变为一对多关系。 看这里
我是一名优秀的程序员,十分优秀!