程序模版

4 篇文章 0 订阅

为了快速开发, 整理的 本业务 模版


ibatis  sql  字符串时用 #  整型用 $





json 字段
status:返回状态
message:返回文字描述
page:当前页
pageSize:每页大小
total:总个数
pages:总页数
results:返回集合列表
extras:附件信息,扩展信息

data:



**************************dao**************************************
@Repository("floorPicDao")


private static Logger logger = Logger.getLogger(*******.class);
private SqlSessionTemplate sqlSession;  


public SqlSessionTemplate getSqlSession() {
return sqlSession;
}
@Resource
public void setSqlSession(SqlSessionTemplate sqlSession) {
this.sqlSession = sqlSession;
}
public int getBuildsCount(*****Info *****Info){
Map<String,Object> map = new HashMap<String,Object>();
map.put("*****Info", *****);
return sqlSession.selectOne("*****************sql配置路径",map);
}


public List<BuildingInfo> getBuilds(*****Info ****Info,int start,int pagesize){
Map<String,Object> map = new HashMap<String,Object>();
map.put("*****nfo", *****);
map.put("start", start);
map.put("pagesize", pagesize);
return sqlSession.selectList("*****************sql配置路径", map);
}


public int addInfo(*** **){
Map<String,Object> map = new HashMap<String,Object>();
map.put("*****", ****);
return sqlSession.insert("*****************sql配置路径", map);
}

public int updateInfo(*** **){
Map<String,Object> map = new HashMap<String,Object>();
map.put("*****", ****);
return sqlSession.update("*****************sql配置路径", map);

}




************************************service***********************************************
@Service("beaconManagerService")


public int getBuildsCount(*****Info *****Info){
return ****Dao.getBuildsCount(buildingInfo);
}
public List<BuildingInfo> getBuilds(******Info *****Info,int start,int pagesize){
return ****Dao.getBuilds(buildingInfo, start, pagesize);

}




**********************************controller**********************************************
/**
* ***************描述信息
* @param page
* @param pageSize
* @return
*/
@RequestMapping(value = ("/*****.json"))
@ResponseBody
public Map<String,Object> getBuildList(String page,String pageSize){

Map<String,Object> map = new HashMap<String,Object>();
map.put("status", StringTipConstants.status_default);
map.put("message", StringTipConstants.FAIL);

int start = 1;
if(!StringUtils.isEmpty(page)){
start = Integer.parseInt(page);
}
int end = Constants.Default_Page_SIZE;
if(!StringUtils.isEmpty(pageSize)){
end = Integer.parseInt(pageSize);
}

if(start < 1 || end < 1 ){
map.put("status", 0);
map.put("message","分页排序参数不对");
return map;
}

int total = ****Service.getBuildsCount(*****Info);
map.put("count", total);
map.put("pages", Constants.getTotalPage(total, end));
List<BuildingInfo> buildList = ******Service.getBuilds(*****Info,(start-1)*end,end);
map.put("status", StringTipConstants.STATIC_success);
if(buildList!=null && buildList.size()>0){
map.put("message", StringTipConstants.SUCCEED);
map.put("results", *****List);
}else{
map.put("message", StringTipConstants.not_any_query_data);
}
return map;
}




******************************SQL***********************************


映射对象
<resultMap type="com.rtmap.licenseBusiness.entity.LicenseInfo" id="licenseInfo">  
<id column="key"  property="key"/>
<result column="ownBuildNum" property="ownBuildNum"/>
</resultMap>


返回列表 总个数
<select id="getBuildListCount" parameterType="Map"  resultType="int">
    select count(0) from xunlu_api.build b where true 
<if test="buildingInfo.status_del !=null and  buildingInfo.status_del !=''">
    and b.status_del = '${buildingInfo.status_del}'
</if>
</select>




返回列表
 <select id="get*****List" parameterType="Map"  resultMap="****Info">
    select ,,,,,,
from *****  
where true 
<if test="*****.**!=null and *****.**!=''">
and b.**** = '${*****.**}'
</if>
limit ${start},${pagesize}
 </select>




更新操作
<update id="insert****" parameterType="Map" >
    REPLACE into license(,,,,,,,,) 
    values (,,,,,,,,,);  
    <!-- values (时间函数:NOW());-->
</update>
插入操作
<insert id="insert****" parameterType="Map">
 INSERT INTO xunlu_api.code_area(,,,,,) 
        values(,,,,,,,) 
</insert>


删除操作
<delete id="delete****" parameterType="Map">
DELETE FROM ${tablename} where MAC = '${mac}' 
</delete>


动态按照条件查询 (如果需要循环迭代,最好用list,不要用数组)


引入
<include refid="sqlId" />
<dynamic prepend="WHERE"></dynamic> 动态
// isNotEmpty 表示如果非空,property表示类属性名 
<isNotEmpty prepend="AND" property="username">


<if test="***!=null and ***!=''"></if>
选择
<choose> 
<when test = "order != null and order != ''">
        order by ${order}
</when>
<otherwise>
       order by floor asc
</otherwise>
</choose>
循环  可选 open="(" close=")" 
<foreach collection="数据集合" item="item" index="index" separator="," >  
</foreach> 
特殊操作
<![CDATA[   ******   ]]>


二元判定有两个判定参数,一是属性名,而是判定值,如
<isGreaterThan prepend="AND" property="age"
compareValue="18">
(age=#age#)
</isGreaterThan>
二元判定节点有:
<isEqual> 相等。
<isNotEqual> 不等。
<isGreaterThan> 大于
<isGreaterEqual> 大于等于
<isLessThan> 小于
<isLessEqual> 小于等于
**************************测试案例******************************************
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext.xml","classpath:spring-mvc.xml"  }) 
//@TransactionConfiguration(defaultRollback = true) 
public class LicenseBuildGroupTest {


@Autowired  
    private WebApplicationContext wac;  
    private MockMvc mockMvc; 
    
    @Before  
    public void setup() {   
    mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();  
    } 

@Test
public void sssTest(){
try {
if(mockMvc==null){
System.out.println("测试前的初始准备没弄好");
}else{
MvcResult result = mockMvc.perform(
MockMvcRequestBuilders.get("/****/****").   //get方式
    //post("/****/****").                       //post 方式

.servletPath("/****/****.json")
.param("key", "8494f3785c75058fd2c17202f03e18e3")
).andExpect(status().isOk())
.andReturn();

System.out.println(result.getResponse().getContentAsString());
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("sdfsdf");
}
}


********************************************************************
Ctrl + Shift + O  :  导入包(删除无用的资源引用)  缺少的Import语句被加入,多余的Import语句被删除。 
Ctrl + Shift + R  :  文件查找(查找资源)
ctrl+o            :当前类的所有方法 查找纲要
Ctrl+Alt+H        : 查看被引用
全局 重命名 Alt+Shift+R 
Ctrl+M切换窗口的大小 
F3     跳到声明或定义的地方。 
Ctrl+D    删除当前行。
Ctrl+1 快速修复
Ctrl+Q 定位到最后编辑的地方 
Ctrl+J 正向增量查找
Alt+Shift+L   抽取本地变量
Alt+Shift+F 把Class中的local变量变为field变量
Ctrl+Shift+F     格式化文件Format Document。 




一次显示多个文件:你可以一次浏览多个文件。把不在激活状态的编辑窗口拖到激活窗口的底部或侧边的滚动条上,就可以打开该编辑窗口。这是我能描述该窍门的最好方式了。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值