code-product使用手冊

使用手冊

單表操作五分鐘寫完,包括單元測試

1 修改jdbc.properties和package.properties

   修改數據庫連接信息,修改項目路徑,java文件報名。

2 修改generatorConfig2.xml文件,添加table標籤

   項目基於mybatis generator工具生成dao層文件,需要配置

<table tableName="role" mapperName="RoleDao" domainObjectName="Role" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>

3 方法

Operation.java中定義了操作方法;
   其中beanName是根據數據庫生成實體類的名字,首字母大寫。baseName是在Biz層往上的文件命名(例如:RoleBiz,Role是baseName)

方法一
一條龍創建生成所有文件(共19個文件),適用於單表操作。
Bean實現序列,繼承了BeanBase,自動添加數據庫common註釋;
根據實體類生成了AoBean和VoBean以及Adaptor;
生成Biz和provider;提供controller;
生成兩個單元測試文件,一個service單元測試,一個biz單元測試,可以直接運行。

public static void initFiles(String beanName, String baseName)

實例

public static void main( String[] args) throws Exception {
    Operation.initFiles("Role","Role");
}

結果
在這裏插入圖片描述
未完成的內容全打成TODO了,完成todo
在這裏插入圖片描述
例如:

    @Override
    public Integer addRole (RoleQuery roleQuery) {
        return new BizTemplate<Integer>() {
            @Override
            protected void checkParams() {
                WAssert.notEmpty(roleQuery.getCode(), "Role的Code不能爲空");
                WAssert.notEmpty(roleQuery.getRid(), "Role的Rid不能爲空");
                WAssert.notEmpty(roleQuery.getRoleName(), "Role的RoleName不能爲空");
                WAssert.notEmpty(roleQuery.getRoleDescribe(), "Role的RoleDescribe不能爲空");
                WAssert.notNull(roleQuery.getSort(), "Role的Sort不能爲空");
                WAssert.notNull(roleQuery.getForbiddenStatus(), "Role的ForbiddenStatus不能爲空");
                //TODO 補充校驗
            }

            @Override
            protected Integer process() {
                Role role = RoleAdaptor.adapt(roleQuery);
                //TODO 設置code
                int result = roleService.insert(role);
                return result;
            }
        }.execute();
    }

方法二

public static void initDaoAndServiceFiles()

生成service及以下的文件,提前配置generatorConfig2.xml,把要生成的表填好。

方法三

/**
     * 創建core的Biz和Provider的初始化文件
     * @param beanName service層名字(名字不加Service)
     * @param baseName biz層及以下的名字(名字不加Service)
     * @throws Exception
     */
    public static void initBizAndProviderFiles(String beanName,String baseName) 

    /**
     * 創建core的biz和Provider方法,完成TODO
     * @param beanName
     * @param baseName
     * @param method
     * @throws Exception
     */
    public static void addCoreBizAndProviderMethod(String beanName, String baseName, Method method)
    
    /**
     * 創建service層及以下的方法,可根據方法參數生成簡單的sql
     * @param beanName
     * @param method
     * @throws Exception
     */
    public static void addServiceMethod(String beanName, Method method)

    /**
     * 創建Man的biz和Controller方法,完成TODO
     * @param beanName
     * @param baseName
     * @param method
     * @throws Exception
     */
    public static void addManBizAndControllerMethod(String beanName, String baseName, Method method)
    
    /**
     * 根據queryJson生成自定義查詢
     * @param beanName
     * @param method
     * @param queryJson
     * @throws Exception
     */
    public static void addMethodByQueryJson(String beanName, Method method, String queryJson) throws Exception 

實例

    public static void main( String[] args) throws Exception {
        Operation.initFiles("Role","Role");

        Method method = new Method("Role selectByNameAndDescribe(String roleName, String roleDescribe)");
        Operation.addServiceMethod("Role", method);

        Method method2 = new Method("RoleAo selectByNameAndDescribe(String roleName, String roleDescribe)");
        Operation.addCoreBizAndProviderMethod("Role", "Role", method2);

        Method method3 = new Method("RoleVo selectByNameAndDescribe(String roleName, String roleDescribe)");
        Operation.addManBizAndControllerMethod("Role", "Role", method3);
		 //TestQuery testQuery只能有這個一個參數,而且只是select方法,TestQuery是id,不能與已有的重複,json暫時只能有String和Int兩種類型,別的解析不出來。該方法會生成TestQuery文件,在dao和service中添加方法,修改mapper.xml文件,添加sql語句。
        Method method4 = new Method("List<Role> selectByTestQuery(TestQuery testQuery)");

        String json = "{\n" +
                "  \"page\": {\n" +
                "    \"pageNo\": 1,\n" +
                "    \"pageSize\": 10\n" +
                "  },\n" +
                "  \"roleName\": \"zk\",\n" +
                "  \"sort\": 0\n" +
                "}";

        Operation.addMethodByQueryJson("Role" ,method4, json);
    }

方法四
添加和修改字段,tableName是表名,帶下劃線的那個。會根據表名查詢數據庫看少了,還是多了某個字段,主要是修改mapper,bean,voBean,aobean,querybean


    /**
     * 根據表名添加字段,自動查表補充字段(添加bean類,Aobean,Vobean,queryBean)
     * @param tableName
     * @throws Exception
     */
    public static void addColumn(String tableName) 

    /**
     * 根據表名添加字段,自動查表刪除字段(刪除bean類,Aobean,Vobean,queryBean中字段)
     * @param tableName
     * @throws Exception
     */
    public static void deleteColumn(String tableName)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章