SSM基于配置生成API接口的实现设计(一)
最近有用ssm写一些api 感觉大多是重复性的劳动 应该可以抽象出来配置化开发就好了
主要实现2个部分:
1.自动生成对模型(单表)的增删改查接口功能
2.配置化多表多参数功能
目前已经实现了第一步
github地址:https://github.com/dickwin/ics/
在属性文件里:
application.properties
配置数据库信息和生成代码的地址:
jdbc.properties:
ics.config.driverclassname=com.mysql.jdbc.driver
ics.config.url=jdbc:mysql://127.0.0.1:3306/ics?characterencoding=gbk
ics.config.username=root
ics.config.password=root
ics.config.minipoolsize=1
ics.config.maxpoolsize=20
ics.config.initialpoolsize=1
ics.config.maxidletime=25000
ics.config.acquireincrement=1
ics.config.pakagedir=d:\\exworkspace\\ics\\src\\main\\java\\com\\ics
ics.config.mybatdir=d:\\exworkspace\\ics\\src\\main\\resources\\mybatis
// 1.生成xxxmapper.java
// 2.生成xxxservice.java
// 3.生成xxxcontroller.java
// 4.生成xxxmapper.xml
项目结构图如下:
元数据统一的模板信息如下:
接口模板:
package com.ics.mapper;
import java.util.list;
import java.util.map;
public interface @modelmapper {
public int @addmodel(map parammap);
public int @delmodel(map parammap);
public int @updatemodel(map parammap);
public list @getmodel(map parammap);
}
service类模板:
package com.ics.service;
import java.util.list;
import java.util.map;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.service;
import com.ics.mapper.@modelmapper;
@service
public class @modelservice {
@autowired
private @modelmapper @model;
public int @addmodel(map parammap){
int ls=@model.@addmodel(parammap);
return ls;
}
public int @delmodel(map parammap){
int ls= @model.@delmodel(parammap);
return ls;
}
public int @updatemodel(map parammap){
int ls=@model.@updatemodel(parammap);
return ls;
}
public list @getmodel(map parammap){
list ls=@model.@getmodel(parammap);
return ls;
}
}
mapper 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.ics.mapper.@modelmapper">
<!-- 增加model -->
<insert id="@addmodel" parametertype="java.util.hashmap">
insert into
@tablename
(@insertsqlcolumn)
values
(@insertsqlvalue)
</insert>
<!-- 删除model -->
<delete id="@delmodel" parametertype="java.util.hashmap">
delete from
@tablename
where
<if test="id !=null and id !=''">
id = #{id}
</if>
</delete>
<!-- 更新model -->
<update id="@updatemodel" parametertype="java.util.hashmap">
update
@tablename set @updatesql where id=#{id}
</update>
<!-- 查询model -->
<select id="@getmodel" resulttype="java.util.hashmap">
select * from @tablename
</select>
</mapper>
controller模板:
package com.ics.controller;
import java.util.hashmap;
import java.util.list;
import java.util.map;
import org.apache.log4j.logmanager;
import org.apache.log4j.logger;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.requestmethod;
import org.springframework.web.bind.annotation.responsebody;
import com.ics.service.@modelservice;
@controller
@requestmapping("/@model")
public class @modelcontroller extends basecontroller{
private static logger log = logmanager.getlogger(@modelcontroller.class.getname());
@autowired
private @modelservice @model;
@requestmapping(value = "/@getmodel", method = requestmethod.get)
@responsebody
public object @getmodel() {
map data = new hashmap();
data.put("ret","1");
try {
list rs = @model.@getmodel(parammap);
data.put("data",rs);
data.put("len",rs.size());
data.put("ret","0");
} catch (exception e) {
log.error(e.getlocalizedmessage(), e);
}
return data;
}
@requestmapping(value = "/@addmodel", method = requestmethod.get)
@responsebody
public object @addmodel() {
map data = new hashmap();
data.put("ret","1");
try {
int rs = @model.@addmodel(parammap);
data.put("data", rs);
data.put("ret","0");
} catch (exception e) {
log.error(e.getlocalizedmessage(), e);
}
return data;
}
@requestmapping(value = "/@delmodel", method = requestmethod.get)
@responsebody
public object @delmodel() {
map data = new hashmap();
data.put("ret","1");
try {
int rs = @model.@delmodel(parammap);
data.put("data", rs);
data.put("ret","0");
} catch (exception e) {
log.error(e.getlocalizedmessage(), e);
}
return data;
}
@requestmapping(value = "/@updatemodel", method = requestmethod.get)
@responsebody
public object @updatemodel() {
map data = new hashmap();
data.put("ret","1");
try {
int rs = @model.@updatemodel(parammap);
data.put("data", rs);
data.put("ret","0");
} catch (exception e) {
log.error(e.getlocalizedmessage(), e);
}
return data;
}
}
推荐阅读
-
SSM基于配置生成API接口的实现设计(一)
-
Yii2 advanced版API接口开发 基于RESTful架构的 配置、实现、测试
-
SSM基于配置生成API接口的实现设计(一)
-
Yii2 advanced版API接口开发 基于RESTful架构的 配置、实现、测试
-
Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试,yii2restful
-
Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试,yii2restful_PHP教程
-
Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试,yii2restful_PHP教程