我想从mysql中检索数据并在mysql中插入数据。

我提供3个文件,一个Java文件和两个jsp文件edit.jspview.jsp分别编辑和查看数据。

我已使用ServiceBuilder创建表,将我的portal-ext.properties放在classes文件夹中,告诉我这是理想的方法吗?我做对了吗?

我想先插入数据,然后再从数据库中检索数据。


我正在通过以下jsp文件-edit.jsp插入数据

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

<jsp:useBean class="java.lang.String" id="addNameURL" scope="request" />
<jsp:useBean class="java.lang.String" id="area" scope="request"/>
<jsp:useBean class="java.lang.String" id="email" scope="request"/>
<jsp:useBean class="java.lang.String" id="subject" scope="request"/>
<jsp:useBean class="java.lang.String" id="compnay" scope="request"/>
<jsp:useBean class="java.lang.String" id="designation" scope="request"/>

<portlet:defineObjects />

<form id="<portlet:namespace />helloForm" action="<%= addNameURL %>"method="post">
    <table>
        <tr>
            <td>Subject:</td>
            <td><input type="text" name="subject"></td>
        </tr>
        <tr>
            <td>
            Write Your Testimonial
            </td>
            <td><textarea name ="area"></textarea>
            </td>
        </tr>
        <tr>
            <td>Name:</td>
            <td><input type="text" name="username"></td>
        </tr>
        <tr>
            <td>Email:</td>
            <td><input type="text" name="email"></td>
        </tr>
        <tr>
            <td>Company:</td>
            <td><input type="text" name="company"></td>
        </tr>
        <tr>
            <td>Designation:</td>
            <td><input type="text" name="designation"></td>
        </tr>
    </table>

    <input type="submit" id="nameButton" title="Submit" value="Submit">
</form>

我已经在以下java文件-Testimonial1中编写了插入逻辑:

package com.liferay.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 Testimonial1 extends GenericPortlet {

    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());
                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"));
                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);
        }
    }
    protected String editJSP;
    protected String viewJSP;
    private static Log _log = LogFactory.getLog(Testimonial1.class);
}

我已在以下文件-view.jsp中编写了视图逻辑,并且我想从以下文件中的数据库中检索数据:

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

<jsp:useBean id="subject" class="java.lang.String" scope="request"/>
<jsp:useBean id="area" class="java.lang.String" scope="request"/>
<jsp:useBean id="userName" class="java.lang.String" scope="request" />
<jsp:useBean id="email" class="java.lang.String" scope="request"/>
<jsp:useBean id="company" class="java.lang.String" scope="request"/>
<jsp:useBean id="designation" class="java.lang.String" scope="request"/>
<portlet:defineObjects />

<p>This is the Testimonial portlet......... how are u all ..........</p>

<p>Subject is ....<%=subject %></p>
<p>Testimonial is .....<%=area %></p>
<p>Hello <%= userName %>!</p>
<p>your Email ......<%=email %></p>
<p>your company .....<%=company %></p>
<p>You are .......<%=designation %></p>

我的service.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.1.0//EN"  "http://www.liferay.com/dtd/liferay-service-builder_6_1_0.dtd">

<service-builder package-path="com.liferay.portlet">
    <author>ubuntu</author>
    <namespace>perception</namespace>

    <entity name="testimonial" local-service="true" remote-service="true">
        <column name="subject" type="String"></column>
        <column name="area" type="String"></column>
        <column name="username" type="String"></column>
        <column name="email" type="String"></column>
        <column name="company" type="String"></column>
        <column name="designation" type="String"></column>
    </entity>
</service-builder>

我的portal-ext.properties文件:

#
# MySQL
#

jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEn
coding=UTF-8&useFastDateParsing=false
jdbc.default.username=root
jdbc.default.password=ubuntu123

schema.run.enabled=true
schema.run.minimal=true



我已经存放了所有文件,现在请告诉我数据插入和检索需要做什么。

请告诉我我的插入代码正确吗?以及如何从数据库中检索数据?

最佳答案

您可以看一下liferay服务构建器。
http://www.liferay.com/community/wiki/-/wiki/Main/Service+Builder
http://www.liferay.com/documentation/liferay-portal/6.0/development/-/ai/service-build-2
如果您的数据与liferay不在同一个数据库中,则仍然可以使用Service Builder
http://liferaytrends.blogspot.com/2012/05/blog-post.html

07-28 14:25
查看更多