Sin descripción

xormplus cbbfb5fde8 修改测试用例 hace 11 años
test cbbfb5fde8 修改测试用例 hace 11 años
.gitignore 52a602da39 Initial commit hace 11 años
LICENSE 52a602da39 Initial commit hace 11 años
README.md 5e00766307 Update README.md hace 11 años
cover.out c93a5bbd96 初始化 hace 11 años
engine.go af6689079c 修改原session.Qeury()API hace 11 años
engineplus.go af6689079c 修改原session.Qeury()API hace 11 años
error.go c93a5bbd96 初始化 hace 11 años
goracle_driver.go c93a5bbd96 初始化 hace 11 años
helpers.go c93a5bbd96 初始化 hace 11 años
helpersplus.go c93a5bbd96 初始化 hace 11 años
logger.go c93a5bbd96 初始化 hace 11 años
lru_cacher.go c93a5bbd96 初始化 hace 11 años
memroy_store.go c93a5bbd96 初始化 hace 11 años
mssql_dialect.go c93a5bbd96 初始化 hace 11 años
mymysql_driver.go c93a5bbd96 初始化 hace 11 años
mysql_dialect.go c93a5bbd96 初始化 hace 11 años
mysql_driver.go c93a5bbd96 初始化 hace 11 años
oci8_driver.go c93a5bbd96 初始化 hace 11 años
odbc_driver.go c93a5bbd96 初始化 hace 11 años
oracle_dialect.go c93a5bbd96 初始化 hace 11 años
pg_reserved.txt c93a5bbd96 初始化 hace 11 años
postgres_dialect.go c93a5bbd96 初始化 hace 11 años
pq_driver.go c93a5bbd96 初始化 hace 11 años
processors.go c93a5bbd96 初始化 hace 11 años
rows.go c93a5bbd96 初始化 hace 11 años
session.go af6689079c 修改原session.Qeury()API hace 11 años
sessionplus.go af6689079c 修改原session.Qeury()API hace 11 años
sqlite3_dialect.go c93a5bbd96 初始化 hace 11 años
sqlite3_driver.go c93a5bbd96 初始化 hace 11 años
sqlmap.go db2466f3a7 修改SqlMap和SqlTemplate初始化方式 hace 11 años
sqltemplate.go db2466f3a7 修改SqlMap和SqlTemplate初始化方式 hace 11 años
statement.go c93a5bbd96 初始化 hace 11 años
syslogger.go c93a5bbd96 初始化 hace 11 años
xorm.go db2466f3a7 修改SqlMap和SqlTemplate初始化方式 hace 11 años
xormplus.go db2466f3a7 修改SqlMap和SqlTemplate初始化方式 hace 11 años

README.md

xorm

优化xorm的查询API,并提供类似ibatis的配置文件及动态SQL功能

var err error
db, err = xorm.NewPostgreSQL("postgres://postgres:root@localhost:5432/testdb?sslmode=disable")

if err != nil {
	t.Fatal(err)
}

err = db.InitSqlMap() //初始化SqlMap配置,可选功能
if err != nil {
	t.Fatal(err)
}
err = db.InitSqlTemplate() //初始化动态SQL模板配置,可选功能
if err != nil {
	t.Fatal(err)
}

支持类似这样的链式读取数据操作

sql:="select id,title,createdatetime,content from article where id = ?"
rows, err := db.Sql(sql, 2).FindAll().Json() //返回查询数据的json字符串

id := db.Sql(sql, 2).FindAll().Result[0]["id"] //返回查询数据的第一条数据的id列的值
title := db.Sql(sql, 2).FindAll().Result[0]["title"]
createdatetime := db.Sql(sql, 2).FindAll().Result[0]["createdatetime"]
content := db.Sql(sql, 2).FindAll().Result[0]["content"]

支持SqlMap配置,配置文件样例

<sqlMap>
	<sql id="selectAllArticle">
		select id,title,createdatetime,content 
		from article where id in (?1,?2)
	</sql>
	<sql id="selectStudentById1">
		select * from article where id=?id
	</sql>
</sqlMap>
paramMap := map[string]interface{}{"1": 2, "2": 5} //支持参数使用map存放
rows, err := db.SqlMapClient("selectAllArticle", &paramMap).FindAllByParamMap().Xml() //返回查询结果的xml字符串

同时提供动态SQL支持,使用pongo2模板引擎


例如配置文件名:select.example.stpl
配置样例内容如下:

select id,userid,title,createdatetime,content 
from article where  
{% if count>1%}
id=?id
{% else%}
userid=?userid
{% endif %}
paramMap := map[string]interface{}{"id": 2, "userid": 3, "count": 1}
rows, err := db.SqlTemplateClient("select.example.stpl", paramMap).FindAllByParamMap().Json()