Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

howroad/dbWriter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

82 Commits

Repository files navigation

该项目已在cdWriter中重写!传送门: https://github.com/howroad/cdwriter/

dbWriter

数据库创建文件的小工具v0.3 #####公司项目中用到很多CURD操作,由于框架的原因,使用的是Ibatis2.3,使用工具经过简单的配置可以生成ibatis文件,dao文件,注释,等相关信息。

V0.2 ###现在只需要更改settings.properties,仍然还在原位置生成代码, ###如果需要测试只需要把autoRunTest=true,执行start后会自动将生成的代码放入工程并自动编译自动执行,注意自动测试只能测试简单的对象(主键是数字并且没有外键引用的)

V0.3 ###支持个性化查询如分页查询,支持模版生成代码

V0.4 ###增加可视化界面

###数据库一般是设计好的,但也有可能是需要自己创建。 ##1.通过Excel创建可以重复执行的建表语句和序列的生成方法。

###0.0配置文件settings.properties

 #工作空间
 PATH=C:/Users/Administrator/Desktop/model/
 #Excel的地址
 EXCEL_PATH=C:/Users/Administrator/Desktop/model/1.xlsx
 #是否从Excel中读取(会生成建表语句与创建序列的语句)
 fromExcel=true
 #是否从数据库中读取(生成CURD)
 fromDatebase=true
 #是否需要指定模块名
 appNo=temp
 #需要从数据库查询的表名
 tablesFromDB=tps_affair,tps_affair_type
 #序列的命名规则 0表示SEQ_TABLE,1表示TABLE_SEQ
 SEQ_DIR=1
 #是否需要处理序列,如果false则生成的SQL中没有类似selectKey之类的东西
 dealSEQ=true
 #自动生成的实现类是否需要加注释(另类要求)
 implCommont=true
 #是否自动执行测试
 autoRunTest=false
 #primary key must be Number!!!#
 #primary key must be Number!!!#
 #primary key must be Number!!!#
 #主键必须是number格式,否则不能运行!

###1.2生成的TAB文件如下

 DECLARE
 CNT INTEGER;
 BEGIN
 SELECT COUNT(0) INTO CNT FROM USER_ALL_TABLES
 WHERE TABLE_NAME = UPPER('TPS_R_CLT_AFFTYPE_FLOW');
 IF CNT = 0 THEN
 EXECUTE IMMEDIATE 'CREATE TABLE TPS_R_CLT_AFFTYPE_FLOW(
 ID NUMBER,
 CLTNO VARCHAR2(30),
 AFFAIR_CODE VARCHAR2(20),
 FW_KEY VARCHAR2(20))';
 END IF;
 END;
 /
 COMMENT ON TABLE TPS_R_CLT_AFFTYPE_FLOW IS '单位事物类型工作流关系表';
 /
 COMMENT ON COLUMN TPS_R_CLT_AFFTYPE_FLOW.ID is '关系表主键';
 /
 COMMENT ON COLUMN TPS_R_CLT_AFFTYPE_FLOW.CLTNO is '单位编号';
 /
 COMMENT ON COLUMN TPS_R_CLT_AFFTYPE_FLOW.AFFAIR_CODE is '事物类型编号';
 /
 COMMENT ON COLUMN TPS_R_CLT_AFFTYPE_FLOW.FW_KEY is '流程编号';
 /
 DECLARE
 CNT INTEGER;
 BEGIN
 SELECT COUNT(0) INTO CNT FROM USER_CONSTRAINTS
 WHERE CONSTRAINT_NAME = UPPER('TPS_R_CLT_AFFTYPE_FLOW_PK');
 IF CNT = 0 THEN
 EXECUTE IMMEDIATE 'ALTER TABLE TPS_R_CLT_AFFTYPE_FLOW ADD CONSTRAINT TPS_R_CLT_AFFTYPE_FLOW_PK PRIMARY KEY(ID)';
 END IF;
 END;
 /

###1.2生成的SEQ文件如下

 DECLARE
 CNT INTEGER;
 BEGIN
 SELECT COUNT(0) INTO CNT FROM USER_SEQUENCES
 WHERE SEQUENCE_NAME = UPPER('TPS_R_CLT_AFFTYPE_FLOW_SEQ');
 IF CNT = 0 THEN
 EXECUTE IMMEDIATE 'CREATE SEQUENCE TPS_R_CLT_AFFTYPE_FLOW_SEQ
 MINVALUE 1
 MAXVALUE 9999999999999999999999999
 START WITH 1
 INCREMENT BY 1
 CACHE 20';
 END IF;
 END;
 /

###2.1生成的XML文件如下

 <!-- 新增事务申请 -->
 <insert id="saveAffair" parameterClass="com.nstc.temp.model.Affair">
 <selectKey resultClass="java.lang.Integer" keyProperty="id">
 SELECT TPS_AFFAIR_SEQ.NEXTVAL AS id FROM DUAL
 </selectKey>
 INSERT INTO TPS_AFFAIR (
 ID,
 AFFAIR_CODE,
 CLTNO,
 ACT_DATE,
 DESCRIPTION,
 UPFILENAME,
 STATUS,
 APPROVE_PERSON,
 APPROVE_TIME,
 APPROVE_OPINION,
 BIZCASEID,
 CREATE_PERSON,
 CREATE_TIME,
 UPDATE_PERSON,
 UPDATE_TIME
 ) VALUES(
 #id#,
 #affairCode#,
 #cltno#,
 #actDate#,
 #description#,
 #upfilename#,
 #status#,
 #approvePerson#,
 #approveTime#,
 #approveOpinion#,
 #bizcaseid#,
 #createPerson#,
 #createTime#,
 #updatePerson#,
 #updateTime#
 )
 </insert>
 <!-- 删除事务申请 -->
 <delete id="deleteAffairById" parameterClass="java.lang.Integer">
 delete TPS_AFFAIR WHERE ID = #id#
 </delete>
 <!-- 修改事务申请 -->
 <update id="updateAffair" parameterClass="com.nstc.temp.model.Affair">
 UPDATE TPS_AFFAIR SET
 ID = #id#
 <isNotEmpty prepend="," property="affairCode">
 AFFAIR_CODE = #affairCode#
 </isNotEmpty>
 <isNotEmpty prepend="," property="cltno">
 CLTNO = #cltno#
 </isNotEmpty>
 <isNotEmpty prepend="," property="actDate">
 ACT_DATE = #actDate#
 </isNotEmpty>
 <isNotEmpty prepend="," property="description">
 DESCRIPTION = #description#
 </isNotEmpty>
 <isNotEmpty prepend="," property="upfilename">
 UPFILENAME = #upfilename#
 </isNotEmpty>
 <isNotEmpty prepend="," property="status">
 STATUS = #status#
 </isNotEmpty>
 <isNotEmpty prepend="," property="approvePerson">
 APPROVE_PERSON = #approvePerson#
 </isNotEmpty>
 <isNotEmpty prepend="," property="approveTime">
 APPROVE_TIME = #approveTime#
 </isNotEmpty>
 <isNotEmpty prepend="," property="approveOpinion">
 APPROVE_OPINION = #approveOpinion#
 </isNotEmpty>
 <isNotEmpty prepend="," property="bizcaseid">
 BIZCASEID = #bizcaseid#
 </isNotEmpty>
 <isNotEmpty prepend="," property="createPerson">
 CREATE_PERSON = #createPerson#
 </isNotEmpty>
 <isNotEmpty prepend="," property="createTime">
 CREATE_TIME = #createTime#
 </isNotEmpty>
 <isNotEmpty prepend="," property="updatePerson">
 UPDATE_PERSON = #updatePerson#
 </isNotEmpty>
 <isNotEmpty prepend="," property="updateTime">
 UPDATE_TIME = #updateTime#
 </isNotEmpty>
 WHERE ID = #id#
 </update>
 <!-- 查询事务申请 -->
 <select id="getAffairList" parameterClass="com.nstc.temp.model.Affair" resultClass="com.nstc.temp.model.Affair">
 SELECT
 T.ID AS "id",
 T.AFFAIR_CODE AS "affairCode",
 T.CLTNO AS "cltno",
 T.ACT_DATE AS "actDate",
 T.DESCRIPTION AS "description",
 T.UPFILENAME AS "upfilename",
 T.STATUS AS "status",
 T.APPROVE_PERSON AS "approvePerson",
 T.APPROVE_TIME AS "approveTime",
 T.APPROVE_OPINION AS "approveOpinion",
 T.BIZCASEID AS "bizcaseid",
 T.CREATE_PERSON AS "createPerson",
 T.CREATE_TIME AS "createTime",
 T.UPDATE_PERSON AS "updatePerson",
 T.UPDATE_TIME AS "updateTime"
 FROM TPS_AFFAIR T WHERE 1 = 1
 <isNotEmpty property="id" prepend="and">
 T.ID = #id#
 </isNotEmpty>
 <isNotEmpty property="affairCode" prepend="and">
 T.AFFAIR_CODE = #affairCode#
 </isNotEmpty>
 <isNotEmpty property="cltno" prepend="and">
 T.CLTNO = #cltno#
 </isNotEmpty>
 <isNotEmpty property="actDate" prepend="and">
 T.ACT_DATE = #actDate#
 </isNotEmpty>
 <isNotEmpty property="description" prepend="and">
 T.DESCRIPTION = #description#
 </isNotEmpty>
 <isNotEmpty property="upfilename" prepend="and">
 T.UPFILENAME = #upfilename#
 </isNotEmpty>
 <isNotEmpty property="status" prepend="and">
 T.STATUS = #status#
 </isNotEmpty>
 <isNotEmpty property="approvePerson" prepend="and">
 T.APPROVE_PERSON = #approvePerson#
 </isNotEmpty>
 <isNotEmpty property="approveTime" prepend="and">
 T.APPROVE_TIME = #approveTime#
 </isNotEmpty>
 <isNotEmpty property="approveOpinion" prepend="and">
 T.APPROVE_OPINION = #approveOpinion#
 </isNotEmpty>
 <isNotEmpty property="bizcaseid" prepend="and">
 T.BIZCASEID = #bizcaseid#
 </isNotEmpty>
 <isNotEmpty property="createPerson" prepend="and">
 T.CREATE_PERSON = #createPerson#
 </isNotEmpty>
 <isNotEmpty property="createTime" prepend="and">
 T.CREATE_TIME = #createTime#
 </isNotEmpty>
 <isNotEmpty property="updatePerson" prepend="and">
 T.UPDATE_PERSON = #updatePerson#
 </isNotEmpty>
 <isNotEmpty property="updateTime" prepend="and">
 T.UPDATE_TIME = #updateTime#
 </isNotEmpty>
 </select>

###3.0从数据库中生成的CURD文件,会自动生成测试类。

About

数据库创建文件的小工具(早期版本) 新版地址https://github.com/howroad/cdwriter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /