如何在Java中将String数据类型转换为XML格式?

时间:2016-11-08 07:59:21

标签: java xml jsp servlets

我正在处理这个Web应用程序,我从表单中捕获的值将传递给存储过程。现在,存储过程的一个参数接受XML String。该参数被称为" DetailOld"我不知道如何将表单中的字符串值转换为XML字符串。 有人可以帮帮我吗?

@Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
       // processRequest(request, response);
        PrintWriter out1 = response.getWriter();
         out1.println("Hey");
        try {
            // processRequest(request, response);
            out1.println("Servlet ");
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Connectioncheck.class.getName()).log(Level.SEVERE, null, ex);
        }
        Connection conn = null;
                PreparedStatement myStmt = null;
                int num = -1;

        try {
            conn = DriverManager.getConnection("jdbc:sqlserver://MPESA\\SQL2012;user=realm;password=friend;database=ElmaTest");
            if(conn!=null)
            {
                out1.print("Connection succesful");

              try{  


                myStmt = conn
                    .prepareStatement("exec p_AddEditAccountCustomer ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?");

                if(myStmt!=null)
                {
               String mnumber = request.getParameter("mobilenumber");
                String mtitle = request.getParameter("Title");
                 String fname= request.getParameter("firstname");
                String mName = request.getParameter("MiddleName");
                String lname = request.getParameter("LastName");
                 String maddress = request.getParameter("address");
                 String melmaid = request.getParameter("elmaid");
                 String mcity = request.getParameter("City");
                 String mId = request.getParameter("Idtype");
                 String midno = request.getParameter("idno");
                 String operatorid = "1";
                 String BankId = "99";
                 String Country = "Kenya";
                 String customercountry = "1";
                 String maccntid = request.getParameter("accountid");
                 String accounttype="1";
                 String cardnumber ="1";
                 String mcurrency = request.getParameter("currency");
                String branchid = "1";
                String AliasName="1";

                String createdBy="1";
                String createdOn ="2016-11-02";
                String DetailOld = "1";`//this is what the procedure //expects as an XML string. I have used the default value 1 for testing //purpose.`
                String DetailNew = "1";
                String ModuleId="2001";
                String eventId="1";
                myStmt.setString(1, mnumber);
                myStmt.setString(2, mtitle);
                myStmt.setString(3, fname);
                myStmt.setString(4, mName);
                myStmt.setString(5, lname);
                myStmt.setString(6, maddress );
                myStmt.setString(7, melmaid);
                myStmt.setString(8,mcity);
                myStmt.setString(9, mId );
                myStmt.setString(10, midno);
                myStmt.setString(11,operatorid );
                myStmt.setString(12, BankId );
                myStmt.setString(13, Country);
                myStmt.setString(14, customercountry );
                myStmt.setString(15, maccntid);
                myStmt.setString(16, accounttype);
                myStmt.setString(17, cardnumber);
                myStmt.setString(18, mcurrency);
                myStmt.setString(19, branchid);
                myStmt.setString(20,AliasName );
                myStmt.setString(21, createdBy);
                myStmt.setString(22,createdOn);
                myStmt.setString(23, DetailOld);
                myStmt.setString(24, DetailNew );
                myStmt.setString(25, ModuleId);
                myStmt.setString(26,eventId);
                myStmt.executeQuery();

                }

              }catch (SQLException exc) {
                  exc.printStackTrace();
        } finally {

                   //out1.println("Done properly");
                   response.sendRedirect("CustomerDetails.jsp");



                  myStmt.close();
                  conn.close();
        }



















            }

        }  catch (SQLException ex) {
            Logger.getLogger(Connectioncheck.class.getName()).log(Level.SEVERE, null, ex);
        }


    }

XML格式 - String detailold-

<Table1>
  <CustomerID>1916507095</CustomerID>
  <AccountType>BANK</AccountType>
  <Country>kenya</Country>
  <BankID>99</BankID>
  <BankAccountID>001001000095</BankAccountID>
  <TitleOfAccount>Mr</TitleOfAccount>
  <FirstName>Pramod1</FirstName>
  <MiddleName>Kb1</MiddleName>
  <LastName>Sahoo</LastName>
  <BranchID>000</BranchID>
  <TypeOfID>Driving License</TypeOfID>
  <IDNumber>276999</IDNumber>
  <EmailID>Pramodk@CS.com</EmailID>
  <Address>Nairobi</Address>
  <City>AWENDO</City>
  <CardNumber>kenya</CardNumber>
  <CurrencyID>KES</CurrencyID>
  <AliasName>pramod</AliasName>
</Table1>

1 个答案:

答案 0 :(得分:0)

  1. 您可以使用getter setter(POJO)创建java类 - 比如Detailold.java
  2. 使用您从循环数据库获取的数据填充该POJO对象。
  3. 使用JAXB
  4. 将该对象转换为XML

    以下是如何使用JAXB将数据转换为XML的一个示例 - https://www.mkyong.com/java/jaxb-hello-world-example/

相关问题