欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SSM基于配置生成API接口的实现设计(一)

程序员文章站 2023-04-06 13:10:12
最近有用SSM写一些API 感觉大多是重复性的劳动 应该可以抽象出来配置化开发就好了 主要实现2个部分: 1.自动生成对模型(单表)的增删改查接口功能 2.配置化多表多参数功能 目前已经实现了第一步 github地址:https://github.com/dickwin/ICS/ 在属性文件里: a ......

最近有用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

项目结构图如下:

SSM基于配置生成API接口的实现设计(一)

元数据统一的模板信息如下:

SSM基于配置生成API接口的实现设计(一)

接口模板:

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;
}
}