AgileRepository - 一个基于接口的Repository快速开发库

AgileRepository

这是一个可以帮助你快速开发Repository的lib。有点像SpringData JPA根据方法名、注解来自动生成查询方法的功能。
对于一些简单的查询,只需要定义接口就行了,实现都不用。
Github: AgileRepository

依赖

AspectCore >= 0.2.4
Dapper >= 1.50.4
DapperExtensions >= 1.6.3
System.Threading.Tasks.Extensions >= 4.3.0

使用

public interface IUserRepository:IAgileRepository<Users>
{
    [QueryByMethodName]
    IEnumerable<Users> QueryByUserName(string userName);

}
var repository = AgileRepository.Proxy.SingletonInstance<IUserRepository>();
repository.QueryByUserName("admin"); 

配置

    AgileRepository.SetConfig(new AgileRepositoryConfig()
    {
            SqlMonitor = (sql, paramters ) =>
            {
                    Console.WriteLine(sql);
            },
            ConnectionName = "conn"
    });

示例

根据sql查询

    [QueryBySql("SELECT * FROM USERS")]
    IEnumerable<User> TestSql();

    [QueryBySql("SELECT * FROM USERS where username=@userName")]
    IEnumerable<User> TestSql1(string userName); 

根据方法名称查询

    [QueryByMethodName]
    IEnumerable<User> QueryByUserName(string userName);

    [QueryByMethodName]
    IEnumerable<User> QueryByUserNameAndId(string userName, string id);

    [QueryByMethodName]
    IEnumerable<User> QueryByCreaterIsNull();

    [QueryByMethodName]
    IEnumerable<User> QueryByCreaterIsNotNull(); 

查询所有

    [QueryAll]
    IEnumerable<User> QueryAll(); 

根据 sql Count

    [CountBySql("Select count(*) from users")]
    int TestCount();

    [CountBySql("Select count(*) from users where userName=@userName")]
    int TestCount1(string userName); 

根据方法名Count

    [CountByMethodName]
    int CountByUserName(string userName);

    [CountByMethodName]
    int CountByIdAndUserName(string id, string userName);

Count所有

    [CountAll]
    int CountAll();

Insert

    [Insert]
    int Insert(User user);
    [Insert]
    int Insert(IEnumerable<User> users);

Update

    [Update]
    int Update(User user);

    [Update]
    int Update(IEnumerable<User> users);

    [Delete]
    int Delete(User user);

    [Delete]
    int Delete(IEnumerable<User> users);

    [DeleteByMethodName]
    int DeleteByUserName(string userName);

执行非查询sql

    [ExecuteBySql("Delete from [users] where id =@id ")]
    int Execute(string id);

支持的where关键字

KeyNameWhere
AndQueryByUserNameAndIdwhere UserName=@UserName And Id=@Id
OrQueryByUserNameOrIdwhere UserName=@UserName Or Id=@Id
IsNullQueryByUserNameIsNullwhere UserName Is Null
IsNotNullQueryByUserNameIsNotNullwhere UserName Is Not Null
GreaterThenQueryByAgeGreaterThenwhere Age>@Age
GreaterEqualQueryByAgeGreaterEqualwhere Age>=@Age
LessThenQueryByAgeLessThenwhere Age<@Age
LessEqualQueryByAgeLessEqualwhere Age<=@Age
NotQueryByAgeNotwhere Age!=@Age
InQueryByUserNameInwhere UserName in @UserName
NotInQueryByUserNameNotInwhere UserName Not in @UserName
LikeQueryByUserNameLikewhere UserName Like @UserName
NotLikeQueryByUserNameNotLikewhere UserName Not Like @UserName

转载于:https://www.cnblogs.com/kklldog/p/agilerepository.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好,感谢您的提问。创建一个 Spring Data JPA 的 Repository 接口非常简单,只需要按照以下步骤操作即可: 1. 创建一个继承自 `JpaRepository` 的接口,指定实体类和主键类型: ``` public interface UserRepository extends JpaRepository<User, Long> { } ``` 其中,`User` 是您的实体类,`Long` 是实体类的主键类型。`JpaRepository` 是 Spring Data JPA 提供的一个基础 Repository 接口,提供了一些基本的数据操作方法,如插入、删除、更新、查询等。 2. 在您的实体类上添加注解,指定表名和主键: ``` @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String password; // 省略 getter 和 setter 方法 } ``` 在上述代码中,`@Entity` 注解表示该类是一个 JPA 实体类,`@Table(name = "user")` 指定该实体类对应的数据表名为 `user`,`@Id` 和 `@GeneratedValue` 注解指定实体类的主键。 3. 在您的 Spring Boot 应用程序中,使用 `@EnableJpaRepositories` 注解启用 Spring Data JPA,并指定 Repository 接口的包路径: ``` @SpringBootApplication @EnableJpaRepositories(basePackages = "com.example.repository") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 在上述代码中,`@EnableJpaRepositories` 注解用于启用 Spring Data JPA,`basePackages` 属性指定 Repository 接口的包路径。 4. 在您的服务层或控制器中注入 Repository 接口,即可使用 Spring Data JPA 提供的基本数据操作方法: ``` @RestController public class UserController { @Autowired private UserRepository userRepository; @GetMapping("/users") public List<User> getAllUsers() { return userRepository.findAll(); } } ``` 在上述代码中,`@Autowired` 注解用于自动注入 `UserRepository` 对象,然后在 `getAllUsers` 方法中调用 `findAll` 方法获取所有用户信息。 通过上述步骤创建一个 Spring Data JPA 的 Repository 接口非常简单,希望能够帮助到您。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值