当前位置: 首页 > news >正文

Springboot内嵌SQLite配置使用

版本号

MacOS Apple M1 | Jdk17 | Maven 3.8.5 | SpringBoot 2.6.9 | SQLite 3.42.0.0

pom.xml

<dependencies><dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId><version>3.42.0.0</version></dependency><dependency><groupId>com.github.gwenn</groupId><artifactId>sqlite-dialect</artifactId><version>0.1.4</version></dependency>
</dependencies>

基础配置

application.properties

# data source
spring.datasource.url=jdbc:sqlite:tutorial.db
spring.datasource.driver-class-name=org.sqlite.JDBC
# spring.datasource.journal_mode=WAL
spring.datasource.hikari.maximum-pool-size=1
spring.jpa.properties.hibernate.dialect=org.sqlite.hibernate.dialect.SQLiteDialect
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

Configuration

import java.util.Properties;
import javax.annotation.Resource;
import javax.sql.DataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;@Configuration
@EnableJpaRepositories(basePackages = "com.dipeak.diengine.backend.dao")
public class DataSourceConfig {@Resource private Environment environment;@Beanpublic DataSource dataSource() {final DriverManagerDataSource dataSource = new DriverManagerDataSource();dataSource.setDriverClassName(environment.getProperty("spring.datasource.driver-class-name"));dataSource.setUrl(environment.getProperty("spring.datasource.url"));return dataSource;}@Beanpublic LocalContainerEntityManagerFactoryBean entityManagerFactory() {final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();em.setDataSource(dataSource());em.setPackagesToScan(new String[] {"com.dipeak.diengine.backend.model.entity"});em.setJpaVendorAdapter(new HibernateJpaVendorAdapter());em.setJpaProperties(additionalProperties());return em;}final Properties additionalProperties() {final Properties hibernateProperties = new Properties();if (environment.getProperty("spring.jpa.hibernate.ddl-auto") != null) {hibernateProperties.setProperty("hibernate.hbm2ddl.auto", environment.getProperty("spring.jpa.hibernate.ddl-auto"));}if (environment.getProperty("spring.jpa.properties.hibernate.dialect") != null) {hibernateProperties.setProperty("hibernate.dialect", environment.getProperty("spring.jpa.properties.hibernate.dialect"));}if (environment.getProperty("hibernate.show_sql") != null) {hibernateProperties.setProperty("hibernate.show_sql", environment.getProperty("hibernate.show_sql"));}return hibernateProperties;}
}

Entity 定义

@Entity
@Table(name = "users")
public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private String name;}

Repository 定义

@Repository
public interface UserRepository extends JpaRepository<User, Long> {@Query("select u from User u where u.id <= ?1")Page<User> findMore(Long maxId, Pageable pageable);@Modifying@Transactional@Query("update User u set u.name = ?1 where u.id = ?2")int updateById(String name, Long id);}

Unit Test

public class SqliteTest {@Resource private UserRepository userRepository;@Testpublic void insert() {User user = new User();user.setId(3l);user.setName("wang da fang");userRepository.save(user);}
}
http://www.lryc.cn/news/135474.html

相关文章:

  • 【微服务学习笔记】认识微服务
  • 基于Android R快速编译recovery-ramdisk.img
  • Redis分布式缓存
  • 最大公约数和最小公倍数
  • 数据结构——二叉搜索树(附带C++实现版本)
  • C++(3)C++对C的扩展Extension
  • 在vscode(idea)使用GitHub账号、Copilot异常
  • 新的后端渲染:服务器驱动UI
  • Postman如何做接口自动化测试?
  • excel文本函数篇2
  • 【MyBatis】动态SQL > 重点:${...}和#{...}与resultMap和resultType的区别
  • 什么是BEM命名规范?为什么要使用BEM命名规范?
  • JavaScript:交集和差集的应用场景
  • 达梦数据库表空间创建和管理
  • 三、MySQL 数据库安装集
  • 【BASH】回顾与知识点梳理(三十九)
  • 蓝蓝设计-UI设计公司案例-HMI列车监控系统界面设计解决方案
  • Blazor前后端框架Known-V1.2.13
  • vue 复制文本
  • 西瓜书第三章
  • 关于python如何使用sqlalchemy连接sap_hana数据库
  • 微信小程序教学系列(5)
  • 【计算机网络篇】TCP协议
  • Disruptor并发编程框架
  • matlab 点云精配准(1)——point to point ICP(点到点的ICP)
  • 【JVM】运行时数据区域
  • uniapp踩坑合集
  • 再JAVA中如何使用qsort对类进行排序?
  • docker安装clickhouse
  • 解决`idea`中`database`工具查询起别名乱码问题