0.7.3 • Published 4 years ago

dsqlcore v0.7.3

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

dsqlcore 简介

dsql(Direct SQL)是一个将sql文件直接转换为数据库访问对象(Dao, Data Access Object)代码的工具,见以下例子: (SQL源文件件为User.sql)

    -- desc: 查询用户列表
	-- name: getList
    select userid, username, mobile from users where age >=(20);
	
	...

以上User.sql经过dsql工具,生成以下UserDao.java代码

	class UserDao{
	    public static List<UserPo> getList(int agebegin) throws Exception{
		  String sql="select userid, username, mobile from users where age >=?"
		  ...
		}
		...
	
	}
以及相应的UserPo代码
	class UserPo {
	  ...
	  public int userid  ; 
	  public String username;
	  public String mobile;
	}

#dql安装 1. 本工具依赖于nodejs,首先安装nodejs,nodejs可从以下官网中下载 https://nodejs.org/

  1. 创建目录dsql,打开命令行终端,在dsql目录下执行以下dsql安装命令 npm install dsql

  2. dsql下创建并正确配置db.json中的数据库连接地址及用户名密码

  3. dsql下创建并配置java.json指定Dao及Po生成模板(暂不包括在当前dsql版本中)

#dsql使用 写sql文件,并生成sql文件对应的dao及po代码,生成命令如下:

dsql -java projectJavaSourceCodeDirectory relativeSqlFilePath 以上命令在本readme.txt文件所在目录下执行。其中relativeSqlFilePath相对于projectJavaSourceCodeDirectory目录

例子: dsql -java ../dsql4sample/src/main/java com/dsql4sample/sql/Test.sql

以上例子把sql文件../dsql4sample/src/main/java/com/dsql4sample/sql/Test.sql 生成为dao代码../dsql4sample/src/main/java/com/dsql4sample/dao/TestDao.java

同时生成相应po代码,并存放在以下目录中
../dsql4sample/src/main/java/com/dsql4sample/po/

以上目录路径均相对于dsql所在目录

#dsql的语法 为了能够自动生成Dao代码,dsql在sql基础上叠加了一层dsql语法 ##参数名规则

条件参数: fieldname compare-operator (value)

value是字符串或者数值,则 (value)转化为Dao代码时,表示为一个参数,参数名由字段名fieldname与compare-operator比较符决定。
1. 大于(或大于等于)比较符情况下, 参数名=fieldname+begin 例子 age>=(20) (20)表示参数agebegin

  1. 小于(或小于等于)比较符情况下, 参数名=fieldname+end 例子 age<=(40) (40)表示参数ageend

  2. 等于比较符情况下, 参数名=fieldname 例子 age=(20) (20)表示参数变量age

  3. IN比较符情况下, 参数名=fieldname+s 例子 userid in ( (1) ) (1)表示参数userids,userids代表多个userid经过逗号拼接出来的字符串

  4. AS别名符情况下, 参数名=fieldname
    例子 ('2020-04-05') as sumdate ('2020-04-05')表示参数sumdate

###参数数据类型 1. Int整形参数形如(value), 其中value为Int整形, 表示转化为Dao方法输入参数时,类型变为整形参数。 例如 age=(20),则age为整形参数, 注意括号与数字之间不能有空格 2. Long长整形参数形如(value ), 其中value为Int整形, 注意value与)之间多了一个空格,表示转化为Dao方法输入参数时,类型变为长整形参数。 例如: userid=(10 ) 注意整数与)之间后整好多了1个空格,所以userid为长整形参数
3. 字符串形参数形如('xxx'), 括号内为字符串,转化为Dao方法输入参数时,类型变为字符串参数。 例如: username=('tony'),所以userid为长整形参数,, 注意括号与字符串之间不能有空格 4. 浮点行参数形如(xxx.yyy),括号内是浮点数,转化为Dao方法输入参数时,类型变为浮点双精度Double参数。 例如: salary>=(1000.00 ) 所以salarybegin为浮点双精度Double参数,, 注意括号与浮点数之间不能有空格

###重新命名参数 -- rename: parametername 一行SQL形如: ... (value) ... -- rename: parametername 则 (value)表示参数parametername

例子 addtime>= ('2010-01-01') group by userid -- rename: regtime ('2010-01-01')表示参数regtime

##可选条件参数 如条件参数前面是2个空格,则是可选条件参数,当Dao方法传入该参数为null值时,则会忽略该条件。 例子: -- name: getList select userid, username, mobile from users where age >=(20) and salary>=(1000.00); 以上有2个条件参数agebegin 和 salarybegin ,其中salarybegin是可选参数,如果Dao方法传入的salarybegin=null, 则相当于不限定salary>=的条件

##方法名规则 SQL语句前(须单独一行) -- name: methodname 表示方法名为methodname的方法 例子: -- name: getList select ... ; 表示生成方法名为getList的方法,所有方法均抛异常throws Exception

##Dao类名规则 Dao类名=Sql文件名+Dao 例子 User.sql 代码生成为 UserDao.java

##Dao包名规则 Dao包名=Sql源文件的父目录对应的java包名+.dao SQL源代码文件 com/dsqlsample/sql/User.sql 的父目录为com/dsqlsample, UserDao包名为com.dsqlsample.dao 存放文件为com/dsqlsample/dao/UserDao.java

##持久化对象Po类名规则 持久化对象Po类名由方法名及文件名决定只针对select语句产生相应的Po对象 1. Yyy.sql 中形如 getListXxx 或 getItemXxx的方法产生的Po命名为YyyPo.java 2. getZzzListXxx或或 getZzzItemXxx的方法产生的Po命名为ZzzPo.java 3. 其他情况methodname的Po命名为methodnamePo

0.7.3

4 years ago

0.7.2

4 years ago

0.7.1

4 years ago

0.7.0

4 years ago

0.6.5

4 years ago

0.6.3

4 years ago

0.6.0

4 years ago