Sagacity-SqlToy 开源项目教程

Sagacity-SqlToy 开源项目教程

sagacity-sqltoy项目地址:https://gitcode.com/gh_mirrors/sag/sagacity-sqltoy

项目介绍

Sagacity-SqlToy 是一个 Java 的 ORM 框架,它融合了 JPA 功能和最佳的 SQL 编写及查询模式。该框架独创了缓存翻译、最优化的分页查询,并提供了无限层级分组汇总、同比环比、行列转换、树形排序汇总等功能。SqlToy 还支持 SQL 自适配不同数据库、分库分表、多租户、数据加解密和脱敏等高级特性,适用于复杂业务和大规模数据分析的场景。

项目快速启动

创建 Spring Boot 项目

首先,创建一个新的 Spring Boot 项目,并添加 SqlToy 依赖。

<dependency>
    <groupId>com.sagframe</groupId>
    <artifactId>sagacity-sqltoy</artifactId>
    <version>最新版本</version>
</dependency>

配置 SqlToy

application.properties 文件中配置数据库连接信息:

spring.datasource.url=jdbc:mysql://localhost:3306/your_database
spring.datasource.username=your_username
spring.datasource.password=your_password

生成 POJO 类

使用 quickvo 工具通过数据库生成 POJO 类:

quickvo -config quickvo.xml

第一个对象 CRUD

创建一个简单的 CRUD 操作示例:

@Repository
public interface UserRepository extends SqlToyRepository<User, Long> {
}

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public User saveUser(User user) {
        return userRepository.save(user);
    }

    public User findUserById(Long id) {
        return userRepository.findById(id).orElse(null);
    }
}

第一个简单查询

resources/sql 目录下创建一个 SQL 文件 user.sql

<sql id="findUserById">
    <value>
        SELECT * FROM user WHERE id = :id
    </value>
</sql>

在服务类中使用该查询:

public User findUserById(Long id) {
    return userRepository.findBySql("findUserById", Collections.singletonMap("id", id));
}

应用案例和最佳实践

缓存翻译

SqlToy 提供了强大的缓存翻译功能,可以在查询结果中自动替换缓存中的数据,例如将用户 ID 替换为用户名:

<sql id="getUserList">
    <value>
        SELECT id, name, department_id FROM user
    </value>
    <translate cache="departments" columns="department_id" cache-type="DEPARTMENT"/>
</sql>

分页查询

SqlToy 提供了最优化的分页查询,支持多种数据库的分页语法:

public Page<User> getUserPage(int pageNo, int pageSize) {
    return userRepository.findPageBySql("getUserList", null, pageNo, pageSize);
}

典型生态项目

SqlToy-Online-Doc

SqlToy-Online-Doc 是一个在线文档项目,提供了详细的 SqlToy 使用手册和 API 文档,方便开发者快速上手和查阅:

SqlToy-Online-Doc

SqlToy-HelloWorld

SqlToy-HelloWorld 是一个示例项目,展示了如何快速集成和使用 SqlToy,适合初学者学习和参考:

SqlToy-HelloWorld

通过这些生态项目,开发者可以更好地理解和应用 SqlToy,提高开发效率和代码质量。

sagacity-sqltoy项目地址:https://gitcode.com/gh_mirrors/sag/sagacity-sqltoy

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Sagacity-Sqltoy是一个轻量级的Java持久化框架,提供了许多便利的工具和功能来简化数据库操作。下面是一个简单的示例,演示如何使用Sagacity-Sqltoy框架进行持久化操作。 1. 首先需要在pom.xml中添加以下依赖: ```xml <dependency> <groupId>org.sagacity</groupId> <artifactId>sagacity-sqltoy-all</artifactId> <version>{latest-version}</version> </dependency> ``` 2. 创建一个实体类,用于映射数据库表。 ```java @Table(name = "user") public class User implements Serializable { @Id(name = "user_id") private Long userId; @Column(name = "user_name") private String userName; @Column(name = "password") private String password; // getter and setter } ``` 3. 创建一个Dao类,用于进行数据库操作。 ```java @Repository("userDao") public class UserDao extends BaseDaoImpl<User, Long> { /** * 根据用户名查询用户信息 * * @param userName 用户名 * @return 用户信息 */ public User getUserByName(String userName) { return this.findOneBySql("select * from user where user_name=?", new Object[]{userName}); } /** * 新增用户信息 * * @param user 用户信息 */ public void saveUser(User user) { this.save(user); } } ``` 4. 在Spring配置文件中配置数据源和Dao类。 ```xml <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="root"/> </bean> <bean id="sqlToyContext" class="org.sagacity.sqltoy.SqlToyContext"> <property name="dataSource" ref="dataSource"/> <property name="showSql" value="true"/> <property name="dialect" value="mysql"/> </bean> <bean id="userDao" class="com.example.dao.UserDao"> <property name="sqlToyContext" ref="sqlToyContext"/> </bean> ``` 5. 在代码中使用Dao类进行数据库操作。 ```java @Autowired private UserDao userDao; public void test() { // 新增用户信息 User user = new User(); user.setUserName("test"); user.setPassword("123456"); userDao.saveUser(user); // 根据用户名查询用户信息 User user1 = userDao.getUserByName("test"); System.out.println(user1); } ``` 以上就是一个简单的Sagacity-Sqltoy框架的示例,演示了如何使用该框架进行持久化操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟元毓Pandora

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值