java - 使用 Java 将 XML 数据加载到 mySql 的最佳方法是什么?

标签 java mysql xml

我已经在致力于一个使用 JAVA 优化与数据库交互的项目。 第一步,我开始将 XML 数据加载到 mysql。 我发现很多文章都在讨论这个问题,他们在插入数据之前解析数据,就像这篇文章一样: https://dzone.com/articles/load-xml-into-mysql-using-java

但我试图把事情做得更简单:所以 我编写了使用 LOAD local XML infile..(sql 查询)加载数据的代码,并且运行良好。

package my.project;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class App {
  static final String dbUrl = "jdbc:mysql://localhost/dbOptimization";
  static final String password = "azerty";
  static final String user = "root";
  public Connection conn; 

  /*
   * Load jdbc Driver
   */
  static {
    try {
      Class.forName("com.mysql.jdbc.Driver");
      System.out.println("Dirver loaded");
    } catch (ClassNotFoundException ex) {
      System.err.println("Cannot load driver " + ex);
    }
  }

  /*
   * Connect to DB
   */
  public void connect() {
    try {
      conn = DriverManager.getConnection(dbUrl, user, password);
      System.out.println("Database connected!");
    } catch (SQLException e) {
      System.err.println("Cannot connect the database!");
    }
  }

  /*
   * Create Table and Load Data
   */
  public void createTable() {
    try {
     conn.createStatement().execute("create Table badges(Id INTEGER,UserId VARCHAR(20),Name varchar(20),Date DATE ,Class INTEGER ,TagBased VARCHAR(20))");
      System.out.println("table created");
      conn.createStatement().execute("Load xml local infile '/home/lenovo/Bureau/Project/3dprinting/Badges.xml'into Table badges(Id,UserId,Name,Date,Class,TagBased)");
      System.out.println("data parsed");
    } catch (SQLException e) {
      // TODO Auto-generated catch block
        System.out.println("connot create Table" + e);
    }
  }


  public static void main(String[] args) {
    System.out.println("Hello World!");
    App app =new App();
    app.connect();
    app.createTable();
  }
}

请问我的代码有什么问题吗?! 每种方法的优点和缺点是什么? 哪一个的性能更好?

谢谢

最佳答案

答案取决于您是否要将 XML 作为整个文档使用。

如果您使用 XPath 在文档内部进行搜索,则解析和加载可能有意义。

关于java - 使用 Java 将 XML 数据加载到 mySql 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45909447/

相关文章:

mysql - 与执行 "SELECT *"相比,从 SQL 语句中选择特定值是否提高了效率

mysql - 将附加要求合并到遗留数据库设计中

Java - xml 列表或一个值

java - AndEngine AnimatedSprite 仅对第一个 Sprite 进行动画处理

Java/安卓 : SQLite or file for indexing?

java - 无法使用JAVA分割带有 '\'字符的字符串

java - 无法访问项目目录中的 XML 文件

java - 将整数表示为连续正整数之和

MySQL,分组依据和最新结果

java - 有效 XML 的 XMLStreamException