版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_19306415/article/details/84455144
由于博主最近开发应用,需要保存数据,于是想到了用sqlite。
但是用Java 提供的方法来操作数据库,实在是有点繁琐,所以博主就百度了一下Mybatis整合Sqlite,但是遇到了一个大坑,所以以此记录!
重点记录:sqlite驱动包的版本号
当前使用的是3.7.2的,博主刚开始使用的是3.4.2的,可能是版本过低的原因,3.4.2的无法跟Mybits整合,后面换成了3.7.2的就好了,莫名奇妙的折腾了一晚上!
完工,睡觉!
Maven引用
<!--sqlite 版本3.7.2 -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.7.2</version>
</dependency>
<!--mybatis 版本3.4.4 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 引用"application.properties配置文件 -->
<properties resource="application.properties" />
<!-- development : 开发模式 work : 工作模式 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<!-- value属性值引用db.properties配置文件中配置的值 -->
<property name="driver" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 自动扫描该包名下的所有Mapper -->
<package name="cn.xstm.gim.mapper"/>
</mappers>
</configuration>
application.properties
jdbc.driverClassName=org.sqlite.JDBC
jdbc.url=jdbc:sqlite:sample.db
jdbc.username=
jdbc.password=
使用方法
String resource = "mybatis-config.xml";//配置文件
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sqlMapper = SqlSessionFactoryBuilder().build(reader);
//设置为true 自动提交事务
SqlSession sqlSession = sqlMapper.openSession();
reader.close();//关闭读取流
Login_Mapper mapper=sqlSession .getMapper(Login_Mapper.lass);//获取Mapper
List<HasMap<Object,Object>> list= mapper.getLoginName();//获取结果
Login_Mapper.java
interface Login_Mapper {
//sql语句
@Select("select * from login")
public List< Map<Object,Object>> getLoginName()
}