[置顶] 整合框架 javaweb开发平台ssmy_m(与代码生成) java struts2 mybatis spring maven jquery

时间:2022-09-08 16:35:48

本页地址 http://blog.csdn.net/lpy3654321/article/details/31841573

         项目设想,在项目开发中,我们的开发人员大多数时间都在重复开发 同样的关键字,同样的语法. 但就在这样的情况下还会经常发生语法的错误,而且每个开发人员的代码风格不同. 其他人员阅读困难.新人的学习成本也会增加.

         这些问题会浪费很多时间,也会影响到开发人员的心情,和程序质量. 由这些问题我想的解决方法是 <代码生成工具> . 代码生成可以解决上述问题,加强约定. 对于普通CRUD的开发效率可以提升50%以上,错误率几乎为0 , 是项目系统的开发利器.



代码生成 代码生成工具

自己写的开发平台ssmy_m 与代码生成 ,struts2 mybatis spring maven jquery jqgrid jqueryui

有问题请留言,或QQ110146324

最下面有生成出来的代码

SVN上的代码基础功能已经都有了.美工没弄,有需要的自己改吧.

在/ssmy_m/src/main/webapp/common/include_com.jsp里引用.否则代码生成会有影响


DEMO:

 SSMy主页  http://liupengyuan.xicp.cn
 ssmy开发框架SSMy  http://ssmy_m.goodthink.wang
 ssmy框架的代码生成工具  http://generate_m.goodthink.wang
 generate_m生成的代码示例  http://download.csdn.net/detail/lpy3654321/8438605


  • 开发平台

svn: https://m2.svnspot.com/lpy3654321.ssmy_m/

帐号:guest112233

密码:guest112233

也可以到 http://code.svnspot.com 注册

开发平台页面 :右键新窗口打开图片可以放大

[置顶]        整合框架 javaweb开发平台ssmy_m(与代码生成) java struts2 mybatis spring maven jquery

最下面有生成出来的代码






  • 代码生成

svn: https://m2.svnspot.com/lpy3654321.ssmy_generate_m/

帐号:guest112233

密码:guest112233

也可以到 http://code.svnspot.com 注册



通过过数据库表生成BEAN  action servce dao xml js jsp 

修改dbConfigs.xml文件,可配置生成的数据库(启动修改也可以,不需要重启)

http://127.0.0.1:8080/generate_m

下载zip后,解压,复制SRC 然后直接粘贴到myeclipse 项目里

<?xml version="1.0" encoding="UTF-8"?>
<!-- 用于生成数据库的配置文件 -->
<dbConfigs>

<dbConfig id="localMysql"><!-- 配置名称 -->
<url>jdbc:mysql://localhost:3306/ssmy</url><!-- url -->
<username>root</username><!-- </username> -->
<password>root</password><!-- password -->
<driverClass>com.mysql.jdbc.Driver</driverClass><!-- driverClass -->
</dbConfig>

<dbConfig id="localOracle">
<url>jdbc:oracle:thin:@localhost:1521:orcl</url>
<username>ssmy</username>
<password>ssmy</password>
<driverClass>oracle.jdbc.driver.OracleDriver</driverClass>
</dbConfig>

<dbConfig id="dsd_zjk">
<url>jdbc:oracle:thin:@192.168.3.34:1521:orcl</url>
<username>dsd_zjk</username>
<password>dsd_zjk</password>
<driverClass>oracle.jdbc.driver.OracleDriver</driverClass>
</dbConfig>

</dbConfigs>

代码生成页面:右键新窗口打开图片可以放大

[置顶]        整合框架 javaweb开发平台ssmy_m(与代码生成) java struts2 mybatis spring maven jquery





"项目基本WEB层命名空间"  和  "模块WEB层命名空间"   这两个input会决定Struts2的命名空间和JS的引用路径


<struts>
<package name="com.liupengyuan.framework.pageView.action.PageViewAction" extends="struts-default" namespace="/framework/pageView">

<action name="pageView_*"
class="pageViewAction"
method="{1}">
</action>

<action name="pageView">
<result>/framework/pageView/pageView.jsp</result>
</action>

</package>
</struts>



  • 代码目录:

[置顶]        整合框架 javaweb开发平台ssmy_m(与代码生成) java struts2 mybatis spring maven jquery


  • Zip包目录:

[置顶]        整合框架 javaweb开发平台ssmy_m(与代码生成) java struts2 mybatis spring maven jquery


  • HTML JS 代码
pageView.jsp:
<%@ page language="java" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>记录网络访问量</title>
<%@ include file="/common/include_com.jsp"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="${pageContext.request.contextPath}/jsp/moduleWeb/pageView/js/pageView.js"></script>
<!--<script src="js/pageView.js"></script>-->

</head>
<body>

<div class="ui-layout-north">
<div class="navbar"><font size="2" > 当前操作:记录网络访问量</font></div>
</div>

<div class="ui-layout-center">
<!--<div class="title_level1">查询</div> -->
<div class="formarea">
<form id="pageViewSearchForm">
<fieldset>
<legend style="margin-left: 10px;">查询</legend>

<table>
<tr>
<td style="width:150px;" align="right" ><label for="requestIp">用户IP:</label></td>
<td>
<div class="input">
<input type="text" name="requestIp" size="40" />
</div>
</td>
<td style="width:150px;" align="right" ><label for="session">记录会话ID:</label></td>
<td>
<div class="input">
<input type="text" name="session" size="40" />
</div>
</td>
</tr>
<tr>
<td style="width:150px;" align="right" ><label for="module">访问的模块:</label></td>
<td>
<div class="input">
<input type="text" name="module" size="40" />
</div>
</td>
<td style="width:150px;" align="right" ><label for="visitTime">访问时间:</label></td>
<td>
<div class="input">
<input type="text" name="visitTime" class="Wdate" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" size="40" />
</div>
</td>
</tr>
<tr>
<td style="width:150px;" align="right" ><label for="visitCount">访问数量:</label></td>
<td>
<div class="input">
<input type="text" name="visitCount" size="40" />
</div>
</td>
</tr>
</table>
</fieldset>
</form>
<div class="buttons">
<button id="searchB">查询</button>
<button id="resetB">清空</button>
</div>
</div>
<div class="toolbar">
<button id="addB">增加</button>
<button id="editB">修改</button>
<button id="deleteB">删除</button>
</div>
<table id="pageViewTable"></table>
</div>
<div id="pageViewAddOrEditForm">
<div class="formarea">
<form id="pageViewForm" type="ajax">

<input type="hidden" id="id" name="id"/>
<table>
<tr>
<td style="width:70px;" align="right" ><label for="requestIp">用户IP:</label></td>
<td>
<div class="input">
<input type="text" id="requestIp" name="requestIp" class="validate[maxSize[50] ] " size="40" />
</div>
</td>
</tr>
<tr>
<td style="width:70px;" align="right" ><label for="session">记录会话ID:</label></td>
<td>
<div class="input">
<input type="text" id="session" name="session" class="validate[maxSize[100] ] " size="40" />
</div>
</td>
</tr>
<tr>
<td style="width:70px;" align="right" ><label for="module">访问的模块:</label></td>
<td>
<div class="input">
<input type="text" id="module" name="module" class="validate[maxSize[100] ] " size="40" />
</div>
</td>
</tr>
<tr>
<td style="width:70px;" align="right" ><label for="visitTime">访问时间:</label></td>
<td>
<div class="input">
<input type="text" id="visitTime" name="visitTime" class="Wdate " onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" size="40" />
</div>
</td>
</tr>
<tr>
<td style="width:70px;" align="right" ><label for="visitCount">访问数量:</label></td>
<td>
<div class="input">
<input type="text" id="visitCount" name="visitCount" class="validate[maxSize[10] ] " size="40" />
</div>
</td>
</tr>
</table>

</form>
</div>
</div>
</body>
</html>


pageView.js:
$(function() {
jQuery("#pageViewTable").initGrid({
url : templateRoot+"/jsp/moduleWeb/pageView/pageView_pagelist.do",
height:480,
//colNames:[ "id" , "用户IP" , "记录会话ID" , "访问的模块" , "访问时间" , "访问数量" ],//如果colNames存在 则忽略colModel内的colName.
colModel : [
{ colName : "id",name : "id",hidden : true,id : true,key:true,index : "id",width : 120,align:"cente" } ,
{ colName : "用户IP",name : "requestIp",hidden : false,id : false,key:false,index : "request_ip",width : 120,align:"cente" } ,
{ colName : "记录会话ID",name : "session",hidden : false,id : false,key:false,index : "session",width : 120,align:"cente" } ,
{ colName : "访问的模块",name : "module",hidden : false,id : false,key:false,index : "module",width : 120,align:"cente" } ,
{ colName : "访问时间",name : "visitTime",hidden : false,id : false,key:false,index : "visit_time",width : 120,align:"cente" } ,
{ colName : "访问数量",name : "visitCount",hidden : false,id : false,key:false,index : "visit_count",width : 120,align:"cente" }
]
});

$("#pageViewAddOrEditForm").initDialog({
width : 580,
height: 220,
buttons : { // 为对话框添加按钮
"保存" : function() {
pageViewSave();
},
"取消" : function() {
$("#pageViewAddOrEditForm").dialog("close");
}
}
});

$("#addB").click(function() {
addDialog();
});
$("#editB").click(function() {
updateDialog();
});
$("#deleteB").click(function() {
deleteByids();
});
$("#searchB").click(function() {
search();
});
$("#resetB").click(function() {
$("#pageViewSearchForm").clearForm();
});

function addDialog() {
$("#pageViewForm").clearForm();
$("#pageViewAddOrEditForm")
.dialog("option", "title", "添加记录网络访问量窗口")
.dialog("open");
}

function updateDialog() {
var pageViewGrid = $("#pageViewTable");
if (!pageViewGrid.ifGridSelectedOne()) {
alert("请选择一条记录!");
return false;
}
$("#pageViewForm").clearForm();
$("#pageViewAddOrEditForm")
.dialog("option", "title", "修改记录网络访问量窗口")
.dialog("open");
//var rowData = pageViewGrid.getSelectedRows()[0];
//$("#pageViewForm").loadValues(rowData);
var ids = pageViewGrid.getSelectedIds();
$("#pageViewForm").loadForm(templateRoot + "/jsp/moduleWeb/pageView/pageView_load.do",{id : ids[0]});
}

function deleteByids() {
var pageViewGrid = $("#pageViewTable");
if(!pageViewGrid.ifGridSelected()){
alert('请选择要删除的记录!');
return false;
}
var ids = pageViewGrid.getSelectedIds();
if(confirm("确定要删除 "+ ids.length+" 条数据吗?")){
var ids = pageViewGrid.getSelectedIds();
$.ajax({
url : templateRoot + "/jsp/moduleWeb/pageView/pageView_delete.do",
data : {"ids" : ids},
type : "post",dataType : "json",cache : false,traditional :true,
success : function(responseText, statusText, xhr, $form) {
alert(responseText.message || "保存成功!");
if(responseText.success){
$("#pageViewTable").reloadGrid();
$("#gridDialog").dialog("close");
}
}
});
};
}

function pageViewSave() {
$("#pageViewForm").submitForm({
url : templateRoot + "/jsp/moduleWeb/pageView/pageView_save.do",
success:function(responseText, statusText, xhr, $form){
alert(responseText.message || "保存成功!");
if(responseText.success){
$("#pageViewTable").reloadGrid();
$("#pageViewAddOrEditForm").dialog("close");
}
},
failure:function(data, options){
alert(responseText.message || "保存失败!");
}
});
}

function search(){
var params = $("#pageViewSearchForm").formToObject();
$("#pageViewTable").searchGrid(params);
}

function searchByParam(params){
$("#pageViewTable").searchGrid(params);
}
});

  • Java代码

action:PageViewAction.java

package com.liupengyuan.test.modulePage.pageView.action;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.liupengyuan.framework.util.JSONOuter;
import com.liupengyuan.framework.web.query.IGenericPage;
import com.liupengyuan.framework.web.struts2.BaseAction;
import com.liupengyuan.test.modulePage.pageView.model.PageView;
import com.liupengyuan.test.modulePage.pageView.service.PageViewService;

/**
* @ClassName PageViewAction
* @Description 记录网络访问量Action
* @struts2配置文件名 struts-test-modulePage-pageView.xml
* @spring3配置文件名 spring-test-modulePage-pageView.xml
* @mybatis3配置文件名 mybatis-test-modulePage-pageView.xml
* @表名 sys_page_view
* @author generate
* @date - 2015-02-10 15:33:10
* @version V1.0
*/

@SuppressWarnings("serial")
@Controller("pageViewAction")
@Scope("prototype")
public class PageViewAction extends BaseAction<PageView> {
@Autowired
private PageViewService pageViewService;

private PageView pageView;

private String[] ids;

/**
* 新增或者修改记录
*/
public void save() {
pageViewService.saveOrUpdate(pageView);
JSONOuter.writeBeanMsg(getPrintWriter(), pageView,"数据保存成功");
}

/**
* 加载数据对象
*/
public void load() {
PageView pageViewObj = pageViewService.getById( pageView.getId() );
JSONOuter.writeBeanMsg(getPrintWriter(), pageViewObj);
}

/**
* 分页查询
*/
public void pagelist() {
IGenericPage<PageView> iPage = pageViewService.findPageBy(
pageView,
this.getPage(),
this.getRows(),
this.getSidx(),
this.getSord());
JSONOuter.writePage(getPrintWriter(), iPage);
}

/**
* 数据列表
*/
public void list() {
List<PageView> list = pageViewService.findListBy(
pageView, this.getSidx(), this.getSord());
JSONOuter.writeList(getPrintWriter(), list);
}

/**
* 批量删除记录
*/
public void delete() {
String msg = "";
if(ids!=null && ids.length>0){
int s = pageViewService.deleteByIds(ids);
msg = "成功删除 " + s + " 条记录!!!";
}else{
msg = "删除失败,请选择要删除的记录!!!";
}
JSONOuter.writeSuccessMsg(getPrintWriter(), msg);
}

/**
* 模型驱动,自动装配页面属性
*/
public PageView getModel() {
pageView = new PageView();
return pageView;
}

public void setIds(String[] ids) {
this.ids = ids;
}
}

service接口:PageViewService.java

package com.liupengyuan.test.modulePage.pageView.service;

import java.util.List;

import com.liupengyuan.test.modulePage.pageView.model.PageView;
import com.liupengyuan.framework.web.query.IGenericPage;

/**
* @ClassName PageViewService
* @Description 记录网络访问量服务接口
* @struts2 配置文件名 struts-test-modulePage-pageView.xml
* @spring3 配置文件名 spring-test-modulePage-pageView.xml
* @mybatis3 配置文件名 mybatis-test-modulePage-pageView.xml
* @表名 sys_page_view
* @author generate
* @date - 2015-02-10 15:33:10
* @version V1.0
*/
public interface PageViewService {
/**
* 根据通过主键ID获取一个记录网络访问量实例
* @param id 记录网络访问量ID
* @return 记录网络访问量实例
*/

public PageView getById(java.io.Serializable id);

/**
* 批量删除
* @param ids 要删除的记录网络访问量ID集合
* @return 删除成功的记录生活
*/
public Integer deleteByIds(java.io.Serializable[] ids);
public Integer deleteById(java.io.Serializable ids);

/**
* 保持一个新增的记录网络访问量实例
* @param pageView 记录网络访问量
*/
public void save(PageView pageView);

/**
* 保存一个修改的记录网络访问量实例
* @param pageView 记录网络访问量
*/
public void update(PageView pageView);

/**
* 保存一个新增或修改的记录网络访问量实例
* @param pageView 记录网络访问量
*/
public void saveOrUpdate(PageView pageView);

/**
* 分页查询
* @param param 查询参数
* @param currentPage 当前页码
* @param rows 每页记录行数
* @param sort 排序字段
* @param dir 排序方式、降序(desc)或升序(asc)
* @return 记录网络访问量实例集合
*/
public IGenericPage<PageView> findPageBy(
PageView param,
int currentPage,
int rows,
String sort,
String dir);

/**
* 主要是配合分页查询返回总记录数
* @param param 主要查询参数封装在param中
* @return 记录数
*/
public Integer getCountByParam(PageView param);

/**
* 不分页查询
* @param param 主要查询参数封装在param中
* @param sort 排序字段
* @param dir 排序方式、降序(desc)或升序(asc)
* @return 记录网络访问量实例集合
*/
public List<PageView> findListBy(PageView param, String sort, String dir);

}

service实现类:PageViewServiceImpl.java

package com.liupengyuan.test.modulePage.pageView.service.impl;

import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.liupengyuan.framework.web.query.IGenericPage;

import com.liupengyuan.test.modulePage.pageView.dao.PageViewDao;
import com.liupengyuan.test.modulePage.pageView.model.PageView;
import com.liupengyuan.test.modulePage.pageView.service.PageViewService;


/**
* @ClassName PageViewServiceImpl
* @Description 记录网络访问量服务实现类
* @struts2 配置文件名 struts-test-modulePage-pageView.xml
* @spring3 配置文件名 spring-test-modulePage-pageView.xml
* @mybatis3 配置文件名 mybatis-test-modulePage-pageView.xml
* @表名 sys_page_view
* @author generate
* @date - 2015-02-10 15:33:10
* @version V1.0
*/

@Service("pageViewService")
public class PageViewServiceImpl implements PageViewService {
@Autowired
private PageViewDao pageViewDao;

/*
* (non-Javadoc)
* @see com.liupengyuan.test.modulePage.pageView.service.PageViewService#getById(java.io.Serializable)
*/
public PageView getById(java.io.Serializable id) {
return pageViewDao.getById(id);
}

/*
* (non-Javadoc)
* @see com.liupengyuan.test.modulePage.pageView.service.PageViewService#deleteByIds(java.io.Serializable[])
*/
public Integer deleteByIds(java.io.Serializable[] ids) {
return pageViewDao.deleteByIds(ids);

}

/*
* (non-Javadoc)
* @see com.liupengyuan.test.modulePage.pageView.service.PageViewService#deleteById(java.io.Serializable)
*/
public Integer deleteById(java.io.Serializable id) {
return pageViewDao.deleteById(id);
}

/*
* (non-Javadoc)
* @see com.liupengyuan.test.modulePage.pageView.service.PageViewService#save(com.liupengyuan.test.modulePage.pageView.model.PageView)
*/
public void save(PageView ob) {
pageViewDao.save(ob);
}

/*
* (non-Javadoc)
* @see com.liupengyuan.test.modulePage.pageView.service.PageViewService#update(com.liupengyuan.test.modulePage.pageView.model.PageView)
*/
public void update(PageView ob) {
pageViewDao.update(ob);
}

/*
* (non-Javadoc)
* @see com.liupengyuan.test.modulePage.pageView.service.PageViewService#saveOrUpdate(com.liupengyuan.test.modulePage.pageView.model.PageView)
*/
public void saveOrUpdate(PageView ob) {
if (ob != null) {
// 如果ID不为空说明是修改的实例,为更新操作
if (null != ob.getId() && StringUtils.isNotEmpty(String.valueOf(ob.getId()))) {
pageViewDao.update(ob);
} else {
pageViewDao.save(ob);
}
}
}

/*
* (non-Javadoc)
* @see com.liupengyuan.test.modulePage.pageView.service.PageViewService#findPageBy(com.liupengyuan.test.modulePage.pageView.model.PageView, int, int, java.lang.String, java.lang.String)
*/
public IGenericPage<PageView> findPageBy(
PageView param,
int currentPage,
int rows,
String sort,
String dir) {
return pageViewDao.findPageBy(
wrapParams(param), currentPage, rows, sort, dir);
}

/*
* (non-Javadoc)
* @see com.liupengyuan.test.modulePage.pageView.service.PageViewService#getCountByParam(com.liupengyuan.test.modulePage.pageView.model.PageView)
*/
public Integer getCountByParam(PageView param) {
return pageViewDao.getCountBy(wrapParams(param));
}

/**
* (non-Javadoc)
* @see com.liupengyuan.test.modulePage.pageView.service.PageViewService#findListBy(com.liupengyuan.test.modulePage.pageView.PageView, java.lang.String, java.lang.String)
*/
public List<PageView> findListBy(
PageView param,
String sort,
String dir) {
return pageViewDao.findListBy(
wrapParams(param), sort, dir);
}

/**
* 为模糊查询前后加装%%
*/
private PageView wrapParams(PageView param) {
if(param != null){
if(StringUtils.isNotEmpty(param.getRequestIp())){
param.setRequestIp("%"+param.getRequestIp()+"%");
}
if(StringUtils.isNotEmpty(param.getSession())){
param.setSession("%"+param.getSession()+"%");
}
if(StringUtils.isNotEmpty(param.getModule())){
param.setModule("%"+param.getModule()+"%");
}
}
return param;
}
}

DAO接口: PageViewDao.java
package com.liupengyuan.test.modulePage.pageView.dao;

import com.liupengyuan.framework.dao.IBaseGenericDAO;
import com.liupengyuan.test.modulePage.pageView.model.PageView;

/**
* @ClassName PageViewDao
* @Description 记录网络访问量DAO接口
* @struts2 配置文件名 struts-test-modulePage-pageView.xml
* @spring3 配置文件名 spring-test-modulePage-pageView.xml
* @mybatis3 配置文件名 mybatis-test-modulePage-pageView.xml
* @表名 sys_page_view
* @author generate
* @date - 2015-02-10 15:33:10
* @version V1.0
*/
public interface PageViewDao extends IBaseGenericDAO<PageView> {

}

DAO实现类:PageViewDaoImpl.java

package com.liupengyuan.test.modulePage.pageView.dao.impl;

import org.springframework.stereotype.Repository;
import com.liupengyuan.framework.dao.MybatisBaseGenericDAOImpl;
import com.liupengyuan.framework.util.GeneratorKey;
import com.liupengyuan.test.modulePage.pageView.dao.PageViewDao;
import com.liupengyuan.test.modulePage.pageView.model.PageView;


/**
* @ClassName PageViewDaoImpl
* @Description 记录网络访问量DAO实现类
* @struts2 配置文件名 struts-test-modulePage-pageView.xml
* @spring3 配置文件名 spring-test-modulePage-pageView.xml
* @mybatis3 配置文件名 mybatis-test-modulePage-pageView.xml
* @表名 sys_page_view
* @author generate
* @date - 2015-02-10 15:33:10
* @version V1.0
*/
@Repository("pageViewDao")
public class PageViewDaoImpl
extends MybatisBaseGenericDAOImpl<PageView>
implements PageViewDao {
/**
* 生成UUID主键值。
* @param ob 记录网络访问量
*/
public void generateId(PageView ob) {
//id
if(null == ob.getId() || ob.getId().length() == 0){
ob.setId(GeneratorKey.genaraId());
}
}
}

model:PageView.java

package com.liupengyuan.test.modulePage.pageView.model;

/**
* @ClassName PageView
* @Description 记录网络访问量 实体(领域)对象
* @struts2 配置文件名 struts-test-modulePage-pageView.xml
* @spring3 配置文件名 spring-test-modulePage-pageView.xml
* @mybatis3 配置文件名 mybatis-test-modulePage-pageView.xml
* @表名 sys_page_view
* @author generate
* @date - 2015-02-10 15:33:10
* @version V1.0
*/
public class PageView implements java.io.Serializable {

/** id */
private java.lang.String id;

/**
* 获取id
* @return id
*/
public java.lang.String getId() {
return this.id;
}
/**
* 设置id
*/
public void setId(java.lang.String id){
this.id = id;
}

/** 用户IP */
private java.lang.String requestIp;

/**
* 获取用户IP
* @return 用户IP
*/
public java.lang.String getRequestIp() {
return this.requestIp;
}
/**
* 设置用户IP
*/
public void setRequestIp(java.lang.String requestIp){
this.requestIp = requestIp;
}

/** 记录会话ID */
private java.lang.String session;

/**
* 获取记录会话ID
* @return 记录会话ID
*/
public java.lang.String getSession() {
return this.session;
}
/**
* 设置记录会话ID
*/
public void setSession(java.lang.String session){
this.session = session;
}

/** 访问的模块 */
private java.lang.String module;

/**
* 获取访问的模块
* @return 访问的模块
*/
public java.lang.String getModule() {
return this.module;
}
/**
* 设置访问的模块
*/
public void setModule(java.lang.String module){
this.module = module;
}

/** 访问时间 */
private java.util.Date visitTime;

/**
* 获取访问时间
* @return 访问时间
*/
public java.util.Date getVisitTime() {
return this.visitTime;
}
/**
* 设置访问时间
*/
public void setVisitTime(java.util.Date visitTime){
this.visitTime = visitTime;
}

/** 访问数量 */
private java.lang.Integer visitCount;

/**
* 获取访问数量
* @return 访问数量
*/
public java.lang.Integer getVisitCount() {
return this.visitCount;
}
/**
* 设置访问数量
*/
public void setVisitCount(java.lang.Integer visitCount){
this.visitCount = visitCount;
}
}

  • XML 配置文件

mybatis文件:mybatis-test-modulePage-pageView.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liupengyuan.test.modulePage.pageView.model.PageView">
<resultMap id="pageViewResultMap" type="com.liupengyuan.test.modulePage.pageView.model.PageView">
<!-- id -->
<result column="id" property="id" jdbcType="VARCHAR" />
<!-- 用户IP -->
<result column="request_ip" property="requestIp" jdbcType="VARCHAR" />
<!-- 记录会话ID -->
<result column="session" property="session" jdbcType="VARCHAR" />
<!-- 访问的模块 -->
<result column="module" property="module" jdbcType="VARCHAR" />
<!-- 访问时间 -->
<result column="visit_time" property="visitTime" jdbcType="TIMESTAMP" />
<!-- 访问数量 -->
<result column="visit_count" property="visitCount" jdbcType="INTEGER" />
</resultMap>
<!-- 表名 -->
<sql id="tableNameSql">
sys_page_view
</sql>

<!-- 用于select查询、insert的公用抽取的列 -->
<sql id="commonSelectColumnsPrefix">
id ,
request_ip ,
session ,
module ,
visit_time ,
visit_count
</sql>

<!-- 按主键查找条件语句 -->
<sql id="conditionOnlyId">
id = #{id}
</sql>

<sql id="mainSql">
SELECT
<include refid="commonSelectColumnsPrefix"/>
FROM
<include refid="tableNameSql"/> p
</sql>

<sql id="varSql">
<where>
<if test="requestIp!=null and requestIp!=''">and p.request_ip like #{requestIp} </if>
<if test="session!=null and session!=''">and p.session like #{session} </if>
<if test="module!=null and module!=''">and p.module like #{module} </if>
</where>
</sql>

<select id="findPageBy" parameterType="java.util.Map" resultMap="pageViewResultMap">
<include refid="mainSql"/>
<include refid="varSql"/>
<if test="SORT != null and SORT != ''">
order by ${SORT}
<if test="DIR != null and DIR != ''">
${DIR}
</if>
</if>
</select>

<select id="getById" parameterType="String" resultMap="pageViewResultMap">
<include refid="mainSql"/>
where <include refid="conditionOnlyId"/>
</select>

<select id="getCountBy" parameterType="java.util.Map" resultType="INTEGER">
SELECT
COUNT(*) AS C
FROM
<include refid="tableNameSql"/> p
<include refid="varSql"/>
</select>

<select id="findListBy" parameterType="java.util.Map" resultMap="pageViewResultMap">
<include refid="mainSql"/>
<include refid="varSql"/>
<if test="SORT != null and SORT != ''">
order by ${SORT}
<if test="DIR != null and DIR != ''">
${DIR}
</if>
</if>
</select>

<insert id="save" parameterType="com.liupengyuan.test.modulePage.pageView.model.PageView">
insert into
<include refid="tableNameSql"/>
(
<include refid="commonSelectColumnsPrefix"/>
)
values
(
#{id, jdbcType=VARCHAR} ,
#{requestIp, jdbcType=VARCHAR} ,
#{session, jdbcType=VARCHAR} ,
#{module, jdbcType=VARCHAR} ,
#{visitTime, jdbcType=TIMESTAMP} ,
#{visitCount, jdbcType=INTEGER}
)
</insert>
<update id="update" parameterType="com.liupengyuan.test.modulePage.pageView.model.PageView">
update
<include refid="tableNameSql"/>
set
request_ip = #{requestIp, jdbcType=VARCHAR} ,
session = #{session, jdbcType=VARCHAR} ,
module = #{module, jdbcType=VARCHAR} ,
visit_time = #{visitTime, jdbcType=TIMESTAMP} ,
visit_count = #{visitCount, jdbcType=INTEGER}
where <include refid="conditionOnlyId"/>
</update>

<delete id="deleteByIds" parameterType="Object[]">
delete from <include refid="tableNameSql"/>
where id in <foreach index="index" item="item" collection="array" separator="," open="(" close=")" >#{item}</foreach>
</delete>

<delete id="deleteById" parameterType="Object">
delete from <include refid="tableNameSql"/> where <include refid="conditionOnlyId"/>
</delete>

</mapper>

spring配置文件:spring-test-modulePage-pageView.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<context:component-scan base-package="com.liupengyuan.test.modulePage.pageView.*" />
</beans>

Struts2配置文件: struts-test-modulePage-pageView.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="com.liupengyuan.test.modulePage.pageView.action.PageViewAction" extends="struts-default" namespace="/jsp/moduleWeb/pageView">

<action name="pageView_*"
class="pageViewAction"
method="{1}">
</action>
<action name="pageView">
<result>/jsp/moduleWeb/pageView/pageView.jsp</result>
</action>

</package>
</struts>



结束...