Ir para conteúdo
  • 0

[Resolvido] [Duvida] SQLite


Trow_Games

Pergunta

Olá a todos, bom estou com uma duvida, em relação a setar String's, no banco de dados, toda vez que eu executo o comando, de teste, da o mesmo erro no console.

Código do Comando:

	private T db;

	public Comandos(T t){
		this.db = t;
	}

		if(cmd.getName().equalsIgnoreCase("teste")){
			if(args.length == 0){
				sender.sendMessage("§cUse: §f/teste §6<Senha>§c.");return true;
			}
			String senha = args[0];
			db.registrarPlayer(sender.getName(), senha);
			sender.sendMessage("§aRegistrado e.e!");
		}  

 

Código registrarPlayer:

    public void registrarPlayer(String nome, String senha){
        try{
            PreparedStatement ps = con.prepareStatement("INSERT INTO registros(nome,senha) VALUES (?,?)");
            ps.setString(1, nome);
            ps.setString(2, senha);
            ps.executeUpdate();
        }catch (Exception e){
            e.printStackTrace();
        }
    }  

 

Erro:


13:23:01 [INFO] trow issued server command: /teste abc
13:23:01 [SEVERE] null
13:23:01 org.bukkit.command.CommandException: Unhandled exception executing command 'teste' in plugin TGLogin v1.4
13:23:01     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
13:23:01     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
13:23:01     at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:523)
13:23:01     at net.minecraft.server.v1_5_R3.PlayerConnection.handleCommand(PlayerConnection.java:971)
13:23:01     at net.minecraft.server.v1_5_R3.PlayerConnection.chat(PlayerConnection.java:889)
13:23:01     at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:846)
13:23:01     at net.minecraft.server.v1_5_R3.Packet3Chat.handle(Packet3Chat.java:44)
13:23:01     at net.minecraft.server.v1_5_R3.NetworkManager.b(NetworkManager.java:292)
13:23:01     at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java:115)
13:23:01     at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35)
13:23:01     at net.minecraft.server.v1_5_R3.DedicatedServerConnection.b(SourceFile:30)
13:23:01     at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:581)
13:23:01     at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:226)
13:23:01     at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477)
13:23:01     at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410)
13:23:01     at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
13:23:01 Caused by: java.lang.NullPointerException
13:23:01     at me.trow.TGLogin.Comandos.Comandos.onCommand(Comandos.java:57)
13:23:01     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
13:23:01     ... 15 more  

 

Vlw ae att!

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

tu fuma?

 

quero saber que @%$#~&I é essa de variavel, coloca o código onde voce faz a conexão etc...

Não fumo, além do mais eu fiz a base dessa classe, a conexão está dentro da classe e é os dados de conexão são configuráveis.

Esse sistema já foi testado, o problema dele é q ele provavelmente não criou a instancia.

Link para o comentário
Compartilhar em outros sites

Não fumo, além do mais eu fiz a base dessa classe, a conexão está dentro da classe e é os dados de conexão são configuráveis.

Esse sistema já foi testado, o problema dele é q ele provavelmente não criou a instancia.

continuo querendo saber o que é essa variavel db, onde ele ta iniciando ela, se for uma classe posta aqui, se for a connection posta tambem.

Link para o comentário
Compartilhar em outros sites

Classe com os conections:

package me.trow.TGLogin.Teste;

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

import me.trow.TGLogin.Main;

import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;

import com.sk89q.worldedit.BlockVector;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldguard.domains.DefaultDomain;
import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;

public class T {
	
	private Connection con = null;
	private Statement stmt = null;
	
	public T(File f){
		if (f == null) {
			throw new IllegalArgumentException("DB file cannot be null.");
		}
		try{
			Class.forName("org.sqlite.JDBC");
			this.con = DriverManager.getConnection("jdbc:sqlite:" + f);
			this.stmt = this.con.createStatement();
		}
		catch (Exception e){
			e.printStackTrace();
		}
	}
	
	public boolean nEN(){ //nEN = Nao e NULL.
		return (this.con != null) && (this.stmt != null);
	}
	
	public void registrarPlayer(String nome, String senha){
		try{
			PreparedStatement ps = con.prepareStatement("INSERT INTO registros(nome,senha) VALUES (?,?)");
			ps.setString(1, nome);
			ps.setString(2, senha);
			ps.executeUpdate();
		}catch (Exception e){
			e.printStackTrace();
		}
	}
	
	public boolean tabelaExiste(){
		if(!nEN()){
			return false;
		}
		try{
			PreparedStatement ps = con.prepareStatement("SHOW TABLES");
			ResultSet rs = ps.executeQuery();
			while(rs.next()){
				if(rs.getString(1).trim().equalsIgnoreCase("registros")){
					return true;
				}
			}
		}catch (Exception e){}
		return false;
	}
	
	public void criarTabela(){
		try{
			stmt.executeUpdate("CREATE TABLE registros(nome varchar(60), senha varchar(60))");
		}catch (Exception e){}
	}
	
	public void removerPlayer(String nome){
		try{
			PreparedStatement ps = con.prepareStatement("DELETE FROM registros WHERE nome=?");
			ps.setString(1, nome);
			ps.executeUpdate();
		}catch (Exception e){}
	}
	
}
 

 

Classe que eu inicio o db:

package me.trow.TGLogin.Comandos;

import java.io.File;
import java.io.IOException;

import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;

import me.trow.TGLogin.Main;
import me.trow.TGLogin.Eventos.Eventos;
import me.trow.TGLogin.Teste.T;

public class Comandos implements CommandExecutor {
	
	private Main pl;
	private Eventos scheduler;
	private T db;
	
	public Comandos(T t){
		this.db = t;
	}
	
	public Comandos(Main m){
		this.pl = m;
	}
	
	public Comandos(Eventos ev){
		this.scheduler = ev;
	}
	
	public String MD5(String md5) {
		try {
			java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
			byte[] array = md.digest(md5.getBytes());
			StringBuffer sb = new StringBuffer();
			for (int i = 0; i < array.length; ++i) {
				sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3));
			}
			return sb.toString();
		} catch (java.security.NoSuchAlgorithmException e) {
		}
		return null;
	}
	
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
		if(cmd.getName().equalsIgnoreCase("teste")){
			Player p = (Player)sender;
			if(args.length == 0){
				sender.sendMessage("§cUse: §f/teste §6<Senha>§c.");return true;
			}
			boolean ehInt = false;
			String senha = args[0];
			int i = 0;
			try{
				i = Integer.parseInt(senha);
				ehInt = true;
			}catch (NumberFormatException e){}
			//db.registrarPlayer(sender.getName(), senha);
			sender.sendMessage("§aRegistrado e.e!");
			
		}
	} 

Link para o comentário
Compartilhar em outros sites

Classe com os conections:

 

package me.trow.TGLogin.Teste;

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

import me.trow.TGLogin.Main;

import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;

import com.sk89q.worldedit.BlockVector;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldguard.domains.DefaultDomain;
import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;

public class T {
	
	private Connection con = null;
	private Statement stmt = null;
	
	public T(File f){
		if (f == null) {
			throw new IllegalArgumentException("DB file cannot be null.");
		}
		try{
			Class.forName("org.sqlite.JDBC");
			this.con = DriverManager.getConnection("jdbc:sqlite:" + f);
			this.stmt = this.con.createStatement();
		}
		catch (Exception e){
			e.printStackTrace();
		}
	}
	
	public boolean nEN(){ //nEN = Nao e NULL.
		return (this.con != null) && (this.stmt != null);
	}
	
	public void registrarPlayer(String nome, String senha){
		try{
			PreparedStatement ps = con.prepareStatement("INSERT INTO registros(nome,senha) VALUES (?,?)");
			ps.setString(1, nome);
			ps.setString(2, senha);
			ps.executeUpdate();
		}catch (Exception e){
			e.printStackTrace();
		}
	}
	
	public boolean tabelaExiste(){
		if(!nEN()){
			return false;
		}
		try{
			PreparedStatement ps = con.prepareStatement("SHOW TABLES");
			ResultSet rs = ps.executeQuery();
			while(rs.next()){
				if(rs.getString(1).trim().equalsIgnoreCase("registros")){
					return true;
				}
			}
		}catch (Exception e){}
		return false;
	}
	
	public void criarTabela(){
		try{
			stmt.executeUpdate("CREATE TABLE registros(nome varchar(60), senha varchar(60))");
		}catch (Exception e){}
	}
	
	public void removerPlayer(String nome){
		try{
			PreparedStatement ps = con.prepareStatement("DELETE FROM registros WHERE nome=?");
			ps.setString(1, nome);
			ps.executeUpdate();
		}catch (Exception e){}
	}
	
}
 

 

Classe que eu inicio o db:

package me.trow.TGLogin.Comandos;

import java.io.File;
import java.io.IOException;

import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;

import me.trow.TGLogin.Main;
import me.trow.TGLogin.Eventos.Eventos;
import me.trow.TGLogin.Teste.T;

public class Comandos implements CommandExecutor {
	
	private Main pl;
	private Eventos scheduler;
	private T db;
	
	public Comandos(T t){
		this.db = t;
	}
	
	public Comandos(Main m){
		this.pl = m;
	}
	
	public Comandos(Eventos ev){
		this.scheduler = ev;
	}
	
	public String MD5(String md5) {
		try {
			java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
			byte[] array = md.digest(md5.getBytes());
			StringBuffer sb = new StringBuffer();
			for (int i = 0; i < array.length; ++i) {
				sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3));
			}
			return sb.toString();
		} catch (java.security.NoSuchAlgorithmException e) {
		}
		return null;
	}
	
	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
		if(cmd.getName().equalsIgnoreCase("teste")){
			Player p = (Player)sender;
			if(args.length == 0){
				sender.sendMessage("§cUse: §f/teste §6<Senha>§c.");return true;
			}
			boolean ehInt = false;
			String senha = args[0];
			int i = 0;
			try{
				i = Integer.parseInt(senha);
				ehInt = true;
			}catch (NumberFormatException e){}
			//db.registrarPlayer(sender.getName(), senha);
			sender.sendMessage("§aRegistrado e.e!");
			
		}
	} 

Ele inicia a conexao certinho?, ve se da algum erro...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...