How to Make Database connection in Liferay-5.2.3
In this example we are going to see the database connectivity with MySQL and a simple example of it. Here the Prerequisite for doing connection with database.
• Install the JDK and set the Path JAVA_HOME variable .
• Set the Path for Ant ANT_HOME variable .
• Install MySQL (remember the port number, username and pasward).
• Make a Folder For your Workspace where the Liferay folders you are going to keep like EXT and Tomcat etc.
• You must know the how to make simple struts Portlet with action file.
Make sure that above things have been done accordingly and check your Liferay is working properly.Now follow the following steps to do a connection with database.
Step 1 : Set the following code in portal-ext.properties under path(~\liferay-portal-ext-5.2.3\ext-impl\src\ portal-ext.properties) in your Liferay folder.
This step you may have done at time of liferay setup if you have then check it out.
Code :
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost:3309/test?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.default.username=root
jdbc.default.password=root
Make sure that the port number you have given is correct in default url and the username, password, and database/schema name is correct.
Step 2 : Now ant deploy from ext-impl and from ext, make sure that it’s done successfully now restart the tomcat and check in MySQL database name as you given in this example we used the name test.
Step 3 : Make the table with your need for this example we are taking the table for testing called book the following statement is for creating the table.
create table Book (
bookId bigint(10) not null primary key,
title VARCHAR(75) null,
dateAdded datetime
);
Write the above statement in MySQL screen than perform the transaction, refresh the Database and check the table.
Step 4 : Make service.xml on this /ext/ext-impl/src/com/ext/portlet/library path here the Library is the folder of your portlet where this file you have to place. Write the following is the service.xml
Library
Step 5 : Now do the following steps to build the service for above table.
• Go to "/ext/ext-impl"
• Execute "ant build-service -Dservice.file=src/com/ext/portlet/library/service.xml"
• Make sure the build is successful
• Confirm all the service layer files are generated as per the Spring/Hibernate framework. check under
o ext/ext-impl/src/com/ext/portlet/library
o ext/ext-service/src/com/ext/portlet/library
Step 6 : Updating service layer class – 1
file location : ext\ext-
impl\src\com\ext\portlet\library\service\impl\BookLocalServiceImpl.java
now write the functionality for database insert. insert this method.
import com.ext.portlet.library.model.Book;
import com.ext.portlet.library.model.impl.BookImpl;
import java.rmi.RemoteException;
import com.liferay.portal.PortalException;
import com.liferay.portal.SystemException;
import com.liferay.counter.service.CounterServiceUtil;
public Book create(String title)
throws PortalException, SystemException, RemoteException {
// create a primary key
long bookId = CounterServiceUtil.increment(Book.class.getName());
// instantiate an empty object
Book book = new BookImpl();
book.setBookId(bookId);
book.setTitle(title);
// persist the book object
book = bookPersistence.update(book, false);
// return the object to caller
return book;
}
Step 7 : Run ant build-service again to re-generate the corresponding Util interfaces. Do the following steps.
• execute "ant build-service -Dservice.file=src/com/ext/portlet/library/service.xml"
• execute "ant compile" to compile all the generated file and make sure the build is SUCCESSFUL.
Step 8 : Now Update the action file which is made at location "ext/ext-impl/src/com/ext/portlet/library/action". The following is the code to written in Action file name as AddBookAction.java
package com.ext.portlet.library.action;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletConfig;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.liferay.portal.struts.PortletAction;
import com.liferay.portal.kernel.util.Validator;
import com.ext.portlet.library.service.BookLocalServiceUtil;
public class AddBookAction extends PortletAction {
public void processAction(
ActionMapping mapping, ActionForm form, PortletConfig config,
ActionRequest req, ActionResponse res)
throws Exception {
String bookTitle = req.getParameter("book_title");
if (Validator.isNull(bookTitle)) {
setForward(req, "portlet.ext.library.failure");
} else {
// new line to be inserted
BookLocalServiceUtil.create(bookTitle);
setForward(req, "portlet.ext.library.success");
}
}
public ActionForward render(ActionMapping mapping, ActionForm form,
PortletConfig config, RenderRequest req, RenderResponse res)
throws Exception {
if (getForward(req) != null && !getForward(req).equals("")) {
return mapping.findForward(getForward(req));
} else {
return mapping.findForward("portlet.ext.library.view");
}
}
}
Step 9 : Now do run "ant deploy" from "ext" for this do the following steps.
• go back to /ext folder and execute "ant deploy"
• make sure the build is SUCCESSFUL.
• check the newly generated jar files "ext-impl.jar" and "ext-service.jar"
Step 10 : Start tomcat and check the portlet. try to add some books and make sure the values are getting saved in the database.
Note : the structs portlet steps was not shown in this section so do that steps by ur self before doing this steps.
_________________________________________________________________________________ Laliwala IT Services
Mangal Girdhar Compund, Nr. B.G.Tower, Dehli Darwaja,
Ahmedabad - 380004
Gujarat, India
Email : imran@laliwalait.com
Telephone: +91-9904245322
In this example we are going to see the database connectivity with MySQL and a simple example of it. Here the Prerequisite for doing connection with database.
• Install the JDK and set the Path JAVA_HOME variable .
• Set the Path for Ant ANT_HOME variable .
• Install MySQL (remember the port number, username and pasward).
• Make a Folder For your Workspace where the Liferay folders you are going to keep like EXT and Tomcat etc.
• You must know the how to make simple struts Portlet with action file.
Make sure that above things have been done accordingly and check your Liferay is working properly.Now follow the following steps to do a connection with database.
Step 1 : Set the following code in portal-ext.properties under path(~\liferay-portal-ext-5.2.3\ext-impl\src\ portal-ext.properties) in your Liferay folder.
This step you may have done at time of liferay setup if you have then check it out.
Code :
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost:3309/test?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.default.username=root
jdbc.default.password=root
Make sure that the port number you have given is correct in default url and the username, password, and database/schema name is correct.
Step 2 : Now ant deploy from ext-impl and from ext, make sure that it’s done successfully now restart the tomcat and check in MySQL database name as you given in this example we used the name test.
Step 3 : Make the table with your need for this example we are taking the table for testing called book the following statement is for creating the table.
create table Book (
bookId bigint(10) not null primary key,
title VARCHAR(75) null,
dateAdded datetime
);
Write the above statement in MySQL screen than perform the transaction, refresh the Database and check the table.
Step 4 : Make service.xml on this /ext/ext-impl/src/com/ext/portlet/library path here the Library is the folder of your portlet where this file you have to place. Write the following is the service.xml
Step 5 : Now do the following steps to build the service for above table.
• Go to "/ext/ext-impl"
• Execute "ant build-service -Dservice.file=src/com/ext/portlet/library/service.xml"
• Make sure the build is successful
• Confirm all the service layer files are generated as per the Spring/Hibernate framework. check under
o ext/ext-impl/src/com/ext/portlet/library
o ext/ext-service/src/com/ext/portlet/library
Step 6 : Updating service layer class – 1
file location : ext\ext-
impl\src\com\ext\portlet\library\service\impl\BookLocalServiceImpl.java
now write the functionality for database insert. insert this method.
import com.ext.portlet.library.model.Book;
import com.ext.portlet.library.model.impl.BookImpl;
import java.rmi.RemoteException;
import com.liferay.portal.PortalException;
import com.liferay.portal.SystemException;
import com.liferay.counter.service.CounterServiceUtil;
public Book create(String title)
throws PortalException, SystemException, RemoteException {
// create a primary key
long bookId = CounterServiceUtil.increment(Book.class.getName());
// instantiate an empty object
Book book = new BookImpl();
book.setBookId(bookId);
book.setTitle(title);
// persist the book object
book = bookPersistence.update(book, false);
// return the object to caller
return book;
}
Step 7 : Run ant build-service again to re-generate the corresponding Util interfaces. Do the following steps.
• execute "ant build-service -Dservice.file=src/com/ext/portlet/library/service.xml"
• execute "ant compile" to compile all the generated file and make sure the build is SUCCESSFUL.
Step 8 : Now Update the action file which is made at location "ext/ext-impl/src/com/ext/portlet/library/action". The following is the code to written in Action file name as AddBookAction.java
package com.ext.portlet.library.action;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletConfig;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.liferay.portal.struts.PortletAction;
import com.liferay.portal.kernel.util.Validator;
import com.ext.portlet.library.service.BookLocalServiceUtil;
public class AddBookAction extends PortletAction {
public void processAction(
ActionMapping mapping, ActionForm form, PortletConfig config,
ActionRequest req, ActionResponse res)
throws Exception {
String bookTitle = req.getParameter("book_title");
if (Validator.isNull(bookTitle)) {
setForward(req, "portlet.ext.library.failure");
} else {
// new line to be inserted
BookLocalServiceUtil.create(bookTitle);
setForward(req, "portlet.ext.library.success");
}
}
public ActionForward render(ActionMapping mapping, ActionForm form,
PortletConfig config, RenderRequest req, RenderResponse res)
throws Exception {
if (getForward(req) != null && !getForward(req).equals("")) {
return mapping.findForward(getForward(req));
} else {
return mapping.findForward("portlet.ext.library.view");
}
}
}
Step 9 : Now do run "ant deploy" from "ext" for this do the following steps.
• go back to /ext folder and execute "ant deploy"
• make sure the build is SUCCESSFUL.
• check the newly generated jar files "ext-impl.jar" and "ext-service.jar"
Step 10 : Start tomcat and check the portlet. try to add some books and make sure the values are getting saved in the database.
Note : the structs portlet steps was not shown in this section so do that steps by ur self before doing this steps.
_________________________________________________________________________________
Mangal Girdhar Compund, Nr. B.G.Tower, Dehli Darwaja,
Ahmedabad - 380004
Gujarat, India
Email : imran@laliwalait.com
Telephone: +91-9904245322