1.环境
a.Spring 4.1.4.RELEASE
b.sqlite3
c.maven3
d.sqlite-jdbc 3.8.11.2
2.遇到问题
1.方言找不到
2.org.sqlite.JDBC找不到
3.想把数据库文件放到相对路径下
3.解决方案
1.官方貌似没有方言文件,大都是DIY的,自己找到一篇,生成之后配到方言中
package com.fh.server.util;
/*
* The author disclaims copyright to this source code. In place of
* a legal notice, here is a blessing:
*
* May you do good and not evil.
* May you find forgiveness for yourself and forgive others.
* May you share freely, never taking more than you give.
*
*/
import java.sql.Types;
import org.hibernate.dialect.Dialect;
import org.hibernate.dialect.function.SQLFunctionTemplate;
import org.hibernate.dialect.function.StandardSQLFunction;
import org.hibernate.dialect.function.VarArgsSQLFunction;
import org.hibernate.type.StandardBasicTypes;
public class SQLiteDialect extends Dialect {
public SQLiteDialect() {
super();
registerColumnType(Types.BIT, "integer");
registerColumnType(Types.TINYINT, "tinyint");
registerColumnType(Types.SMALLINT, "smallint");
registerColumnType(Types.INTEGER, "integer");
registerColumnType(Types.BIGINT, "bigint");
registerColumnType(Types.FLOAT, "float");
registerColumnType(Types.REAL, "real");
registerColumnType(Types.DOUBLE, "double");
registerColumnType(Types.NUMERIC, "numeric");
registerColumnType(Types.DECIMAL, "decimal");
registerColumnType(Types.CHAR, "char");
registerColumnType(Types.VARCHAR, "varchar");
registerColumnType(Types.LONGVARCHAR, "longvarchar");
registerColumnType(Types.DATE, "date");
registerColumnType(Types.TIME, "time");
registerColumnType(Types.TIMESTAMP, "timestamp");
registerColumnType(Types.BINARY, "blob");
registerColumnType(Types.VARBINARY, "blob");
registerColumnType(Types.LONGVARBINARY, "blob");
// registerColumnType(Types.NULL, "null");
registerColumnType(Types.BLOB, "blob");
registerColumnType(Types.CLOB, "clob");
registerColumnType(Types.BOOLEAN, "integer");
registerFunction("concat", new VarArgsSQLFunction(StandardBasicTypes.STRING, "",
"||", ""));
registerFunction("mod", new SQLFunctionTemplate(StandardBasicTypes.INTEGER,
"?1 % ?2"));
registerFunction("substr", new StandardSQLFunction("substr",
StandardBasicTypes.STRING));
registerFunction("substring", new StandardSQLFunction("substr",
StandardBasicTypes.STRING));
}
public boolean supportsIdentityColumns() {
return true;
}
/*
public boolean supportsInsertSelectIdentity() {
return true; // As specify in NHibernate dialect
}
*/
public boolean hasDataTypeInIdentityColumn() {
return false; // As specify in NHibernate dialect
}
/*
public String appendIdentitySelectToInsert(String insertString) {
return new StringBuffer(insertString.length()+30). // As specify in NHibernate dialect
append(insertString).
append("; ").append(getIdentitySelectString()).
toString();
}
*/
public String getIdentityColumnString() {
// return "integer primary key autoincrement";
return "integer";
}
public String getIdentitySelectString() {
return "select last_insert_rowid()";
}
public boolean supportsLimit() {
return true;
}
public String getLimitString(String query, boolean hasOffset) {
return new StringBuffer(query.length() + 20).append(query).append(
hasOffset ? " limit ? offset ?" : " limit ?").toString();
}
public boolean supportsTemporaryTables() {
return true;
}
public String getCreateTemporaryTableString() {
return "create temporary table if not exists";
}
public boolean dropTemporaryTableAfterUse() {
return false;
}
public boolean supportsCurrentTimestampSelection() {
return true;
}
public boolean isCurrentTimestampSelectStringCallable() {
return false;
}
public String getCurrentTimestampSelectString() {
return "select current_timestamp";
}
public boolean supportsUnionAll() {
return true;
}
public boolean hasAlterTable() {
return false; // As specify in NHibernate dialect
}
public boolean dropConstraints() {
return false;
}
public String getAddColumnString() {
return "add column";
}
public String getForUpdateString() {
return "";
}
public boolean supportsOuterJoinForUpdate() {
return false;
}
public String getDropForeignKeyString() {
throw new UnsupportedOperationException(
"No drop foreign key syntax supported by SQLiteDialect");
}
public String getAddForeignKeyConstraintString(String constraintName,
String[] foreignKey, String referencedTable, String[] primaryKey,
boolean referencesPrimaryKey) {
throw new UnsupportedOperationException(
"No add foreign key syntax supported by SQLiteDialect");
}
public String getAddPrimaryKeyConstraintString(String constraintName) {
throw new UnsupportedOperationException(
"No add primary key syntax supported by SQLiteDialect");
}
public boolean supportsIfExistsBeforeTableName() {
return true;
}
public boolean supportsCascadeDelete() {
return false;
}
/**
* 修复分页bug
* @author Z.kc
*/
@Override
public boolean bindLimitParametersInReverseOrder() {
return true;
}
}
2.把jar包扔到tomcat/lib下就好了
3.传说中配置url用resource::指定就可以了,然而并没有什么卵用,不知道是不是RP问题,配置文件贴下仅供参考
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="org.sqlite.JDBC" />
<property name="url" value="jdbc:sqlite::resource:vote.db" />
<property name="maxIdle" value="10"/>
<property name="maxActive" value="100"/>
<property name="maxWait" value="10000"/>
<property name="validationQuery" value="select 1"/>
<property name="testOnBorrow" value="false"/>
<property name="testWhileIdle" value="true"/>
<property name="timeBetweenEvictionRunsMillis" value="1200000"/>
<property name="minEvictableIdleTimeMillis" value="1800000"/>
<property name="numTestsPerEvictionRun" value="5"/>
<property name="defaultAutoCommit" value="true"/>
</bean>
4.引用文章什么的找不到了,先鸣谢,下次找到补上
相关推荐
- **使用说明文档.txt**:包含了详细的PHPSQLite使用指南,包括示例代码和注意事项。 - **php100-71.wmv**:可能是一个视频教程,通过实例演示如何在PHP中配置和操作SQLite数据库。 通过深入学习这些资源,你可以更...
**注意事项** - SQLite不支持多线程写入,所以在并发较高的场景下可能不是最佳选择。 - 虽然SQLiteJDBC能简化数据库操作,但它的性能和功能可能不如大型数据库系统如MySQL或Oracle。 - 使用SpringMVC时,合理配置...
《JMeter连接SQLite数据库的详细步骤与注意事项》 在软件测试和性能测试领域,Apache JMeter是一款广泛应用的开源工具,它主要用于对Web应用进行压力和负载测试。然而,JMeter默认并不支持SQLite数据库的直接连接,...
例如,可以创建一个简单的待办事项应用,用户界面由 HTML 和 CSS 构建,JavaScript 代码处理用户的交互,如添加、删除任务,而所有这些任务数据都存储在 SQLite 数据库中。 在开发过程中,需要注意以下几点: 1. *...
六、注意事项 1. 数据库版本兼容:不同的数据库可能对SQL语法有不同的支持,确保SQL语句兼容所选数据库。 2. 异常处理:合理捕获并处理数据库操作中的异常,提供友好的错误信息。 3. 性能优化:根据项目需求,考虑...
- **注意事项**: - 在现有的Apache服务器上可能不支持PHP5扩展。如果尝试在httpd.conf中添加`LoadModule php5_module modules/libphp5.so`,可能会遇到错误提示:“Syntax error on line 233 of /usr/conf/httpd....
在该压缩包中,readme.png可能是项目的一份简要介绍或指南,通常包含重要的安装步骤、使用注意事项以及可能的系统需求。而_install.txt文件很可能是详细的安装步骤文本,用户可以通过阅读这个文件来了解如何配置和...
使用注意事项 - SQLite不支持多用户同时写入,因此在高并发环境下可能不是最佳选择。 - 数据库文件是文本格式,容易被读取,对敏感数据应加密处理。 - 没有自动维护的索引,可能需要手动创建和优化。 通过本教程...
而`CodePub.Com说明.txt`文件可能是提供关于如何使用SQLite3.66或者这个特定打包的一些额外说明,包括安装步骤、使用教程、注意事项等。用户应仔细阅读该文件以获取更具体的使用指南。 在实际应用中,SQLite常用于...
8. **安全注意事项**: - 定期备份数据库,以防数据丢失。 - 对敏感信息进行加密,保护数据安全。 - 适当地处理SQL注入风险,避免未验证的用户输入直接构造SQL语句。 9. **调试与测试**: 使用Visual Studio的...
“使用须知.txt”可能是对系统使用、安装步骤或注意事项的说明文档,帮助用户了解如何正确部署和运行此系统。而“132676244056243678”可能是一个数据库文件,包含了预设的数据或者系统配置信息。 6. 安全性: 在...
了解其使用方法,包括启动Sender,掌握重要附属文件的作用,理解PNL计算流程,并注意使用过程中的注意事项,以确保数据的准确传输。 项目文件依赖关系需清晰了解。例如,json数据文件路径的配置,以及策略管理层级...
1. `Readme-说明.htm`:包含详细的系统介绍和使用注意事项,是了解系统功能和操作的重要参考资料。 2. `PHPWEB安装方法.txt`:提供了详细的安装步骤和常见问题解答,帮助用户顺利完成系统部署。 3. `PHPWEB智能网站...
安装注意事项: 需要支持 PHP 的 Web 服务器(例如 IIS) 将内容复制到 wwwroot(或等效)文件夹中 运行服务器: php SpiceServer\Server\SpireServer.php 使用浏览器 url 运行客户端:...
总的来说,Trac 0.12的搭建和配置可能需要一定的技术基础,但只要按照正确步骤操作并留意上述注意事项,你就能成功建立一个强大的项目管理平台。文档`Trac环境搭建说明_UpLoad.doc`应包含更详细的步骤和具体配置示例...
1. "使用前必看.htm" - 这通常是一个重要的文档,包含了使用该系统前需要注意的事项、安装步骤或者系统配置要求等关键信息。开发者和管理员应该仔细阅读以确保正确无误地部署和运行系统。 2. "内容来自存起来软件站...
"安装必看.txt"可能是包含安装提示和注意事项的文本文件,用户在安装前应该仔细阅读以确保顺利进行。"173绿色软件下载.url"则是一个快捷方式或书签,指向一个软件下载网站,可能是推荐的其他相关工具或者更新的下载...
**注意事项**: - 需要在运行`trac-admin initenv`之前创建好PostgreSQL数据库。 - 确保PostgreSQL数据库名为`trac`。 初始化完成后,可以看到Trac环境已经创建完成。 ##### 4. 配置Apache - 编辑Apache的...
7. **安装说明.txt**:这个文本文件提供了项目部署的具体步骤和注意事项,对于首次接触该项目的人来说,它是指导部署的重要参考资料。 8. **aspnet_client**:这个目录包含了ASP.NET自动生成的客户端脚本文件,用于...