# 近来比较空闲,看了下iBase4J,但是在iBase4j开发添加小模块时发现并没有太多的文章来介绍它,所以自己就慢慢研究了下,将一些简单的问题一起与大家共享下
**首先**你得确保你的项目都启动成功,网上有许多部署启动iBase4J的文章,这里咱们就不在啰嗦了,小编这里使用的idea神器,
![项目启动成功ok,这里小编没有配置nginx,而是将它的iBase4J-UI\iBase4J-UI-AngularJS也一起部署到tomcat下
接下来项目启动了以后我们首先进行登陆(http://localhost:8080/ui),账号为:admin
密码是:111111
进入iBase的首页
![进入iBase的首页
添加模块

可以直接使用它的程序添加也可以去数据库手动添加,小编在这失去它的数据库添加,将所有的sql都导入数据库

在菜单表中添加菜单

这里的request_ 字段路径要与我们后期的angularJs中的地址相对应,待会介绍
给admin用户添加权限

接下来我们去一下地址中添加访问路径(需要angularJs解析我们的路径所有要在config-route配置文件中去配置)

照猫画虎添加相对应的路径,配置与我们数据库当中的请求路径一致
.state('main.search', {
                    url: '/search',
                    template: '<div ui-view class="fade-in-right-big smooth"></div>'
                })
                .state('main.search.resume', {
                    url: '/resume',
                    template: '<div ui-view class="fade-in-right-big smooth"></div>'
                })
                .state('main.search.resume.list', {
                    url: '/list',
                    templateUrl: 'src/app/search/resume/resume.html',
                    controller: 'resumeController',
                    resolve: {
                        deps: ['uiLoad', '$ocLazyLoad', function(uiLoad, $ocLazyLoad) {
                            return uiLoad.load('src/app/search/resume/resumeController.js').then(function() {
                                return $ocLazyLoad.load('toaster');
                            });
                        }]
                    }
                });
创建相对应的html静态页面和angularJs的控制器

angularJs控制器中的代码也是一样照猫画虎
'use strict';

angular.module('app')
    .controller('resumeController', [ '$rootScope', '$scope', '$http', '$state',
        function($rootScope, $scope, $http, $state) {
            $scope.title = '简历查询';
            $scope.param = { };
            $scope.loading = false;

$scope.search = function () {
                $scope.loading = true;
                $.ajax({
                    type: 'PUT',
                    dataType: 'json',
                    contentType:'application/json;charset=UTF-8',
                    url : '/resume/read/list',
                    data: angular.toJson($scope.param)
                }).then(function(result) {
                    $scope.loading = false;
                    if (result.httpCode == 200) {
                        $scope.pageInfo = result;
                    } else {
                        $scope.msg = result.msg;
                    }
                    $scope.$apply();
                });
            }

$scope.search();

$scope.clearSearch = function() {
                $scope.param.keyword= null;
                $scope.search();
            }

$scope.disableItem = function(id, enable) {

}

// 翻页
            $scope.pagination = function (page) {
                $scope.param.pageNum=page;
                $scope.search();
            };
        } ]);
    项目实现加载我们的html静态页面的的,然后再通过angularJs的ajax去请求我们的动态资源,所以这里的请求路径要与我们后台的controller请求路径相对应!
    在编写之前创建好我们的表

    我们的实体类Resume,创建路径(iBase4J-SYS-Facade\src\main\java\org\ibase4j\model\Resume.java)
    package org.ibase4j.model;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import org.ibase4j.core.base.BaseModel;

/**
 * Created by Administrator on 2017/8/16.
 */
@TableName("resume")
public class Resume extends BaseModel {

/**
     * 公司名称
     */
    @TableField("company_name")
    private String companyName;

public String getCompanyName() {
        return companyName;
    }

public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }
}
实体类中继承了我们的基类BaseModel 我们可以点进去看一看,
因为在BaseModel中已经有了对id,enable等字段的编写所以我们在实体类中只需要编写我们BaseModel中没有的就好!
    
    那么接着**到我们的后台编写了**不得不说它封装挺好的,从Controller开始
    在web应用下创建iBase4J-SYS-Web\src\main\java\org\ibase4j\web\ResumeCtroller.java
    package org.ibase4j.web;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.ibase4j.core.base.AbstractController;
import org.ibase4j.core.base.Parameter;
import org.ibase4j.provider.ISysProvider;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2017/8/16.
 */
@RestController
@Api(value = "简历查询", description = "简历查询")
@RequestMapping(value = "/resume")
public class ResumeCtroller extends AbstractController<ISysProvider> {
    //注入我们的相对应的service
    @Override
    public String getService() {
        return "resumeService";
    }

// 查询最新简历
    @ApiOperation(value = "查询最新简历")
    @PutMapping(value = "/read/list")
    public Object get(ModelMap modelMap, @RequestBody Map<String, Object> param) {
        return super.queryList(modelMap, param);
    }
}
继承他的基类使用基类的queryList方法,查询列表
继续到service
这里我们只需要创建service的实现类即可,非常方便
iBase4J-SYS-Service\src\main\java\org\ibase4j\service\ResumeService.java

package org.ibase4j.service;
import org.ibase4j.core.base.BaseService;
import org.ibase4j.core.util.InstanceUtil;
import org.ibase4j.model.Resume;
import org.ibase4j.model.SysMenu;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2017/8/17.
 */
@Service
@CacheConfig(cacheNames = "sysResume")
public class ResumeService extends BaseService<Resume> {
    public List<Resume> queryList(Map<String, Object> params) {
        List<Resume> pageInfo = super.queryList(params);
        return pageInfo;
    }
}
这里的service调用基类的queryList时他帮我们做了许多事情不再用我们去查询他的列表,看它的代码

接着是我们的mapper接口和mapper.xml
iBase4J-SYS-Service\src\main\java\org\ibase4j\mapper\SysResumeMapper.java 一样去继承它的基类
package org.ibase4j.mapper;

import org.apache.ibatis.annotations.Param;
import org.ibase4j.core.base.BaseMapper;
import org.ibase4j.model.Resume;

import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2017/8/17.
 */
public interface SysResumeMapper extends BaseMapper<Resume> {
    public List<Long> selectIdPage(@Param("cm") Map<String, Object> params);
}
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="org.ibase4j.mapper.SysResumeMapper">
    <select id="selectIdPage" parameterType="java.util.Map" resultType="java.lang.Long">
        select id_ from resume
    </select>
</mapper>
这样的话它的整个项目前台请求到后台再到我们的数据库就都打通了
本博客中使用的各个名称都是学习使用并没有作为商用!!!
感谢大家的细心阅读,相信大家也一定会有更好的建议告诉我,快来评论吧!!!本人一定铭记教诲!!!

iBase4J简单应用添加模块相关推荐

  1. Spring Boot和多模块项目–添加模块特定的属性文件

    你好! 在本文中,我将向您展示几种如何在Spring Boot项目中添加模块特定的属性文件的方法. 它将介绍使属性文件可识别配置文件的手动方法以及可识别配置文件的半自动方法. 我的Github帐户上发 ...

  2. mysql添加映射模块_iis7.5中让html与shtml一样支持include功能(添加模块映射)

    刚开始弄得时候,发现了很多错误,其实很简单,参考shtm原来的设置就可以了 前提条件: ServerSideIncludeModule的安装: 在安装iis的时候选择上该服务("在服务端包含 ...

  3. Cuyahoga 添加模块

    Cuyahoga 国外的开源CMS一般都是基于模块设计的 ,好处是可以随意定制自己的页面和模块,这样在以后的应用中就能够灵活的满足变化的功能需求. 一个模块齐全的CMS如DNN , Rainbow就可 ...

  4. Android Studio(8)---为新设备添加模块

    为新设备添加模块 模块为应用程序的源代码,资源文件和应用程序级别设置提供容器,例如模块级构建文件和Android清单文件.每个模块都可以独立构建,测试和调试. Android Studio使用模块可以 ...

  5. 超详细!简单的物联网模块esp8266接入小爱爱同学控制电器(一)——控制开关灯

    简单的物联网模块esp8266接入小爱爱同学控制电器(一)--控制开关灯 闲来无事,分享一个简单使用的物联网实现系统(小爱同学+esp8266),实现手机控制开关灯+小爱同学控制开关灯 1.准备材料: ...

  6. linux更新模块,Linux下Nginx的安装、升级及动态添加模块

    系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...

  7. IDEA添加模块时,插件报错:java.util.NoSuchElementException Collection is empty

    IDEA添加模块时,插件报错:java.util.NoSuchElementException: Collection is empty. 解决方法一: 根据github上面的提示说是要在插件中添加设 ...

  8. IntelliJ IDEA for Mac 如何在当前的普通Java项目中创建新的模块/添加模块/创建模块

    文章目录 添加模块的入口 创建新的项目模块 添加模块的入口 添加新的模块的入口有两个,如下图所示: 第一种方式,[File] --> [New] --> [Module]: 第二种方式,打 ...

  9. IntelliJ IDEA 如何知道项目中的模块数据_如何从项目源中选择模块加入当前项目中(添加模块)_如何移除项目中的模块(移除模块/删除模块)

    文章目录 IDEA 如何获取项目的模块数据 从项目源中选择模块加入当前项目中 如何移除项目中的模块 方式一,选择模块的根目录(Content Root),鼠标右键 Remove 方式二,打开[项目结构 ...

  10. html语言音乐添加路径,HTML5简单实现添加背景音乐的几种方法

    这里推荐两种方法,就是两个标签 或者 常用 +css布局 隐藏播放器 做网站比较实用! html5添加音乐 说明: 1.src毫无疑问写路径. 2.使用hidden="true"表 ...

最新文章

  1. hdu 5087(LIS变形)
  2. 文青工程师陈盛 — 程序员+文青是怎样一种体验
  3. Hypersonic SQL开源数据库方向比较流行的纯Java开发的关系型数据库
  4. yii之behaviors
  5. php2个数字拼接,PHP合并2个数字键数组值示例详解
  6. nginx ssl 双向认证
  7. python加法例子_第二讲 做加法的例子
  8. SpringBoot Redis缓存 @Cacheable、@CacheEvict、@CachePut
  9. 关于Bootstrap的理解
  10. z变换解差分方程例题_中级数学4 - 多元线性方程
  11. 华硕win10键盘失灵_华硕笔记本键盘失灵怎么办win10(Win10的键盘失灵解决办法)...
  12. 什么样的固定资产管理系统才能满足企业需求
  13. 网络工程师MSDP 基本介绍
  14. Csico IPPS 测试程序 autodialer.jsp
  15. 【Unity 粒子系统】Lifetime Speed 相关
  16. 通常IT创业可以有7种盈利方式
  17. c语言1087答案,1087 有多少不同的值(C语言)
  18. 徐佳计算机教授,计算机与软件学院第六届ECNU Coder程序设计竞赛成功举办
  19. iOS 12 越狱支持 Cydia
  20. 计算机软件工程网络管理员实习报告范文、周记及总结30篇

热门文章

  1. 网上书店系统需求分析说明书
  2. 手把手教你protel 99se 入门
  3. InstallShield 使用说明
  4. js代码混淆 webpack-obfuscator
  5. 德国计算机专业英语授课,德国留学——细数德国亚琛工大的英语授课硕士专业...
  6. 计算机组成原理(微课版 谭志虎)试题及答案
  7. 【MM小贴士】SAP 批次双单位 CWM 的使用演示
  8. 股市最好用的大数据软件_最实用的5款炒股软件
  9. 【modelarts】华为人工智能平台_modelarts平台系列教程1
  10. 【微信小程序】实现手机全屏滚动字幕