java内嵌数据库hsqldb
java内嵌数据库hsqldb
介绍:
jdk1.8 , maven k
开发软件: idea
springboot + mybatis +hsqldb
内容:
1.项目搭建
2.基本操作
3.本地数据持久化
第一步 新建maven项目
导入依赖
<dependencies> <dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <!--测试包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <version>2.0.1.RELEASE</version> </dependency> </dependencies>
第二步 初始化表数据
在resource目录下创建,
我这里在resource下的sql目录下创建文件。
schema.sql :创建数据表
data.sql :向表中插入数据
schema.sql
CREATE TABLE blog ( id INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY, title varchar(255) DEFAULT NULL, );
data.sql
insert into blog(id,title) values(1,'花生皮编程博客');
第三步 配置数据库
springboot核心配置文件 :application.yml
spring: datasource: username: hsp password: 123456 url: jdbc:hsqldb:mem://localhost/blogdb;shutdown=true driver-class-name: org.hsqldb.jdbcDriver schema: classpath:sql/schema.sql data: classpath:sql/data.sql initialization-mode: always continue-on-error: true mybatis: mapper-locations: classpath:mapper/*/*Mapper.xml
url: jdbc:hsqldb:mem://localhost/blogdb;shutdown=true 中mem表示内存模式,数据不会持久化。
第四步 创建mapper接口,mapper映射文件
1、创建实体类
package com.blog.pojo; /** * @version 1.0 * @Description Blog * @date Created in 2023-5-16 10:55 * @since jdk1.8 */ public class Blog { private int id; private String title; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } @Override public String toString() { return "Blog{" + "id=" + id + ", title='" + title + '\'' + '}'; } }
2、创建接口
package com.blog.mapper; import com.blog.pojo.Blog; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface BlogMapper { //@Select("SELECT * FROM blog") List<Blog> queryList(); int insert(Blog blog); }
3、创建mapper映射文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.blog.mapper.BlogMapper"> <resultMap id="userResultMap" type="com.blog.pojo.Blog"> <id property="id" column="id"/> <result property="title" column="title"/> </resultMap> <insert id="insert" parameterType="com.blog.pojo.Blog"> insert into blog(id,title) values (#{id},#{title}) </insert> <select id="queryList" resultMap="userResultMap"> SELECT * FROM blog </select> </mapper>
4、创建springboot启动类
package com; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @version 1.0 * @Description Application * @date Created in 2023-5-16 14:22 * @since jdk1.8 */ @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
5、创建测试类
package com.blog.mapper; import com.Application; import com.blog.pojo.Blog; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.List; /** * @version 1.0 * @Description BlogMapperTest * @date Created in 2023-5-16 14:21 * @since jdk1.8 */ @RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class) public class BlogMapperTest { @Autowired private BlogMapper blogMapper; @Test public void queryList(){ List<Blog> blogs = blogMapper.queryList(); for(Blog blog:blogs){ System.out.println(blog); } } @Test public void ins(){ Blog blog = new Blog(); blog.setId(2); blog.setTitle("blog"); blogMapper.insert(blog); List<Blog> blogs = blogMapper.queryList(); for(Blog b:blogs){ System.out.println(b); } } }
测试查询效果:
测试插入效果:
数据持久化:
将配置文件的url修改:
url: jdbc:hsqldb:file:hsqldb/data/blogdb
将会在当前项目根目录下创建 文件夹 hsqldb
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)