我正在尝试使用OrmLite保留以下类:
public class Field {
@DatabaseField(id = true)
public String name;
@DatabaseField(canBeNull = false)
public FieldType type;
...
}
Run Code Online (Sandbox Code Playgroud)
这FieldType是一个public enum.该字段对应type于SQLite中的字符串(不支持枚举).当我尝试使用它时,我得到以下异常:
INFO [main] (SingleConnectionDataSource.java:244) - Established shared JDBC Connection: org.sqlite.Conn@5224ee
Exception in thread "main" org.springframework.beans.factory.BeanInitializationException: Initialization of DAO failed; nested exception is java.lang.IllegalArgumentException: Unknown field class class enums.FieldType for field FieldType:name=type,class=class orm.Field
at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:51)
at orm.FieldDAO.getInstance(FieldDAO.java:17)
at orm.Field.fromString(Field.java:23)
at orm.Field.main(Field.java:38)
Caused by: java.lang.IllegalArgumentException: Unknown field class class enums.FieldType for field FieldType:name=type,class=class orm.Field …Run Code Online (Sandbox Code Playgroud) 我目前正在使用sqlite3作为我的一个Django项目的数据库.我想改变它以使用postgresql,我想保持所有数据完好无损.
我曾经./manage.py dumpdata > dump.json创建过数据转储,并将我的设置更改为使用postgresql.首先尝试使用空数据库./manage.py loaddata dump.json导致表中存在错误,因此我运行了./manage.py syncdb,然后再次尝试.这导致了这个错误:
Problem installing fixture 'dump.json': Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/django/core/management/commands/loaddata.py", line 163, in handle
obj.save()
File "/usr/lib/python2.6/site-packages/django/core/serializers/base.py", line 163, in save
models.Model.save_base(self.object, raw=True)
File "/usr/lib/python2.6/site-packages/django/db/models/base.py", line 495, in save_base
rows = manager.filter(pk=pk_val)._update(values)
File "/usr/lib/python2.6/site-packages/django/db/models/query.py", line 448, in _update
return query.execute_sql(None)
File "/usr/lib/python2.6/site-packages/django/db/models/sql/subqueries.py", line 124, in execute_sql
cursor = super(UpdateQuery, self).execute_sql(result_type)
File "/usr/lib/python2.6/site-packages/django/db/models/sql/query.py", line 2347, in execute_sql
cursor.execute(sql, params)
File "/usr/lib/python2.6/site-packages/django/db/backends/util.py", line 19, in execute
return …Run Code Online (Sandbox Code Playgroud) 我有一个项目要求为应用程序选择一个轻型数据库.
需要在SQL Server Express Edition或SQLLite之间进行选择.哪一个是高效可靠的.我应该在Windows 7/Windows 2008 R2下运行它.我是数据库编程的新手.如果您可以分享一些信息,将会很有帮助
我在解释器上测试了一些代码,我注意到了这个sqlite3.Row类的一些意外行为.
我的理解是print obj总是得到相同的结果print str(obj),并且obj在解释器中输入将得到相同的结果print repr(obj),但是不是这样的情况sqlite3.Row:
>>> print row # the row object prints like a tuple
(u'string',)
>>> print str(row) # why wouldn't this match the output from above?
<sqlite3.Row object at 0xa19a450>
>>> row # usually this would be the repr for an object
(u'string',)
>>> print repr(row) # but repr(row) is something different as well!
<sqlite3.Row object at 0xa19a450>
Run Code Online (Sandbox Code Playgroud)
我认为sqlite3.Row必须是它的子类tuple,但我仍然不明白幕后可能会导致这种行为的是什么.有谁能解释一下?
这是在Python 2.5.1上测试的,不确定其他Python版本的行为是否相同. …
所以我在我的DBAdapter类中有一个问题,它只是在我尝试打开数据库时崩溃:从LogCat我想问题是在onUpgrade函数中:
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion)
{
Log.w("SingleDBAdapter", "Upgrading database from version " + oldVersion
+ " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS "+DATABASE_TABLE);
onCreate(db);
}
}
Run Code Online (Sandbox Code Playgroud)
这是错误:
07-28 11:32:49.443: E/Database(1244): Failure 1 (near "122": syntax error) on 0x2435b0 when preparing 'DROP TABLE IF EXISTS 122'.
07-28 11:32:49.463: D/AndroidRuntime(1244): Shutting down VM
07-28 11:32:49.463: W/dalvikvm(1244): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
07-28 11:32:49.473: E/AndroidRuntime(1244): FATAL EXCEPTION: …Run Code Online (Sandbox Code Playgroud) 最近我开始在我的应用程序中出现以下错误.这不是在任何特定的地方,我只能在循环所有数据读/写功能时重现.它出现在任何地方.
09-14 08:52:15.089: WARN/SQLiteConnectionPool(19268): The connection pool for database '/data/data/com.nnn/databases/data.db' has been unable to grant a connection to thread 1 (main) with flags 0x5 for 30.000002 seconds.
Connections: 0 active, 1 idle, 0 available.
Run Code Online (Sandbox Code Playgroud)
有什么方法可以避免这种情况吗?我明白我以某种方式耗尽了与数据库的所有连接?我正在使用方法#1:http://www.androiddesignpatterns.com/2012/05/correctly-managing-your-sqlite-database.html
我的数据库代码如下所示:
public class DatabaseHelper extends SQLiteOpenHelper
{
private final static String LOG_TAG = "com.nnnn.data.DatabaseHelper";
private static final String DATABASE_NAME = "data.db";
private static final int DATABASE_VERSION = 260;
private static SQLiteDatabase databaseInstance;
public DatabaseHelper()
{
super(MyApplication.Me, DATABASE_NAME, null, DATABASE_VERSION);
}
public static …Run Code Online (Sandbox Code Playgroud) 我是第一次使用SQLite,并且我正在尝试学习它的异常处理,所以我在我的测试应用程序中强制插入错误.发生异常,我看到它写入了Eclipse LogCat输出窗口.但是它不会被代码捕获.我在这里看到了其他关于确保使用正确的异常类型的问题,并认为我已经做对了.知道我错过了什么吗?
在我的主要活动中的以下语句中,myTable是一个扩展我自己AbstractDbAdapter的类(它有一个DatabaseHelper扩展的类SQLiteOpenHelper).
try {
myTable.create("dupkey");
}
catch (android.database.sqlite.SQLiteConstraintException e) {
Log.e(TAG, "SQLiteConstraintException:" + e.getMessage());
}
catch (android.database.sqlite.SQLiteException e) {
Log.e(TAG, "SQLiteException:" + e.getMessage());
}
catch (Exception e) {
Log.e(TAG, "Exception:" + e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
样本堆栈跟踪:
Error inserting id="dupkey" last_seen_ts=1360624732 first_seen_ts=1360624732 android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1582)
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426)
at com.myCompany.testApp.myTable_DbAdapter.create(myTable_DbAdapter.java:51)
Run Code Online (Sandbox Code Playgroud)
在myTable和AbstractDbAdapter类:
public class myTable_DbAdapter extends AbstractDbAdapter {
private static final String … 我试图在基于Android WebView的应用程序中实现离线地图功能:
使用DownloadManager,我从我们的网络服务器下载一个sqlite数据库文件(像.mbtiles这样的结构),它包含地图图块图像的blob("离线地图")并通过它存储在android外部存储中
public void downloadMap() {
downloadManager = (DownloadManager) getActivity().getSystemService(Activity.DOWNLOAD_SERVICE);
DownloadManager.Request r = new DownloadManager.Request(Uri.parse("http://sry.youtoknow.idontwant/map.sqlite"));
r.setDestinationInExternalFilesDir(getContext(), "map", "map.sqlite");
downloadManager.enqueue(r);
}
Run Code Online (Sandbox Code Playgroud)
下载似乎工作得很好.
我注册了一个BroadcastReceiver接收DownloadManager.ACTION_DOWNLOAD_COMPLETE并存储"map.sqlite"的路径使用SharedPreferences.
要从JavaScript访问数据库以使用中的tile图像WebView,我通过检查customhttp:URL中的自定义虚构模式名称来拦截XHRequests:
webView.setWebViewClient(new WebViewClient() {
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
String url = request.getUrl().toString();
if (!url.startsWith("customhttp:")) {
return null;
} else {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
SQLiteDatabase db = SQLiteDatabase.openDatabase(preferences.getString("map_uri", Environment.getExternalStorageDirectory().getPath() + "berlin.sqlite"), null, SQLiteDatabase.OPEN_READONLY); …Run Code Online (Sandbox Code Playgroud) 当生成新的rails应用程序,并启动服务器"rails s"时,我得到的第一次按摩:
Puma发现了这个错误:加载'sqlite3'Active Record适配器时出错.缺少它依赖的宝石?无法激活sqlite3(〜> 1.3.6),已经激活了sqlite3-1.4.0.确保将所有依赖项添加到Gemfile.(LoadError)
重新加载页面后:
ActiveRecord :: ConnectionNotEstablished找不到找到"primary"的连接池.
def retrieve_connection(spec_name) #:nodoc:
pool = retrieve_connection_pool(spec_name)
raise ConnectionNotEstablished, "No connection pool with '#{spec_name}' found." unless pool
pool.connection
end
Run Code Online (Sandbox Code Playgroud)
我重新安装ruby,rails,bundler,除了rvm之外我都不知道该怎么做
PS当我明显写出sqlite3版本时,这个错误就消失了,但它应该可以正常工作!救命!怎么办?或者重新安装所有这些?
sqlite ×10
android ×4
database ×2
bundler ×1
django ×1
drop-table ×1
java ×1
ormlite ×1
postgresql ×1
pycharm ×1
python ×1
ruby ×1
rvm ×1
sql ×1
sql-server ×1