2017-02-08 14 views
0
public void createDatabase(){ 

     try { 
      Class.forName("org.sqlite.JDBC").newInstance(); 

      Connection connection = DriverManager.getConnection("jdbc:sqlite:occDatabase.db"); 

      Statement statement = connection.createStatement(); 

      String sqlStatement = "CREATE TABLE 'Player_Data' (" + 
        "'userMoney' TEXT," + 
        "'oysters' TEXT," + 
        "'clams' TEXT," + 
        "'cockles' TEXT," + 
        "'oysterPrice' TEXT," + 
        "'clamPrice' TEXT," + 
        "'cocklePrice' TEXT," + 
        "'oysterMod' TEXT," + 
        "'clamMod' TEXT," + 
        "'cockleMod' TEXT," + 
        "'cartPrice' TEXT," + 
        "'fishStandPrice' TEXT," + 
        "'storePrice' TEXT," + 
        "'superMarketPrice' TEXT," + 
        "'cartAmount' TEXT," + 
        "'fishStandAmount' TEXT," + 
        "'storeAmount' TEXT," + 
        "'superMarketAmount' TEXT," + 
        ");"; 

      statement.execute(sqlStatement); 
      connection.commit(); 
      statement.close(); 
      connection.close(); 



     } catch (Exception e){ 
     } 
    } 

    public void writeToDatabase(){ 
     try{ 

      clearData(); 

      createDatabase(); 

      Class.forName("org.sqlite.JDBC"); 

      Connection connection = DriverManager.getConnection("jdbc:sqlite:occDatabase.db"); 

      Statement statement = connection.createStatement(); 

      String sqlStatemnt = "INSERT INTO Player_Data(userMoney,oysters,clams,cockles,oysterPrice,clamPrice,cocklePrice,oysterMod,clamMod,cockleMod" + 
        ",cartPrice,fishStandPrice,storePrice,superMarketPrice,cartAmount,fishStandAmount,storeAmount,superMarketAmount) " + 
        "VALUES('" + MainActivity.userMoney + "', '"+ GatheringSystem.oysters +"', '" + GatheringSystem.clams +"', '" + GatheringSystem.cockles +"'," + 
        " '" + Modifiers.oysterPrice +"', '" + Modifiers.clamPrice +"', '" + Modifiers.cocklePrice +"', '" + Modifiers.oysterMod +"', '" + Modifiers.clamMod +"', '" + Modifiers.cockleMod + 
        "', '" + MainActivity.cartPrice +"', '" + MainActivity.fishStandPrice +"', '" + MainActivity.storePrice +"', '" + MainActivity.superMarketPrice +"', '" + MainActivity.cartAmount +"'," + 
        " '" + MainActivity.fishStandAmount +"', '" + MainActivity.storeAmount +"', '" + MainActivity.superMarketAmount +"')"; 

      statement.execute(sqlStatemnt); 
      connection.commit(); 
      statement.close(); 
      connection.close(); 


     }catch (Exception e){ 

     } 
    } 

    public void readFromDatabase(){ 

     Connection connection = null; 
     Statement statement = null; 

     try { 

      Class.forName("org.sqlite.JDBC").newInstance(); 

      connection = DriverManager.getConnection("jdbc:sqlite:occDatabase.db"); 

      statement = connection.createStatement(); 

     } catch (Exception e){ 

     } 

     try{ 

      ResultSet resultSet = statement.executeQuery("SELECT * FROM Player_Data"); 

      while (resultSet.next()){ 
       MainActivity.userMoney = Double.parseDouble(resultSet.getString("userMoney")); 

       MainActivity.cartPrice = Double.parseDouble(resultSet.getString("cartPrice")); 
       MainActivity.fishStandPrice = Double.parseDouble(resultSet.getString("fishStandPrice")); 
       MainActivity.storePrice = Double.parseDouble(resultSet.getString("storePrice")); 
       MainActivity.superMarketPrice = Double.parseDouble(resultSet.getString("superMarketPrice")); 

       MainActivity.cartAmount = Integer.parseInt(resultSet.getString("cartAmount")); 
       MainActivity.fishStandAmount = Integer.parseInt(resultSet.getString("fishStandAmount")); 
       MainActivity.storeAmount = Integer.parseInt(resultSet.getString("storeAmount")); 
       MainActivity.superMarketAmount = Integer.parseInt(resultSet.getString("superMarketAmount")); 

       Modifiers.oysterPrice = Double.parseDouble(resultSet.getString("oysterPrice")); 
       Modifiers.clamPrice = Double.parseDouble(resultSet.getString("clamPrice")); 
       Modifiers.cocklePrice = Double.parseDouble(resultSet.getString("cocklePrice")); 

       Modifiers.oysterMod = Double.parseDouble(resultSet.getString("oysterMod")); 
       Modifiers.clamMod = Double.parseDouble(resultSet.getString("clamMod")); 
       Modifiers.cockleMod = Double.parseDouble(resultSet.getString("cockleMod")); 

       GatheringSystem.oysters = Double.parseDouble(resultSet.getString("oysters")); 
       GatheringSystem.clams = Double.parseDouble(resultSet.getString("clams")); 
       GatheringSystem.cockles = Double.parseDouble(resultSet.getString("cockles")); 

      } 

      resultSet.close(); 
      statement.close(); 
      connection.close(); 

      MainActivity.databaseStarted = true; 
     } catch (Exception e){ 
      MainActivity.databaseStarted = false; 
     } 
    } 

} 

Так что я действительно новичок в кодировании для android, и я пытаюсь сохранить данные для своей игры, так что, когда я вернусь к игре, я могу читать из файлов.Сохранение данных с использованием SQL на android

В настоящее время, похоже, он вообще не создает «базу данных».

Должен ли я предоставить ему определенные разрешения? или он может автоматически создавать файлы на телефоне пользователя?

private void databaseMethod(){ 

    database.readFromDatabase(); 

    if(!databaseStarted){ 
     database.createDatabase(); 
     toast = toast.makeText(getApplicationContext(),"Created Database",Toast.LENGTH_SHORT); 
     toast.show(); 
    } 
} 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.activity_main); 
    distThread.setDaemon(true); 
    distThread.start(); 
    databaseMethod(); 
    File file = new File(getFilesDir(), "occDatebase.db"); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    database.writeToDatabase(); 
    toast = toast.makeText(getApplicationContext(),"Game Saved",Toast.LENGTH_SHORT); 
    toast.show(); 
} 

При создании Я проверяю, есть ли база данных, если она не должна быть создана.

Но, похоже, это не так.

Любые предложения?

Спасибо.

+1

'protected void onCreate (Bundle savedInstanceState) {' выглядят как андроидальная подпись. Почему вы не используете 'DatabaseHelper' для управления внутренним SQlite? – AxelH

+1

http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/, Найти учебное пособие по SQLITE –

ответ

0

У Android нет JDBC.

И все блоки /except подавляют любые сообщения об ошибках.

Как использовать базу данных Android для Android, см. documentation или любой учебник.