此次更新如下:
dao 建議用抽象類 的形式創建,這樣單表操作可以用抽象方法,多表操作可以自己寫sql。
加上MarsDao註解,如下圖所示:
@MarsDao("testDao")
public abstract class TestDao {
}
@MarsGet(tableName = "userinfo",primaryKey = "id")
public abstract Map<String,Object> selectById(int id);
如上面的示例所示,在抽象方法上加上MarsGet註解即可
tableName:要從哪張表裡的查詢
primarkey:主鍵欄位名
方法的參數:要查主鍵是什麼的數據就傳什麼
@MarsUpdate(tableName = "userinfo",operType = OperType.UPDATE,primaryKey = "id")
public abstract int update(DemoEntity demoEntity);
如上面的示例所示,在抽象方法上加上MarsUpdate註解即可
tableName:要更新哪張表
primarkey:主鍵欄位名
operType:設置操作方式為update
方法的參數:任意自定義實體對象或者map,對象的欄位要跟資料庫表的欄位名一致
@MarsUpdate(tableName = "userinfo",operType = OperType.INSERT)
public abstract int insert(DemoEntity demoEntity);
如上面的示例所示,在抽象方法上加上MarsUpdate註解即可
tableName:要插入哪張表
operType:設置操作方式為insert
方法的參數:任意自定義實體對象或者map,對象的欄位要跟資料庫表的欄位名一致
@MarsUpdate(tableName = "userinfo",operType = OperType.DELETE,primaryKey = "id")
public abstract int delete(int id);
如上面的示例所示,在抽象方法上加上MarsUpdate註解即可
tableName:要從哪張表刪除
primarkey:主鍵欄位名
operType:設置操作方式為delete
方法的參數:要刪除主鍵是什麼值的數據就傳什麼
@MarsSelect(sql = "select * from userinfo where name = #{name} and age = ${age}")
public abstract List<Map<String,Object>> selectList(DemoEntity demoEntity);
如上面的示例所示,在抽象方法上加上MarsSelect註解即可
sql:sql語句
方法的參數:任意自定義實體對象或者map,對象的欄位要跟sql中的佔位符一致(不包含#{})
這種情況需要使用JdbcTemplete:
在代碼里去拼sql,sql拼好以後用下面所示的方式執行
sql中的參數一樣用#{}或者${}來佔位
JdbcTemplete.get("數據源名稱,不傳自動使用默認數據源").selectList(sql,DemoEntity.class);
JdbcTemplete.get("數據源名稱,不傳自動使用默認數據源").update(sql,demoEntity);
JdbcTemplete 這裡就不多說了,實際使用的時候,開發環境的自動補全功能會自動彈出裡面的方法,選擇適合自己的就行了
public PageModel<DemoEntity> findPage(PageParamModel pageParamModel) throws Exception {
String sql = "select * from userinfo where name like #{name}";
return JdbcTemplete.get().selectPageList(sql,pageParamModel,DemoEntity.class);
}
參數必須傳PageParamModel,返回類型也必須是PageModel
#{name}: 這種佔位符會被替換成 ? 沒有sql注入的風險
${name}: 這種佔位符是字元串拼接,有sql注入的風險
dao層的方法上 可以用 DataSource(name=」數據源name」) 註解 去指定要用的數據源,如果只有一個數據源,則不需要指定
具體可看官網:http://mars-framework.com
[admin
]