2

我一直在尝试在 Sqlite 数据库上使用 MyBatis 生成器,但似乎找不到用于 XML 属性目录和模式的设置。

生成器错误“发生生成警告:表配置与目录主、模式 sqlite_master 和表 testTable 未解析到任何表”

除了这个之外,我在 sqlite 网站上找不到很多东西,它给出了类似的东西catalog = main, schema = sqlite or sqlite_master

我的生成器 XML 文件是

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration >
  <context id="context">
    <jdbcConnection driverClass="org.sqlite.JDBC" connectionURL="jdbc:sqlite:testDB.sqlite" userId="" password="" ></jdbcConnection>
    <javaModelGenerator targetPackage="model" targetProject="test/src" ></javaModelGenerator>
    <sqlMapGenerator targetPackage="model" targetProject="test/src" ></sqlMapGenerator>
    <javaClientGenerator targetPackage="model" targetProject="test" type="XMLMAPPER" ></javaClientGenerator>
    <table catalog="main" schema="sqlite_master" tableName="testTable" >
      <property name="useActualColumnNames" value="true"/> 
    </table>
  </context>
</generatorConfiguration>

我也尝试过其他组合,比如

<table catalog="main" schema="sqlite" tableName="testTable" >

<table schema="sqlite" tableName="testTable" >

<table schema="sqlite_master" tableName="testTable" >

<table schema="main.testTable" tableName="testTable" >

这里有人知道正确的设置吗?

编辑:

我已经省略了目录和架构,但仍然出现生成警告:目录为空、架构为空和表 testTable 的表配置未解析为任何表”

该错误使我认为 MyBatis 由于架构不正确而无法找到该表,但它可能是别的东西。

4

3 回答 3

1

该错误消息非常具有误导性,当我发现生成器无法看到 db 文件时,我得到了它,因此请检查connectionURL配置文件中条目中的文件路径。

于 2014-01-24T10:09:22.663 回答
0

出于实际目的,SQLite 没有目录或模式;省略它们。

于 2012-10-24T08:25:06.330 回答
0

我在使用 docker 时遇到了这个错误。问题是我虽然创建了一个表,但实际上我不会保存它。例如:

用于 Postgres 的 Docker

docker run -d -p 5432:5432 --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword postgres
docker exec -it my-postgres bash
psql -U postgres


CREATE DATABASE cardcontrol;
CREATE TABLE card(id VARCHAR(32) PRIMARY KEY,external_id integer,pan VARCHAR (50) UNIQUE NOT NULL,card_holder VARCHAR (50),expiration_date TIMESTAMP);

// check creation
\dt

但是以这种方式装箱我遇到了问题。例如,当我使用 DBeaver 创建表时(使用之前使用的相同连接),问题就解决了。

于 2020-07-07T08:27:59.873 回答