java spring sqlite,Spring Boot+MyBatis+SQLite配置
Spring Boot+MyBatis+SQLite配置例子参考下面
创建新项目
项目类型务必选择箭头指定的类型,否则不会自动生成代码模版
增加依赖项
junit
junit
4.13.1
test
org.xerial
sqlite-jdbc
3.32.3.2
org.mybatis
mybatis
3.5.6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
junit
junit
4.13.1
test
org.xerial
sqlite-jdbc
3.32.3.2
org.mybatis
mybatis
3.5.6
如下图:
根据下图中的指示创建如下的几个文件
文件中的具体源代码如下:
DemoMapper.java
Java
package com.example.demo.mapper;
import com.example.demo.model.DemoModel;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface DemoMapper {
// 插入 并查询id 赋给传入的对象
@Insert("INSERT INTO tb_test(key, value) VALUES(#{key}, #{value})")
@SelectKey(statement = "SELECT seq id FROM sqlite_sequence WHERE (name = 'tb_test')", before = false, keyProperty = "id", resultType = int.class)
int insert(DemoModel model);
// 根据 ID 查询
@Select("SELECT * FROM tb_test WHERE id=#{id}")
DemoModel select(int id);
// 查询全部
@Select("SELECT * FROM tb_test")
List selectAll();
// 更新 value
@Update("UPDATE tb_test SET value=#{value} WHERE id=#{id}")
int updateValue(DemoModel model);
// 根据 ID 删除
@Delete("DELETE FROM tb_test WHERE id=#{id}")
int delete(Integer id);
int existTable(String tableName);
int dropTable(@Param("tableName") String tableName);
int createNewTable(@Param("tableName") String tableName);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
packagecom.example.demo.mapper;
importcom.example.demo.model.DemoModel;
importorg.apache.ibatis.annotations.*;
importjava.util.List;
@Mapper
publicinterfaceDemoMapper{
// 插入 并查询id 赋给传入的对象
@Insert("INSERT INTO tb_test(key, value) VALUES(#{key}, #{value})")
@SelectKey(statement="SELECT seq id FROM sqlite_sequence WHERE (name = 'tb_test')",before=false,keyProperty="id",resultType=int.class)
intinsert(DemoModelmodel);
// 根据 ID 查询
@Select("SELECT * FROM tb_test WHERE id=#{id}")
DemoModelselect(intid);
// 查询全部
@Select("SELECT * FROM tb_test")
ListselectAll();
// 更新 value
@Update("UPDATE tb_test SET value=#{value} WHERE id=#{id}")
intupdateValue(DemoModelmodel);
// 根据 ID 删除
@Delete("DELETE FROM tb_test WHERE id=#{id}")
intdelete(Integerid);
intexistTable(StringtableName);
intdropTable(@Param("tableName")StringtableName);
intcreateNewTable(@Param("tableName")StringtableName);
}
DemoModel.java
Java
package com.example.demo.model;
public class DemoModel {
private Integer id;
private String key;
private String value;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
packagecom.example.demo.model;
publicclassDemoModel{
privateIntegerid;
privateStringkey;
privateStringvalue;
publicIntegergetId(){
returnid;
}
publicvoidsetId(Integerid){
this.id=id;
}
publicStringgetKey(){
returnkey;
}
publicvoidsetKey(Stringkey){
this.key=key;
}
publicStringgetValue(){
returnvalue;
}
publicvoidsetValue(Stringvalue){
this.value=value;
}
}
Mapper.xml
XHTML
/p>
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
select count(*)
from information_schema.TABLES
where LCASE(table_name)=#{tableName}
DROP TABLE IF EXISTS ${tableName}
CREATE TABLE IF NOT EXISTS ${tableName} (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
key VARCHAR(20),
value VARCHAR(255)
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/p>
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
select count(*)
from information_schema.TABLES
where LCASE(table_name)=#{tableName}
DROP TABLE IF EXISTS ${tableName}
CREATE TABLE IF NOT EXISTS ${tableName} (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
key VARCHAR(20),
value VARCHAR(255)
)
mybatis-config.xml
XHTML
/p>
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/p>
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
配置数据库以及驱动信息(数据库扩展名务必是.sqlite这样可以保证IntelliJ IDEA可以直接查看数据库内容):
application.properties
Vim
spring.datasource.driver-class-name=org.sqlite.JDBC
spring.datasource.url=jdbc:sqlite:sample.sqlite
spring.datasource.username=
spring.datasource.password=
1
2
3
4
spring.datasource.driver-class-name=org.sqlite.JDBC
spring.datasource.url=jdbc:sqlite:sample.sqlite
spring.datasource.username=
spring.datasource.password=
测试代码如下:
DemoApplicationTests.java
Java
package com.example.demo;
import com.example.demo.mapper.DemoMapper;
import com.example.demo.model.DemoModel;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Assert;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.Reader;
import java.util.List;
@SpringBootTest
class DemoApplicationTests {
@Test
void contextLoads() throws Exception {
String resource = "mybatis-config.xml";//配置文件
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlMapper = builder.build(reader);
//设置为true 自动提交事务
SqlSession sqlSession = sqlMapper.openSession();
reader.close();//关闭读取流
DemoMapper mapper = sqlSession.getMapper(DemoMapper.class);//获取Mapper
mapper.createNewTable("tb_test");
List list = mapper.selectAll();//获取结果
sqlSession.close();
Assert.assertEquals(list.size(), 0);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
packagecom.example.demo;
importcom.example.demo.mapper.DemoMapper;
importcom.example.demo.model.DemoModel;
importorg.apache.ibatis.io.Resources;
importorg.apache.ibatis.session.SqlSession;
importorg.apache.ibatis.session.SqlSessionFactory;
importorg.apache.ibatis.session.SqlSessionFactoryBuilder;
importorg.junit.Assert;
importorg.junit.jupiter.api.Test;
importorg.springframework.boot.test.context.SpringBootTest;
importjava.io.Reader;
importjava.util.List;
@SpringBootTest
classDemoApplicationTests{
@Test
voidcontextLoads()throwsException{
Stringresource="mybatis-config.xml";//配置文件
Readerreader=Resources.getResourceAsReader(resource);
SqlSessionFactoryBuilderbuilder=newSqlSessionFactoryBuilder();
SqlSessionFactorysqlMapper=builder.build(reader);
//设置为true 自动提交事务
SqlSessionsqlSession=sqlMapper.openSession();
reader.close();//关闭读取流
DemoMappermapper=sqlSession.getMapper(DemoMapper.class);//获取Mapper
mapper.createNewTable("tb_test");
Listlist=mapper.selectAll();//获取结果
sqlSession.close();
Assert.assertEquals(list.size(),0);
}
}
参考链接
java spring sqlite,Spring Boot+MyBatis+SQLite配置相关推荐
- java sqlite mybatis_Spring boot + Mybatis + SQLite 搭建blog API
Spring boot + Mybatis + SQLite 搭建blog API 一.准备环境 二.创建一个SpringBoot项目 在此我就不再演示如何创建SpringBoot项目了,需要的请看[ ...
- druid 多数据源_Spring Boot + Mybatis 中 配置Druid多数据源并实现自由切换
概述 前面我们已经介绍过了对MyBatis.Druid的整合,接下来我们在之前的基础上做扩展,实现对Druid多数据源的配置以及动态切换数据源. 问题:多数据源使用场景有哪些呢? 回答:在业务发展中, ...
- java | (三十一)MyBatis(1)配置、映射、缓存
目录 配置MyBatis 基本配置 采用注解的方式映射sql 主要API生命周期 别名typeAliases environments配置 mappers SQL映射 select(带参数) sele ...
- SpringBoot实战系列1:Spring Boot+Mybatis+MySql实现增删改查
前言 Spring boot项目目前是Java Web开发领域最受市场欢迎的Spring框架之一,也是构建分布式项目.微服务项目重要基础之一,Spring Boot免去了配置繁杂的依赖和配置,使得开发 ...
- 【Spring】Spring学习笔记完整篇
文章目录 Spring 1.简介 优点 组成 弊端 2.IOC 控制反转 控制什么? 谁来控制? 反转? 依赖注入DI? IOC和DI关系 IOC本质 3.hello spring Applicati ...
- Spring Boot连接SQLite数据库
本文记录Spring Boot连接单SQLite数据源和多SQLite数据源的一种配置方式. 单数据源 1.在pom.xml中添加相关依赖 <!-- sqlite --><depen ...
- Spring Boot MyBatis配置多种数据库
mybatis-config.xml是支持配置多种数据库的,本文将介绍在Spring Boot中使用配置类来配置. 1. 配置application.yml # mybatis配置 mybatis:c ...
- java电子商务系统源码 Spring MVC+mybatis+spring cloud+spring boot+spring security
鸿鹄云商大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B2C.C2C.O2O.新零售.直播电商等子平台. 分布式.微服务.云架构电子商务平台 java ...
- spring boot +mybatis(通过properties配置) 集成
注:日常学习记录贴,下面描述的有误解的话请指出,大家一同学习. 因为我公司现在用的是postgresql数据库,所以我也用postgresql进行测试 一.前言 1.Spring boot 会默认读取 ...
最新文章
- Android --- 刚刚进入 Activity 页面的时候无法打开对话框,报错 Unable to add window -- token null is not valid; is your
- 设计模式(一)————策略模式(张三的故事??)
- python按章节分割txt_python爬虫,爬取小说
- ios 静态库合成_iOS : 静态库(.framework)合并
- mysql 表损坏_MYSQL数据表损坏的原因分析和修复方法小结(推荐)
- 大道至简 爱上Metro
- Python程序-生成回文
- Linux设备驱动开发入门之——hello驱动
- 报税远程服务器返回错误,紧急 | 增值税申报失败,调用系统服务出错,怎么办?...
- ​杭州,苏州,成都哪个最宜居?
- sqlite3:sqlite3_column 函数
- 英语写作——常用的 过度词-连接词
- 九九乘法表 - Java (矩形、正三角形、倒三角形)
- 原神3.0上半角色活动祈愿-2源码
- python读取大文件csv_python 快速把超大txt文件转存为csv的实例
- 【C语言】字符个数统计 笔试常见题型
- 计算机用户被停用,Win10电脑中Administrator账户被停用如何解决
- 如何把生活过程升级打怪?
- C++(学习) —— Vector容器,类的静态成员的使用练习(Singer类)
- 【在Windows7旗舰版下安装Anaconda报错failed to create menus】
热门文章
- ROS学习笔记(十一):roscore与roslaunch的区别
- Java文件下载,Java通用文件下载,Java文件下载中文乱码
- Oracle 18c更新TIMEZONE版本
- 基于android的停车场管理系统,基于Android的智能停车场的制作方法
- 软件测试面试题:现有一个学生标准化考试批阅试卷,产生成绩报告的程序。其规格说明如下:程序的输入文件由一些有80个字符的记录组成,如右图所示,所有记录分为3组?
- Linux入门(2)——Linux下的文件管理
- 性能测试环境如何搭建?我来告诉你
- android最新v7包下载,android-support-v7-recyclerview的jar包
- 如何禁用 USB 存储设备
- 超级马里奥源代码_任天堂源代码泄露事件再升级 多款经典游戏中招