如何使用liferay portlet在db中插入数据

如何使用Liferay在MySql中插入数据?

我已经从edit.jsp创建了Edit.jsp,view.jsp我想输入数据并在view.jsp中我想显示我的数据。 在edit.jsp中输入的这些数据应该存储在我的mysql表中。 我创建了service.xml,portal-ext.properties。

我也有java文件。 请告诉我在哪里编写插入逻辑以将数据存储到数据库中。

这是我的Java代码。 我有edit.jsp文件和view.jsp文件,我使用service.xml文件创建了表,并将portal-ext.properties放在classes文件夹中。 有什么事吗? 我是liferay的新人

package com.portlet; import java.io.IOException; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.GenericPortlet; import javax.portlet.PortletException; import javax.portlet.PortletMode; import javax.portlet.PortletPreferences; import javax.portlet.PortletRequestDispatcher; import javax.portlet.PortletURL; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.liferay.counter.service.CounterLocalServiceUtil; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portlet.model.testimonial; import com.liferay.portlet.service.testimonialLocalServiceUtil; public class Testimonial extends GenericPortlet { protected String editJSP; protected String viewJSP; private static Log _log = LogFactory.getLog(Testimonial.class); public void init() throws PortletException { editJSP = getInitParameter("edit-jsp"); viewJSP = getInitParameter("view-jsp"); } public void doEdit(RenderRequest renderRequest,RenderResponse renderResponse) throws IOException, PortletException { renderResponse.setContentType("text/html"); PortletURL addNameURL = renderResponse.createActionURL(); addNameURL.setParameter("addName", "addName"); renderRequest.setAttribute("addNameURL", addNameURL.toString()); include(editJSP, renderRequest, renderResponse); } public void doView(RenderRequest renderRequest,RenderResponse renderResponse) throws IOException, PortletException { PortletPreferences prefs = renderRequest.getPreferences(); String username = (String) prefs.getValue("name", ""); String area=(String)prefs.getValue("area", "testimonial"); String email=(String)prefs.getValue("email", ""); String subject=(String)prefs.getValue("subject", ""); String company=(String)prefs.getValue("company", ""); String designation=(String)prefs.getValue("designation", ""); if (username.equalsIgnoreCase ("")) { username = ""; } renderRequest.setAttribute("userName", username); renderRequest.setAttribute("area",area); renderRequest.setAttribute("email",email); renderRequest.setAttribute("subject",subject); renderRequest.setAttribute("designation",designation); renderRequest.setAttribute("company",company); include(viewJSP, renderRequest, renderResponse); } public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException { String addName = actionRequest.getParameter("addName"); if (addName != null) { PortletPreferences prefs = actionRequest.getPreferences(); prefs.setValue("name", actionRequest.getParameter("username")); prefs.setValue("area",actionRequest.getParameter("area")); prefs.setValue("email",actionRequest.getParameter("email")); prefs.setValue("subject",actionRequest.getParameter("subject")); prefs.setValue("designation",actionRequest.getParameter("designation")); prefs.setValue("company",actionRequest.getParameter("company")); prefs.store(); testimonial testimonial = null; try { testimonialLocalServiceUtil.createtestimonial(CounterLocalServiceUtil.increment()); } catch (SystemException e) { // TODO Auto-generated catch block e.printStackTrace(); } testimonial.setSubject(actionRequest.getParameter("subject")); testimonial.setArea(actionRequest.getParameter("area")); testimonial.setUsername(actionRequest.getParameter("username")); testimonial.setEmail(actionRequest.getParameter("email")); testimonial.setCompany(actionRequest.getParameter("company")); testimonial.setDesignation(actionRequest.getParameter("designation")); try { testimonialLocalServiceUtil.addtestimonial(testimonial); } catch (SystemException e) { // TODO Auto-generated catch block e.printStackTrace(); } actionResponse.setPortletMode(PortletMode.VIEW); } } protected void include(String path, RenderRequest renderRequest,RenderResponse renderResponse) throws IOException, PortletException { PortletRequestDispatcher portletRequestDispatcher = getPortletContext().getRequestDispatcher(path); if (portletRequestDispatcher == null) { _log.error(path + " is not a valid include"); } else { portletRequestDispatcher.include(renderRequest, renderResponse); } } } 

您必须使用Liferay默认API来访问和插入默认Liferay表中的数据,或者如果要访问/插入数据库中的自定义(自制)表,则必须使用Liferay Service Builder。

在您的问题中 – 您可以先在数据库中手动创建表。

然后,您可以使用ant build文件创建service.xml并构建服务,该文件将为您提供LocalServiceUtil类。 在您的情况下,它是testimonialLocalServiceUtil类。

另外,根据您的代码, processAction方法覆盖是正确的。

请检查service.xml中的表和列规范。 它应该没有任何问题。

这是一个可以帮助你的链接 –

http://www.phloxblog.in/liferay-service-builder-step-step/

并且,如果您有任何exception,请与我们分享,以便我们了解问题区域。

谢谢

请按照以下步骤操作:

  File-->new-->Liferay Project Right Click on WEB-INF-->new-->Liferay Service Builder-->Enter the package path(com.database) and namespace(A)-->Finish Now you have service.xml-->change the properties accoding to your requirement-->save it Right click on service.xml-->Liferay-->Build Services. Now you will get some folders,classes and interfaces under docroot/ WEB-INF/src change in the LiferayLocalServiceImpl.java under com.database.service.impl create one package like com.portlet in docroot/ WEB-INF/src -->create a class and continue the application 

service.xml中

    name S           

在jsp中:

  <%@ taglib uri="http://liferay.com/tld/aui" prefix="aui"%> <%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>         

com.database.service.impl.BookLocalServiceImpl

  package com.database.service.impl; import com.database.model.Book; import com.database.service.base.BookLocalServiceBaseImpl; import com.liferay.portal.kernel.exception.SystemException; public class BookLocalServiceImpl extends BookLocalServiceBaseImpl { public Book aaddBook(Book bookParam) { Book book; try { book = bookPersistence.create(counterLocalService .increment(Book.class.toString())); } catch (SystemException e) { // TODO Auto-generated catch block e.printStackTrace(); return book = null; } book.setAuthor(bookParam.getAuthor()); book.setBookName(bookParam.getBookName()); book.setCompanyId(bookParam.getCompanyId()); book.setUserId(bookParam.getUserId()); try { return bookPersistence.update(book, false); } catch (SystemException e) { e.printStackTrace(); } return book; } } 

com.portlet演示类

  package com.portlet; import java.io.IOException; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.PortletException; import com.database.model.Book; import com.database.model.impl.BookImpl; import com.database.service.BookLocalServiceUtil; import com.liferay.util.bridges.mvc.MVCPortlet; public class Demo extends MVCPortlet{ public void addB(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException { System.out.println("Action"); String author=actionRequest.getParameter("author"); String bookName=actionRequest.getParameter("bookName"); Book book=new BookImpl(); book.setAuthor(author); book.setBookName(bookName); BookLocalServiceUtil.aaddBook(book); } } 

我不同意@kartik关于调用Book book = new BookImpl() ; 请改用Book book = BookLocalServiceUtil.createBook(0)

https://web.liferay.com/community/forums/-/message_boards/message/79177774

为了节省,我也会推荐这篇文章。

https://javaeasyforu.blogspot.de/2014/06/insert-data-into-db-using-service.html