Sfoglia il codice sorgente

更新sqlmap配置说明

xormplus 9 anni fa
parent
commit
1062b41fc5
1 ha cambiato i file con 14 aggiunte e 10 eliminazioni
  1. 14 10
      README.md

+ 14 - 10
README.md

@@ -16,7 +16,7 @@ xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作
 * 使用连写来简化调用
 * 支持使用Id, In, Where, Limit, Join, Having, Table, Sql, Cols等函数和结构体等方式作为条件
 * 支持级联加载Struct
-* 支持类ibatis方式配置SQL语句(支持xml配置文件和pongo2模板2种方式)
+* 支持类ibatis方式配置SQL语句(支持xml配置文件、json配置文件和pongo2模板3种方式)
 * 支持动态SQL功能
 * 支持一次批量混合执行多个CRUD操作,并返回多个结果集
 * 支持数据库查询结果直接返回Json字符串和xml字符串
@@ -105,12 +105,14 @@ if err != nil {
 ```
 
 * <b>db.InitSqlMap()过程</b>
-    * 如使用SetSqlMapRootDir()方法指定SqlMap配置文件总根目录,则InitSqlMap()方法按指定目录遍历SqlMapRootDir所配置的目录及其子目录下的所有xml配置文件(<a href="https://github.com/xormplus/xorm/blob/master/test/sql/oracle/studygolang.xml">配置文件样例 </a>)
-    * 如未使用SetSqlMapRootDir()方法指定SqlMap配置文件总根目录,则读取程序所在目下的sql/xormcfg.ini配置文件(<a href="https://github.com/xormplus/xorm/blob/master/test/sql/xormcfg.ini">样例</a>)中的SqlMapRootDir配置项,遍历SqlMapRootDir所配置的目录及其子目录下的所有xml配置文件(<a href="https://github.com/xormplus/xorm/blob/master/test/sql/oracle/studygolang.xml">配置文件样例 </a>)
-    * 解析所有配置SqlMap的xml配置文件
-    * 配置文件中sql标签的id属性值作为SqlMap的key,如有重名id,则后加载的覆盖之前加载的配置sql条目
+    * 如使用SetSqlMapRootDir()方法指定SqlMap配置文件总根目录,则InitSqlMap()方法按指定目录遍历SqlMapRootDir所配置的目录及其子目录下的所有xml配置文件(<a href="https://github.com/xormplus/xorm/blob/master/test/sql/oracle/studygolang.xml">配置文件样例 </a>)或json配置文件(配置文件样例 )
+    * 如未使用SetSqlMapRootDir()方法指定SqlMap配置文件总根目录,则读取程序所在目下的sql/xormcfg.ini配置文件(<a href="https://github.com/xormplus/xorm/blob/master/test/sql/xormcfg.ini">样例</a>)中的SqlMapRootDir配置项,遍历SqlMapRootDir所配置的目录及其子目录下的所有xml配置文件(<a href="https://github.com/xormplus/xorm/blob/master/test/sql/oracle/studygolang.xml">配置文件样例 </a>)或json配置文件(配置文件样例 )
+    * 解析所有配置SqlMap的xml配置文件或json配置文件
+    * xml配置文件中sql标签的id属性值作为SqlMap的key,如有重名id,则后加载的覆盖之前加载的配置sql条目
+    * json配置文件中key值作为SqlMap的key,如有重名key,则后加载的覆盖之前加载的配置sql条目
+    * json配置文件中key和xml配置文件中sql标签的id属性值有相互重名的,则后加载的覆盖之前加载的配置sql条目
     * 配置文件中sql配置会读入内存并缓存
-    * 由于SqlTemplate模板能完成更多复杂组装和特殊场景需求等强大功能,故SqlMap的xml只提供这种极简配置方式,非ibatis的OGNL的表达式实现方式
+    * 由于SqlTemplate模板能完成更多复杂组装和特殊场景需求等强大功能,故SqlMap的xml或json只提供这种极简配置方式,非ibatis的OGNL的表达式实现方式
 
 * <b>db.InitSqlTemplate()过程</b>
     * 如使用SetSqlTemplateRootDir()方法指定SqlTemplate模板配置文件总根目录,则InitSqlTemplate()方法按指定目录遍历SqlTemplateRootDir所配置的目录及其子目录及其子目录下的所有stpl模板文件(<a href="https://github.com/xormplus/xorm/blob/master/test/sql/oracle/select.example.stpl">模板文件样例</a>)
@@ -418,14 +420,16 @@ engine.SetSqlMapRootDir()
 //设置SqlTemplate模板配置文件总根目录,可代码指定,也可在配置文件中配置,如使用配置文件中的配置则无需调用该方法,代码指定优先级高于配置
 engine.SetSqlTemplateRootDir()
 
-err := engine.InitSqlMap()//初始化加载SqlMap配置文件,默认初始化后缀为".xml",初始化容量100
+//初始化加载SqlMap配置文件,默认初始化xml格式内容后缀为".xml",json格式内容后缀为".json",默认初始化容量100
+err := engine.InitSqlMap()
 err := engine.InitSqlTemplate()//初始化加载SqlTemplate配置文件,默认初始化后缀为".stpl",初始化容量100
 
 //SqlMap配置文件和SqlTemplate配置文件后缀不要相同
-//指定SqlMap配置文件后缀为".xx",但配置内容必须为样例的xml格式,如不指定,默认后缀为".xml"
+//指定SqlMap配置文件xml格式内容后缀为".xx",但配置内容必须为样例的xml格式,如不指定,默认后缀为".xml"
+//指定SqlMap配置文件json格式内容后缀为".json",但配置内容必须为样例的json格式,如不指定,默认后缀为".json"
 //同时还可以指定初始化容量,如不指定,默认初始化容量100
-option := xorm.SqlMapOptions{Extension: ".xx"}
-err := engine.InitSqlMap(option) //按指定SqlMap配置文件后缀为".xx"初始化
+opt := xorm.SqlMapOptions{Extension: map[string]string{"xml": ".xxx", "json": ".json"}}
+err := engine.InitSqlMap(opt) //按指定SqlMap配置文件xml格式内容后缀为".xxx"初始化,配置文件json格式内容后缀为".json"初始化
 
 //指定SqlTemplate配置文件后缀为".yy",初始化容量200,如不指定,默认后缀为".stpl",初始化容量100
 option := xorm.SqlTemplateOptions{Extension: ".yy", Capacity: 200}