- SQL 注解 用法
- 通用 easyjdbc 中的 SQL 注解方法只需定义接口或继承EasyJdbcDao<泛型>例如下面:
- 6.2 SQL 注解
- 6.2.1 @SqlSelect(与mybatis注解@Select用法相似)查询
- 6.2.1.1 纯接口无继承EasyJdbcDao<泛型>
- 6.2.1.2 继承EasyJdbcDao<泛型>
- 6.2.1.3 @SqlParam传参
- 6.2.1.4 Map传参
- 6.2.1.5 动态映射对象
- 6.2.1.6 分页
- 6.2.2 @SqlSelectProvider查询(与mybatis注解@SelectProvider用法相似)
- 6.2.2.1 查询
- 6.2.2.2 @SqlParam传参
- 6.2.2.2 Map动态传参
- 6.2.3 SqlInsert,SqlInsertProvider 新增注解
- 6.2.3.1 @SqlInsert
- 6.2.4 SqlUpdate,SqlUpdateProvider修改注解
- 6.2.4.1 @SqlUpdate
- 6.2.4.1 @SqlUpdateProvider
- 6.2.5 SqlDelete,SqlDeleteProvider删除注解
- 6.2.5.1 @SqlDelete
- 6.2.5.1 @SqlDeleteProvider
SQL 注解 用法
注意: 从1.0.6及以上版本
通用 easyjdbc 中的 SQL 注解方法只需定义接口或继承EasyJdbcDao<泛型>例如下面:
/**
* 使用的注解,默认是@EasyDao 推荐@Repository
*/
@Repository
public interface UserDao {
// 注解SQL方法
}
/**
* 继承EasyJdbcDao<泛型>大量公共方法
*/
@Repository
public interface UserDao extends EasyJdbcDao<User> {
// 注解SQL方法
}
6.2 SQL 注解
6.2.1 @SqlSelect(与mybatis注解@Select用法相似)查询
6.2.1.1 纯接口无继承EasyJdbcDao<泛型>
@SqlSelect(value = "select * from t_user",entityClass=User.class)
public List<User> listUser();
6.2.1.2 继承EasyJdbcDao<泛型>
@SqlSelect(value = "select * from t_user")
public List<User> listUser();
6.2.1.3 @SqlParam传参
@SqlSelect(value = "select * from t_user where id=#{id}",entityClass=User.class)
//还可以使用 :id
//@SqlSelect(value = "select * from t_user where id=:id",entityClass=User.class)
public User getUserById(@SqlParam("id")Integer id);
6.2.1.4 Map传参
@SqlSelect(value = "select * from t_user where id=#{id}",entityClass=User.class)
public List<User> getUserByMapId(Map map);
6.2.1.5 动态映射对象
@SqlSelect(value = "select * from t_user where id=:id",entityClass=UserDTO.class)
public UserDTO getUserById(@SqlParam("id")Integer id);
6.2.1.6 分页
@SqlSelect(
value = "select * from t_user where user_name=#{userName}",
entityClass=UserDTO.class
)
public PageInfo<UserDTO> listUser(@SqlParam("userName")String userName, @SqlParam("pageNum")Integer pageNum, @SqlParam("pageSize")Integer pageSize);
6.2.2 @SqlSelectProvider查询(与mybatis注解@SelectProvider用法相似)
6.2.2.1 查询
sql 对象
public class UserSqlProvider{
public String listUserBySql(){
return new SQL(){{
SELECT("*");
FROM("t_user");
}
}.toString();
}
}
}
@SqlSelectProvider(type= UserSqlProvider.class,method = "listUserBySql",entityClass =UserDTO.class )
public List<UserDTO> listUserBySql();
6.2.2.2 @SqlParam传参
sql 对象
public class UserSqlProvider{
public String getUserBySql(){
return new SQL(){{
SELECT("*");
FROM("t_user");
WHERE("id=#{id}").
}
}.toString();
}
}
@SqlSelectProvider(type= UserSqlProvider.class,method = "getUserBySql",entityClass =UserDTO.class )
public UserDTO getUserBySql((@SqlParam("id")Integer id));
6.2.2.2 Map动态传参
sql 对象
public class UserSqlProvider{
public String listUserBySqlMap(Map map){
return new SQL() {
{
SELECT("*");
FROM("t_user");
if (Maps.containsKey(map, "id")) {
if (Maps.getInteger(map, "id") != null) {
WHERE("id=#{id}");
}
}
}
}.toString();
}
}
@SqlSelectProvider(type= UserSqlProvider.class,method = "listUserBySqlMap",entityClass =UserDTO.class )
public List<UserDTO> listUserBySqlMap(Map map);
6.2.3 SqlInsert,SqlInsertProvider 新增注解
6.2.3.1 @SqlInsert
//对象传参
@SqlInsert("INSERT INTO t_user(id,user_name) VALUES(#{user.id},#{user.userName})")
Integer saveUser(@SqlParam("user") User user);
//单值传参
@SqlInsert("INSERT INTO t_user(id,user_name) VALUES(#{id},#{userName})")
Integer saveUser(@SqlParam("id") Integer id,@SqlParam("userName") String userName);
//返回主键值
@SqlInsert("INSERT INTO t_user(id,user_name) VALUES(#{id},#{userName})")
@SqlOptions(useGeneratedKeys = true)
Integer saveUser(@SqlParam("id") Integer id,@SqlParam("userName") String userName);
6.2.3.2 @SqlInsertProvider
//SQL对象
public class UserProvider {
//SQL对象方法参数Map map可传可不传 如果通过MAP动态判断 就必须传
public String saveUserBySql(Map map){
SQL sql=new SQL();
sql.INSERT_INTO("t_user").
VALUES("id,user_name","#{id},#{userName}");
return sql.toString();
}
}
@SqlInsertProvider(type = UserProvider.class,method = "saveUserBySql")
Integer saveUserBySql(Map map);
6.2.4 SqlUpdate,SqlUpdateProvider修改注解
6.2.4.1 @SqlUpdate
//对象传参
@SqlUpdate("UPDATE t_user SET user_name=#{user.userName} WHERE id=#{user.id})")
Integer updateUser(@SqlParam("user") User user);
//单值传参
@SqlUpdate("UPDATE t_user SET user_name=#{userName} WHERE id=#{id})")
Integer updateUser(@SqlParam("id") Integer id,@SqlParam("userName") String userName);
6.2.4.1 @SqlUpdateProvider
//SQL对象
public class UserProvider {
//SQL对象方法参数Map map可传可不传 如果通过MAP动态判断 就必须传
public String updateUserBysql(Map map){
SQL sql=new SQL();
sql.UPDATE("t_user").
SET("user_name=#{userName}").WHERE("id=#{id}");
return sql.toString();
}
}
//MAP
@SqlUpdateProvider(type = UserProvider.class,method = "updateUserBysql")
Integer updateUserBysql(Map map);
//
@SqlUpdateProvider(type = UserProvider.class,method = "updateUserBysql")
Integer updateUserBysql(@SqlParam("id") Integer id,@SqlParam("userName") String userName);
6.2.5 SqlDelete,SqlDeleteProvider删除注解
6.2.5.1 @SqlDelete
@SqlDelete("DELETE FROM t_user WHERE id=#{id})")
Integer deleteUser(@SqlParam("id") Integer id);
6.2.5.1 @SqlDeleteProvider
//SQL对象方法参数Map map可传可不传 如果通过MAP动态判断 就必须传
public String deleteUserBysql(Map map){
SQL sql=new SQL();
sql.DELETE_FROM("t_user").
WHERE("id=#{id}");
return sql.toString();
}
@SqlDeleteProvider(type = UserProvider.class,method = "deleteUserBysql")
Integer deleteUserBysql(Map map);
@SqlDeleteProvider(type = UserProvider.class,method = "deleteUserBysql")
Integer deleteUserBysql(@SqlParam("id") Integer id);
原文: https://github.com/xphsc/easyjdbc/wiki/3.4-SQL-annotation