Wednesday, 15 July 2015

how to get sql queries data from xml to java class using struts2 -



how to get sql queries data from xml to java class using struts2 -

i using struts2 , have dao class in ,ve 1 authenticate method getting query db.properties file. question how query info xml file in method instead of db.properties. in advance.

authenticateuser method

'properties properties = new properties(); inputstream inputstream = dbconnection.class.getclassloader() .getresourceasstream("db.properties"); @override /** function authenticateuser * @return userbean */ public userbean authenticateuser(userbean userbean) throws sqlexception, nullpointerexception { // logger.info("connection establishing "); // establishing connection con = conn.createconnection(); userbean.setpassword(passwordutil.encryptpassword(userbean .getpassword().tostring())); seek { properties.load(inputstream); } grab (ioexception e) { system.out.println(e.getmessage()); } string sql = properties.getproperty("users_signin_query"); // preparedstatement used execute queries. preparedstatement = con.preparestatement(sql); preparedstatement.setstring(1, userbean.getusername()); preparedstatement.setstring(2, userbean.getpassword()); resultset = preparedstatement.executequery(); userbean bean = new userbean(); if (resultset.next()) { bean.setis_admin(resultset.getstring("is_admin")); bean.setemail(resultset.getstring("email")); bean.setfirstname(resultset.getstring("first_name")); bean.setuserid(resultset.getstring("id")); bean.setmobile(resultset.getstring("mobile")); bean.setusername(resultset.getstring("username")); bean.setlastname(resultset.getstring("last_name")); bean.setpassword(resultset.getstring("password")); homecoming bean; } else { conn.close(con); homecoming bean; } }'

db.properties

jdbc details driver=com.mysql.jdbc.driver db_url=jdbc:mysql://localhost:3306/app

database credentials

db_user_name=root db_password=root users_query= insert users(username,password,email,first_name,last_name,mobile,id) values(?,?,?,?,?,?,?)*

alternative 1: utilize dom parser (not recmmanded slow) re-create paste jaxp-api-x.x.x.jar , dom jars in project.

use next function in code

import javax.xml.parsers.documentbuilderfactory; import javax.xml.parsers.documentbuilder; import org.w3c.dom.document; import org.w3c.dom.nodelist; import org.w3c.dom.node; import org.w3c.dom.element; import java.io.file; public string readattributefromxml(string xmlfilepath,string attributename) { seek { file fxmlfile = new file("xmlfilepath"); documentbuilderfactory dbfactory = documentbuilderfactory.newinstance(); documentbuilder dbuilder = dbfactory.newdocumentbuilder(); document doc = dbuilder.parse(fxmlfile); //optional, recommended //read - http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work doc.getdocumentelement().normalize(); system.out.println("root element :" + doc.getdocumentelement().getnodename()); nodelist nlist = doc.getelementsbytagname("jdbcproperties"); (int temp = 0; temp < nlist.getlength(); temp++) { node nnode = nlist.item(temp); system.out.println("\ncurrent element :" + nnode.getnodename()); if (nnode.getnodetype() == node.element_node) { element eelement = (element) nnode; return(eelement.getelementsbytagname(attributename).item(0).gettextcontent()); //or return(eelement.getattribute(attributename)); if construction simpler mensioned <jdbcproperties query="...."> } } } grab (exception e) { e.printstacktrace(); } }

in yourxmlfile.xml

<? xml version="1.0"?> <properties> <properties> <jdbcproperties> <jdbc_details_driver>com.mysql.jdbc.driver</jdbc_details_driver> <db_url>jdbc:mysql://localhost:3306/app</db_url> <db_user_name>root</db_user_name> <db_password>root</db_password> <users_query>insert users(username,password,email,first_name,last_name,mobile,id) values(?,?,?,?,?,?,?)*</users_query> </jdbcproperties>

</properties>

use in code :

string sql = readattributefromxml("/yourxmlfilename.xml","users_query");

if did not understand question please tell me...

reference read article

alternative 2: utilize sax parser (re-commanded faster dom parser)

make bundle xml.util , create calss readxml.java in it

copy , paste below code in class

package xml.util; import java.io.file; import java.io.fileinputstream; import java.io.filenotfoundexception; import java.io.ioexception; import java.io.inputstream; import java.io.inputstreamreader; import java.io.reader; import java.io.unsupportedencodingexception; import javax.xml.parsers.parserconfigurationexception; import javax.xml.parsers.saxparser; import javax.xml.parsers.saxparserfactory; import org.xml.sax.attributes; import org.xml.sax.inputsource; import org.xml.sax.saxexception; import org.xml.sax.helpers.defaulthandler; public class readxml { public string value=""; public string readxmlattribute(string path,final string atttributename) { value=""; saxparserfactory mill = saxparserfactory.newinstance(); saxparser saxparser; seek { saxparser = factory.newsaxparser(); defaulthandler handler = new defaulthandler() { boolean flag = false; public void startelement(string uri, string localname, string qname, attributes attributes) throws saxexception { // system.out.println("start element :" + qname); if (qname.equalsignorecase(atttributename)) { flag = true; } } public void endelement(string uri, string localname, string qname) throws saxexception { //system.out.println("end element :" + qname); } public void characters(char ch[], int start, int length) throws saxexception { //system.out.println(new string(ch, start, length)); if (flag) { value = new string(ch, start, length); system.out.println("attribute found : " +value); flag = false; } } }; file file = new file(path); inputstream inputstream = new fileinputstream(file); reader reader = new inputstreamreader(inputstream,"utf-8"); inputsource = new inputsource(reader); is.setencoding("utf-8"); saxparser.parse(is, handler); } grab (parserconfigurationexception e) { // todo auto-generated grab block e.printstacktrace(); } grab (saxexception e) { // todo auto-generated grab block e.printstacktrace(); }catch (filenotfoundexception e) { // todo auto-generated grab block e.printstacktrace(); } grab (unsupportedencodingexception e) { // todo auto-generated grab block e.printstacktrace(); }catch (ioexception e) { // todo auto-generated grab block e.printstacktrace(); } homecoming value; } }

use in code

import xml.util.readxml; // in action method readxml myxml = new readxml(); string sql = myxml.readxmlattribute("c:\\yourxmlfile.xml", "users_query");

reference sax parser example

xml struts2

No comments:

Post a Comment