首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Phonegap本地插件与sqlite数据库通信

Phonegap本地插件与sqlite数据库通信
EN

Stack Overflow用户
提问于 2012-09-13 05:13:57
回答 2查看 2.5K关注 0票数 0

我为将数据存储到SQLITE数据库编写了java插件,但是这个连接url显示了错误。

是否需要任何权限?

代码语言:javascript
代码运行次数:0
运行
复制
package com.tricedesigns;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.apache.cordova.CordovaWebViewClient;
import org.apache.cordova.api.Plugin;
import org.apache.cordova.api.PluginResult;
import org.json.JSONArray;
import org.json.JSONException;
import org.sqlite.SQLite;

import com.sun.java.swing.plaf.windows.resources.windows;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteStatement;
import android.util.Log;
import android.view.Window;



public class HelloPlugin extends Plugin { 

 public static final String NATIVE_ACTION_STRING="nativeAction"; 
  public static final String SUCCESS_PARAMETER="laxman"; 
  SQLiteDatabase myDb = null;
  @Override
  public PluginResult execute(String action, JSONArray data, String callbackId) { 
         Log.d("HelloPlugin", "Hello, this is a native function called from PhoneGap/Cordova!"); 
 //only perform the action if it is the one that should be invoked 
  if (NATIVE_ACTION_STRING.equals(action)) { 
   String resultType = null; 
   try { 
    resultType = data.getString(0); 
    Connection connection = null;  
      ResultSet resultSet = null;  
       Statement statement = null;  

         try {  

            Class.forName("org.sqlite.JDBC");  
               //   webView.loadUrl("jdbc:sqlite:tempdb.db");
               connection = DriverManager  
                             .getConnection("jdbc:sqlite:tempdb.db");  



                      statement = connection.createStatement();  
                         System.out.println("dddddddddddddddddddddd");
                         resultSet = statement  
                                 .executeQuery("SELECT name FROM temp");  
                         while (resultSet.next()) {  
                             System.out.println(" NAME:"  
                                     + resultSet.getString("name"));  
                         }  
                     } catch (Exception e) {  
                         e.printStackTrace();  
                     } finally {  
                         try {  
                             resultSet.close();  
                             statement.close();  
                             connection.close();  
                         } catch (Exception e) {  
                             e.printStackTrace();  
                         }  
                     }  

                     System.out.println("result typeeeeeeeee"+data.getString(0));
               } 
               catch (Exception ex) { 
                     Log.d("HelloPlugin", ex.toString()); 
               } 
               if (resultType.equals(SUCCESS_PARAMETER)) { 
                     try {
                        return new PluginResult(PluginResult.Status.OK, "Yay, Success,First Plugin for android!!!"+data.getString(0));
                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } 
               } 
               else { 
                     return new PluginResult(PluginResult.Status.ERROR, "Oops, Error :("); 
               } 
         } 
         return null; 
  } 

}`

,我得到了错误,这个

代码语言:javascript
代码运行次数:0
运行
复制
 09-13 09:53:44.387: W/System.err(330): java.sql.SQLException: opening db: 'tempdb.db': Read-only file system
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-14 12:53:41

从getDatabase调用phonegap.js中的本机方法

票数 0
EN

Stack Overflow用户

发布于 2012-09-13 05:21:59

查看这里是否有Phonegap插件

https://github.com/phonegap/phonegap-plugins

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12399794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档