如何在liferay 6.2中将数据插入数据库?

时间:2016-09-02 08:58:15

标签: java jsp liferay portlet

我创建了一个实体userdetails,其中包含两个字段名称和密码。然后通过jsp,我传递了名称和密码的参数。然后我尝试将相同的内容插入到数据库中。插入数据的代码如下,但是无效..

public void save(ActionRequest request, ActionResponse response) throws SystemException
{
    int id=(int) CounterLocalServiceUtil.increment();
    String name=request.getParameter("name");
    String password=request.getParameter("password");
    System.out.println(name+ " " +password);
    userdetails ud=userdetailsLocalServiceUtil.createuserdetails(id);
    ud.setName(name);
    ud.setPassword(password);
    try {
        userdetailsLocalServiceUtil.adduserdetails(ud);
        //userdetailsPersistence.update(ud,false);
    } catch (SystemException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

jsp的代码如下: -

<portlet:actionURL name="save" var="saveURL"></portlet:actionURL>

<aui:form method="post" action="<%= saveURL.toString() %>">
<aui:input name="name" type="text" />
<aui:input name="password" type="password" />
<aui:button type="submit" value="save" />
</aui:form>

请帮助..

1 个答案:

答案 0 :(得分:0)

首先,在service.xml(构建服务)中遵循实体className的正确命名约定,如:

<entity name="UserDetails" local-service="true" remote-service="false" table="user_detail">

UserDetailsLocalServiceImpl.java中创建一个新方法(如下所示)并再次构建服务:

public UserDetails createUserDetails(String name, String password){

    UserDetails ud = UserDetailsUtil.create(CounterLocalServiceUtil.increment());
    ud.setName(name);
    ud.setPassword(password);
    UserDetails newUd = UserDetailsUtil.update(ud);

    return newUd;
}

这将复制UserDetailsLocalServiceUtil.java中的相关条目。现在,您可以在操作方法中使用该方法,如下所示:

public void save(ActionRequest request, ActionResponse response) throws SystemException {

    String name = request.getParameter("name");
    String password = request.getParameter("password");
    System.out.println(name + " - " + password);

    try {
        UserDetails ud = UserDetailsLocalServiceUtil.createUserDetails(name, password);
        // Do whatever you want after creating new details
    }
    catch(Exception ex) {
         ex.printStackTrace();
    }
}