- 用eql语句对数据库进行查询
string sql = " SELECT * FROM XX x";
string[] wheres;
if(c.length)//(string类型)
{
wheres ~= "x.c '%" ~ c ~ "%'";//%"~ ~"%用来拼接字符串
}
if (z)
{
wheres ~= "x.z = :z";
}
if (wheres.length > 0)
{
sql ~= " WHERE ";
for (int i = 0; i < wheres.length; i++)
{
if (i > 0)
{
sql ~= " AND ";
}
sql ~= wheres[i];
}
}
sql ~= " ORDER BY x.created DESC(ASC)";//这部分是查询出来的条件按照创建时间来排序,可以根据需求来更换字段(DESC是倒序,ASC是正序)
auto query = _manager.createQuery!(XX)(sql, new pageable(page-1, limit));
query.setParameter("c",c);
query.setParameter("z",z);
return query.getPageResult;
- 用eql语句对数据库信息进行修改
下面是对修改操作的示例
auto temp1 = _manager.createQuery!(Post)(" UPDATE Post p set p.deleted = :now WHERE p.id = :deleted ")
.setParameter("now", time)
.setParameter("deleted", deleted)
.exec();
logError(temp1);
return true;
//这部分对Post表中的删除时间进行了修改
- 用eql语句对数据库信息进行删除
下面是对于删除操作的示例
auto del = _manager.createQuery!(ItemMini)(" delete User u where u.id = :Id ")
.setParameter("Id", Id)
.exec();
- 用eql语句对数据库信息进行添加
下面是对于添加操作的示例
auto insert = em.createQuery!(UInfo)(" INSERT INTO UInfo u(u.nickName,u.age) values (:name,:age)");
insert.setParameter("name","momomo");
insert.setParameter("age",666);
logDebug(" insert result : ",insert.exec());
- 如果两表或者多表查询的话可以用下面的方法处理
下面是多表关联查询的示例
string sql = " SELECT x,c,u FROM XX x LEFT JOIN CC c ON c.id = x.cc_id LEFT JOIN UU u ON u.id = x.uid ";
//之后在用查询语句的模板就可以了
- 对数据表的模糊查询应该怎么进行 下面是模糊查询的示例
select * from like '%" ~ xx ~ "%' 拼接字符串的时候用%"~ ~"%
//模糊查询语句
- 如何用D语言进行分页操作
下面是分页操作的示例
Page!XXX findPageByXXX(string class_name,int teacherId,int classId, int page = 1, int limit = 10)
{
auto result = _manager.createQuery!(Classes)(" SELECT * FROM XXX x ORDER BY x.created DESC ", new Pageable(page-1, limit))
.getPageResult();
return result;
}
//如果按照创建时间来排序的话用created DESC (倒序),ASC(正序),如果根据别的字段排序请根据实际情况