java读取mysql 写入xml文件_xml文件怎么读取到数据库

xml文件读取到数据库

第一步,导包

c3p0,dom4j,jaxen,MySQL-connector

第二步 xml文件,config文件

第三步 javabean

第四步 c3p0的工具类

第五步 读取xml文件SAXReader中的xpath的方式

首先需要map集合添加别名,遍历读取到的文件,

给了list

第六步,list给了c3p0的连接数据库的类

第一步,导包

c3p0,dom4j,jaxen,MySQL-connector

第二步 xml文件,config文件

xml文件,config文件根据需求具体实现

Xsd的约束<?xml version="1.0" encoding="UTF-8"?>

xmlns="http://www.w3.org/2001/XMLSchema"

targetNamespace="xiaoge"

elementFormDefault="qualified">

第三步 javabean

根据需求在具体做

第四步 c3p0的工具类

package com.itheima.util;import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0Util {

private static final ComboPooledDataSource DATASOURCE = new ComboPooledDataSource();

public static Connection getConn(){

try {

return DATASOURCE.getConnection();

} catch (SQLException e) {

e.printStackTrace();

}

return null;

}

public static void release(ResultSet rs, Statement stmt, Connection conn){

if (rs != null) {

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

rs = null;

}

if (stmt != null) {

try {

stmt.close();

} catch (SQLException e) {

e.printStackTrace();

}

stmt = null;

}

if (conn != null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

conn = null;

}

}

}

第五步 读取xml文件SAXReader中的xpath的方式

首先需要map集合添加别名,遍历读取到的文件,

给了list

package com.itwjx.xml;import java.sql.Connection;

import java.sql.PreparedStatement;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

import org.junit.Test;

import com.itwjx.entity.XMLDomain;

import com.itwjx.util.C3P0Util;/**

* 数据库名称 demo

* 表名userDomain

* 字段: id int

* name varchar

* birthday date

* hobby char

* @author WBH

*

*/

public class WrokXmlAns {

@Test

public void readXMLtoDB(){

try {

//读取XML文件数据

List domains = readXML("src/aaa.xml");

//将数据保存到数据库

saveXMLDateToDB(domains);

} catch (Exception e) {

e.printStackTrace();

}

}

private List readXML(String path) throws DocumentException, ParseException {

SAXReader read = new SAXReader();

Document document = read.read(path);

Map map = new HashMap();

map.put("wbh", "xiaofan");

read.getDocumentFactory().setXPathNamespaceURIs(map);

List nodes = document.selectNodes("//wbh:member");

List domains = new ArrayList();

for (Element element : nodes) {

String id = element.attributeValue("no");

String name = element.element("name").getText();

String birthday = element.element("birthday").getText();

String hobby = element.element("hobby").getText();

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

Date date = df.parse(birthday);

XMLDomain domian = new XMLDomain(

Integer.parseInt(id), name,date, hobby);

domains.add(domian);

}

return domains;

}

private void saveXMLDateToDB(List domains) {

//

Connection conn = null;

PreparedStatement ps = null;

try {

conn = C3P0Util.getConn();

ps = conn.prepareStatement("insert into userDomain values(?,?,?,?)");

for (XMLDomain user : domains) {

ps.setInt(1, user.getId());

ps.setString(2, user.getName());

ps.setDate(3, new java.sql.Date(user.getBirthday().getTime()));

ps.setString(4, user.getHobby());

ps.addBatch();

}

ps.executeBatch();

} catch (Exception e) {

e.printStackTrace();

} finally {

C3P0Util.release(null, ps, conn);

}

}

}

第六步,list给了c3p0的连接数据库的类private void saveXMLDateToDB(List domains) {

//

Connection conn = null;

PreparedStatement ps = null;

try {

conn = C3P0Util.getConn();

ps = conn.prepareStatement("insert into userDomain values(?,?,?,?)");

for (XMLDomain user : domains) {

ps.setInt(1, user.getId());

ps.setString(2, user.getName());

ps.setDate(3, new java.sql.Date(user.getBirthday().getTime()));

ps.setString(4, user.getHobby());

ps.addBatch();

}

ps.executeBatch();

} catch (Exception e) {

e.printStackTrace();

} finally {

C3P0Util.release(null, ps, conn);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Java的JDBC(Java Database Connectivity) API来连接MySQL数据库,并使用JSON库将查询结果封装成JSON格式的文件。以下是一个简单的示例: 首先,您需要导入MySQL和JSON库的依赖项。使用Maven项目可以在pom.xml文件添加以下依赖项: ```xml <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency> </dependencies> ``` 接下来,编写Java代码来连接MySQL数据库和生成JSON文件: ```java import java.io.FileWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import com.google.gson.JsonArray; import com.google.gson.JsonObject; public class Main { public static void main(String[] args) throws Exception { // 连接到MySQL数据库 String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "password"; Connection conn = DriverManager.getConnection(url, user, password); // 执行查询语句 Statement stmt = conn.createStatement(); String sql = "SELECT id, name, age FROM mytable"; ResultSet rs = stmt.executeQuery(sql); // 将查询结果封装成JSON对象 JsonArray jsonArray = new JsonArray(); while (rs.next()) { JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("id", rs.getInt("id")); jsonObject.addProperty("name", rs.getString("name")); jsonObject.addProperty("age", rs.getInt("age")); jsonArray.add(jsonObject); } // 将JSON对象写入文件 FileWriter fileWriter = new FileWriter("output.json"); fileWriter.write(jsonArray.toString()); fileWriter.close(); // 关闭连接 rs.close(); stmt.close(); conn.close(); } } ``` 以上代码将查询结果封装成一个包含多个JSON对象的JSON数组,并将其写入名为"output.json"的文件。您可以根据自己的需要更改查询语句和输出文件的名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值