java - 如何将数据字段插入数据库中的表?
问题描述
从文件名中提取特定字段信息(Pathname.java 文件的用途)后,我需要使用 JNDI 连接将这些数据字段从类 Pathnames 插入到数据库中的表(pp_invoice_file)中。我已经在服务器的 context.xml 文件中添加了相关的资源名称。
因此 COMPANY_CODE、PARTNER_CODE、INVOICE_NUMBER、FILE_NAME 和 UPLOAD_TIME 字段将插入到下表中的列中(暂时忽略 INVOICE_FILE_JSN 和 FILE_CONTENT 列)。
数据库:pp_invoice_file
你能告诉我该怎么做吗?要编写什么函数以及如何编写相应的代码?就像你能写出整个结构一样,我第一次这样做就太好了。先感谢您。
下面是 Pathnames.java 文件
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Pathnames {
// private int INVOICE_FILE_JSN;
private String COMPANY_CODE;
private String PARTNER_CODE;
private String INVOICE_NUMBER;
private String FILE_NAME;
private String UPLOAD_TIME;
String[] firstMigrationFile;
String[] secondMigrationFile;
public void readFilename() {
// try-catch block to handle exceptions
try {
File f = new File("C:\\Users\\rsaeed\\Desktop\\files");
FilenameFilter filterFileOne = new FilenameFilter() {
@Override
public boolean accept(File f, String name) {
name = name.toLowerCase();
return name.endsWith(".png") || name.endsWith(".jpg") || name.endsWith(".jpeg");
}
};
FilenameFilter filterFileTwo = new FilenameFilter() {
@Override
public boolean accept(File f, String name) {
name = name.toLowerCase();
return name.contains(".png_") || name.contains(".jpg_") || name.contains(".jpeg_");
}
};
// using a File class as an array
File[] filesOne = f.listFiles(filterFileOne);
File[] filesTwo = f.listFiles(filterFileTwo);
if (filesOne != null) {
for (File fileOne : filesOne) {
firstMigrationFile = fileOne.getName().split("_|\\.");
System.out.println(Arrays.toString(firstMigrationFile));
COMPANY_CODE = firstMigrationFile[0];
PARTNER_CODE = firstMigrationFile[1];
INVOICE_NUMBER = firstMigrationFile[2];
UPLOAD_TIME = convertTimestampToDate(firstMigrationFile[3]);
if (filesTwo != null) {
for (File fileTwo : filesTwo) {
secondMigrationFile = fileTwo.getName().split("_|\\.");
if (secondMigrationFile[2].equals(firstMigrationFile[3])) {
FILE_NAME = secondMigrationFile[0];
}
}
}
}
}
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
public String convertTimestampToDate(String str) throws ParseException {
Date timestamp = new SimpleDateFormat("yyyyMMddHHmmss").parse(str);
String uploadTime = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss").format(timestamp);
return uploadTime;
}
public static void main(String args[]) {
Pathnames p = new Pathnames();
p.readFilename();
}
}
下面是 MyConnection.java 文件
import java.sql.Connection;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class MyConnection {
private DataSource dataSource;
public MyConnection() {
try {
InitialContext context = new InitialContext();
dataSource = (DataSource) context.lookup("jdbc/popstar"); //jdbc/popstar is the resource name
} catch (NamingException ex) {
Logger.getLogger(MyConnection.class.getName()).log(Level.SEVERE, null, ex);
}
}
public Connection getConnection() {
Connection conn = null;
try {
conn = dataSource.getConnection();
} catch (SQLException ex) {
Logger.getLogger(MyConnection.class.getName()).log(Level.SEVERE, null, ex);
}
return conn;
}
}
解决方案
推荐阅读
- mongodb - 我应该如何将完整的 .lic 或 .licx 文件插入到 mongodb 集合中?
- python - 运行 python 脚本时计算 GPU 能量
- javascript - 带按钮的多行图像滑块
- plc - 通过引用传递的输入变量的语义是什么?
- excel - Excel VBA:是否有可用于日期的动态数组?
- css - 如何将 CSS 动画导出为动画 PNG、gif 或 WEBP *具有透明度*?
- javascript - 阻止用户调用 io() 从控制台创建新的套接字连接
- node.js - 推荐模式通过 API 响应分页直到用尽?
- java - 接受字符串输入到数组中并检查数组中字符串的可用性
- swift - 如何在 Swift 中将自动锁定设置为从不?