main class to create XML file.
Jar files required : commons-digester-rss.jar, mysql-connector-java-5.0.8.jar
package sri;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.digester.rss.Channel;
import org.apache.commons.digester.rss.Item;
public class RssFeeds
{
public void RssXml() throws Exception{
RssImpl rImpl = new RssImpl();
RssBean rBean = new RssBean();
String title = "ItemTitle1";
rBean = rImpl.getRssData(title);
Channel newChannel = new Channel();
newChannel.setCopyright(rBean.getCpyRight());
newChannel.setDescription(rBean.getDesc());
newChannel.setLink(rBean.getChannLink());
newChannel.setLanguage(rBean.getLang());
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm:ss Z");
String today = formatter.format(rBean.getPubDate());
newChannel.setPubDate(today);
Item item = new Item();
item.setTitle(rBean.getItemTitle());
item.setLink(rBean.getItemLink());
item.setDescription(rBean.getItemDesc());
newChannel.setPubDate(today);
newChannel.addItem(item);
try
{
FileOutputStream fout = new FileOutputStream("C:/feed.xml");
newChannel.render(fout);
fout.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void main(String args[]) throws Exception {
RssFeeds rss = new RssFeeds();
rss.RssXml();
}
}
using hibernates to access data from database.
package sri;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
public class RssImpl
{
Session session = null;
public RssBean getRssData(String title)throws Exception
{
session = HibernateUtil.currentSession();
RssBean rssBean = new RssBean();
Criteria crit = session.createCriteria(RssBean.class);
crit.add(Restrictions.eq("itemTitle", title));
if(crit.list().size()>0)
rssBean = (RssBean) crit.list().get(0);
/*String hql = "FROM RssBean as rBean WHERE rbean.itemTitle ='"+ title +"'";
Query query = session.createQuery(hql);
if(query.list().size()>0)
rssBean = (RssBean) query.list().get(0);*/
return rssBean;
}
}
create a bean class:
package sri;
import java.io.Serializable;
import java.sql.Timestamp;
public class RssBean implements Serializable{
private String cpyRight;
private String itemTitle;
private String desc;
private String channLink;
private String lang;
private Timestamp pubDate;
private String itemLink;
private String itemDesc;
public String getCpyRight()
{
return cpyRight;
}
public void setCpyRight(String cpyRight)
{
this.cpyRight = cpyRight;
}
public String getItemTitle()
{
return itemTitle;
}
public void setItemTitle(String itemTitle)
{
this.itemTitle = itemTitle;
}
public String getDesc()
{
return desc;
}
public void setDesc(String desc)
{
this.desc = desc;
}
public String getChannLink()
{
return channLink;
}
public void setChannLink(String channLink)
{
this.channLink = channLink;
}
public String getLang()
{
return lang;
}
public void setLang(String lang)
{
this.lang = lang;
}
public Timestamp getPubDate()
{
return pubDate;
}
public void setPubDate(Timestamp pubDate)
{
this.pubDate = pubDate;
}
public String getItemLink()
{
return itemLink;
}
public void setItemLink(String itemLink)
{
this.itemLink = itemLink;
}
public String getItemDesc()
{
return itemDesc;
}
public void setItemDesc(String itemDesc)
{
this.itemDesc = itemDesc;
}
}
Hibernate util: save as Hibernateutil.java
package sri;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.engine.SessionFactoryImplementor;
public class HibernateUtil {
private static SessionFactory sessionFactory;
private static String schema;
static {
try {
Configuration configuration = new Configuration();
configuration.configure("hibernate.cfg.xml");
sessionFactory = configuration.buildSessionFactory();
SessionFactoryImplementor sessionImpl = (SessionFactoryImplementor) sessionFactory;
schema = sessionImpl.getSettings().getDefaultSchemaName();
} catch (Throwable ex) {
ex.printStackTrace();
throw new ExceptionInInitializerError(ex);
}
}
private static final ThreadLocal<Session> localSession = new ThreadLocal<Session>();
/**
* Create CurrentSession when session not open
*/
public static Session currentSession() {
Session s = (Session) localSession.get();
if (s == null) {
s = createSession();
}
if (!s.isOpen() || !s.isConnected()) {
localSession.set(null);
s = null;
s = createSession();
}
if(s.isDirty()){
if(s.getTransaction().isActive())
s.getTransaction().rollback();
s.flush();
s.close();
s = null;
localSession.set(null);
s = createSession();
}
return s;
}
/**
* Create Session
* @return Session
*/
private static Session createSession() {
Session s = sessionFactory.openSession();
localSession.set(s);
return s;
}
/**
* Close Session
* @throws HibernateException
*/
public static void closeSession() throws HibernateException {
Session session = localSession.get();
if (session != null && session.isOpen()) {
if(session.getTransaction().isActive()) {
session.getTransaction().rollback();
}
session.close();
localSession.set(null);
}
}
/**
* Fetch the SessionFactory
*/
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
/**
* Flush the Session
* @throws HibernateException
*/
public static void flushSession() throws HibernateException {
Session session = localSession.get();
if (session != null) {
session.flush();
}
}
/**
* Close SessionFactory
*/
public static void shutdown() {
getSessionFactory().close();
}
/**
* Save or Update the object and close the session
*/
public static Object saveOrUpdate(Object obj) {
Session session = null;
try {
session = HibernateUtil.currentSession();
Transaction transaction = session.beginTransaction();
transaction.begin();
session.saveOrUpdate(obj);
transaction.commit();
closeSession();
}catch(HibernateException ex) {
}
return obj;
}
/**
* Fetch the Schema
*/
public static String getDefaultSchema() {
return schema;
}
}
hbm.xml file to map the data from the database:: save as -- RssBean.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="sri.RssBean" table="rssfeeddata">
<id column="TITLE" name="itemTitle" type="java.lang.String">
</id>
<property column="COPYRIGHT" name="cpyRight" type="java.lang.String"/>
<property column="DESCRIPTION" name="desc" type="java.lang.String"/>
<property column="CHANNELLINK" name="channLink" type="java.lang.String"/>
<property column="LANGUAG" name="lang" type="java.lang.String"/>
<property column="PUBDATE" name="pubDate" type="java.sql.Timestamp"/>
<property column="ITEMLINK" name="itemLink" type="java.lang.String"/>
<property column="ITEMDESCRIPTION" name="itemDesc" type="java.lang.String"/>
</class>
</hibernate-mapping>
Hibernate configuration file save as : hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/sri</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Mapping files -->
<mapping resource="hbm/RssBean.hbm.xml" />
</session-factory>
</hibernate-configuration>
Jar files required : commons-digester-rss.jar, mysql-connector-java-5.0.8.jar
package sri;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.digester.rss.Channel;
import org.apache.commons.digester.rss.Item;
public class RssFeeds
{
public void RssXml() throws Exception{
RssImpl rImpl = new RssImpl();
RssBean rBean = new RssBean();
String title = "ItemTitle1";
rBean = rImpl.getRssData(title);
Channel newChannel = new Channel();
newChannel.setCopyright(rBean.getCpyRight());
newChannel.setDescription(rBean.getDesc());
newChannel.setLink(rBean.getChannLink());
newChannel.setLanguage(rBean.getLang());
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm:ss Z");
String today = formatter.format(rBean.getPubDate());
newChannel.setPubDate(today);
Item item = new Item();
item.setTitle(rBean.getItemTitle());
item.setLink(rBean.getItemLink());
item.setDescription(rBean.getItemDesc());
newChannel.setPubDate(today);
newChannel.addItem(item);
try
{
FileOutputStream fout = new FileOutputStream("C:/feed.xml");
newChannel.render(fout);
fout.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void main(String args[]) throws Exception {
RssFeeds rss = new RssFeeds();
rss.RssXml();
}
}
using hibernates to access data from database.
package sri;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
public class RssImpl
{
Session session = null;
public RssBean getRssData(String title)throws Exception
{
session = HibernateUtil.currentSession();
RssBean rssBean = new RssBean();
Criteria crit = session.createCriteria(RssBean.class);
crit.add(Restrictions.eq("itemTitle", title));
if(crit.list().size()>0)
rssBean = (RssBean) crit.list().get(0);
/*String hql = "FROM RssBean as rBean WHERE rbean.itemTitle ='"+ title +"'";
Query query = session.createQuery(hql);
if(query.list().size()>0)
rssBean = (RssBean) query.list().get(0);*/
return rssBean;
}
}
create a bean class:
package sri;
import java.io.Serializable;
import java.sql.Timestamp;
public class RssBean implements Serializable{
private String cpyRight;
private String itemTitle;
private String desc;
private String channLink;
private String lang;
private Timestamp pubDate;
private String itemLink;
private String itemDesc;
public String getCpyRight()
{
return cpyRight;
}
public void setCpyRight(String cpyRight)
{
this.cpyRight = cpyRight;
}
public String getItemTitle()
{
return itemTitle;
}
public void setItemTitle(String itemTitle)
{
this.itemTitle = itemTitle;
}
public String getDesc()
{
return desc;
}
public void setDesc(String desc)
{
this.desc = desc;
}
public String getChannLink()
{
return channLink;
}
public void setChannLink(String channLink)
{
this.channLink = channLink;
}
public String getLang()
{
return lang;
}
public void setLang(String lang)
{
this.lang = lang;
}
public Timestamp getPubDate()
{
return pubDate;
}
public void setPubDate(Timestamp pubDate)
{
this.pubDate = pubDate;
}
public String getItemLink()
{
return itemLink;
}
public void setItemLink(String itemLink)
{
this.itemLink = itemLink;
}
public String getItemDesc()
{
return itemDesc;
}
public void setItemDesc(String itemDesc)
{
this.itemDesc = itemDesc;
}
}
Hibernate util: save as Hibernateutil.java
package sri;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.engine.SessionFactoryImplementor;
public class HibernateUtil {
private static SessionFactory sessionFactory;
private static String schema;
static {
try {
Configuration configuration = new Configuration();
configuration.configure("hibernate.cfg.xml");
sessionFactory = configuration.buildSessionFactory();
SessionFactoryImplementor sessionImpl = (SessionFactoryImplementor) sessionFactory;
schema = sessionImpl.getSettings().getDefaultSchemaName();
} catch (Throwable ex) {
ex.printStackTrace();
throw new ExceptionInInitializerError(ex);
}
}
private static final ThreadLocal<Session> localSession = new ThreadLocal<Session>();
/**
* Create CurrentSession when session not open
*/
public static Session currentSession() {
Session s = (Session) localSession.get();
if (s == null) {
s = createSession();
}
if (!s.isOpen() || !s.isConnected()) {
localSession.set(null);
s = null;
s = createSession();
}
if(s.isDirty()){
if(s.getTransaction().isActive())
s.getTransaction().rollback();
s.flush();
s.close();
s = null;
localSession.set(null);
s = createSession();
}
return s;
}
/**
* Create Session
* @return Session
*/
private static Session createSession() {
Session s = sessionFactory.openSession();
localSession.set(s);
return s;
}
/**
* Close Session
* @throws HibernateException
*/
public static void closeSession() throws HibernateException {
Session session = localSession.get();
if (session != null && session.isOpen()) {
if(session.getTransaction().isActive()) {
session.getTransaction().rollback();
}
session.close();
localSession.set(null);
}
}
/**
* Fetch the SessionFactory
*/
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
/**
* Flush the Session
* @throws HibernateException
*/
public static void flushSession() throws HibernateException {
Session session = localSession.get();
if (session != null) {
session.flush();
}
}
/**
* Close SessionFactory
*/
public static void shutdown() {
getSessionFactory().close();
}
/**
* Save or Update the object and close the session
*/
public static Object saveOrUpdate(Object obj) {
Session session = null;
try {
session = HibernateUtil.currentSession();
Transaction transaction = session.beginTransaction();
transaction.begin();
session.saveOrUpdate(obj);
transaction.commit();
closeSession();
}catch(HibernateException ex) {
}
return obj;
}
/**
* Fetch the Schema
*/
public static String getDefaultSchema() {
return schema;
}
}
hbm.xml file to map the data from the database:: save as -- RssBean.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="sri.RssBean" table="rssfeeddata">
<id column="TITLE" name="itemTitle" type="java.lang.String">
</id>
<property column="COPYRIGHT" name="cpyRight" type="java.lang.String"/>
<property column="DESCRIPTION" name="desc" type="java.lang.String"/>
<property column="CHANNELLINK" name="channLink" type="java.lang.String"/>
<property column="LANGUAG" name="lang" type="java.lang.String"/>
<property column="PUBDATE" name="pubDate" type="java.sql.Timestamp"/>
<property column="ITEMLINK" name="itemLink" type="java.lang.String"/>
<property column="ITEMDESCRIPTION" name="itemDesc" type="java.lang.String"/>
</class>
</hibernate-mapping>
Hibernate configuration file save as : hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/sri</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Mapping files -->
<mapping resource="hbm/RssBean.hbm.xml" />
</session-factory>
</hibernate-configuration>