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();
}
При создании Я проверяю, есть ли база данных, если она не должна быть создана.
Но, похоже, это не так.
Любые предложения?
Спасибо.
'protected void onCreate (Bundle savedInstanceState) {' выглядят как андроидальная подпись. Почему вы не используете 'DatabaseHelper' для управления внутренним SQlite? – AxelH
http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/, Найти учебное пособие по SQLITE –