Advertisement
Guest User

Untitled

a guest
May 10th, 2015
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.00 KB | None | 0 0
  1. package de.bruuff.testplugin;
  2.  
  3. import com.google.inject.Inject;
  4.  
  5. import org.slf4j.Logger;
  6. import org.spongepowered.api.Game;
  7. import org.spongepowered.api.entity.player.Player;
  8. import org.spongepowered.api.event.Subscribe;
  9. import org.spongepowered.api.event.entity.player.PlayerInteractBlockEvent;
  10. import org.spongepowered.api.event.state.ServerStartedEvent;
  11. import org.spongepowered.api.item.ItemTypes;
  12. import org.spongepowered.api.item.inventory.ItemStack;
  13. import org.spongepowered.api.plugin.Plugin;
  14. import org.spongepowered.api.service.sql.SqlService;
  15. import org.spongepowered.api.text.Texts;
  16.  
  17. import java.sql.*;
  18.  
  19. @Plugin(id = "TestPlugin", name = "TestPlugin", version = "0.1")
  20. public class TestPlugin {
  21.  
  22.     public static final String JDBC_URL = "jdbc:h2:./mods/TestPlugin/data.db";
  23.     public static Game game;
  24.  
  25.     @Inject
  26.     protected Logger logger;
  27.  
  28.     @Subscribe
  29.     public void onInitialization(ServerStartedEvent event) {
  30.         game = event.getGame();
  31.         logger.info("Starting TestPlugin");
  32.     }
  33.  
  34.     @Subscribe
  35.     public void onPlayerInteract(PlayerInteractBlockEvent event){
  36.         Player player = event.getPlayer();
  37.         if(player.getItemInHand().isPresent()) {
  38.             ItemStack itemstack = player.getItemInHand().get();
  39.             if (event.getInteractionType().getName().equals("ATTACK")) {
  40.                 if (itemstack.getItem().equals(ItemTypes.STICK)) {
  41.                     player.sendMessage(Texts.of("Trying to create table."));
  42.                     try{
  43.                         createDB();
  44.                     }catch(SQLException e){
  45.                         logger.error("CreateDB: SQLException");
  46.                     }
  47.                 }else if (itemstack.getItem().equals(ItemTypes.CARROT)) {
  48.                     player.sendMessage(Texts.of("Trying to query table."));
  49.                     try{
  50.                         queryDB();
  51.                     }catch(SQLException e){
  52.                         logger.error("QueryDB: SQLException");
  53.                     }
  54.                 }
  55.             }
  56.         }
  57.     }
  58.  
  59.     private SqlService sql;
  60.     public javax.sql.DataSource getDataSource(String jdbcUrl) throws SQLException {
  61.         if (sql == null) {
  62.             sql = game.getServiceManager().provide(SqlService.class).get();
  63.         }
  64.         return sql.getDataSource(jdbcUrl);
  65.     }
  66.    
  67.     public void createDB() throws SQLException {
  68.         Connection conn = getDataSource(JDBC_URL).getConnection();
  69.         try {
  70.  
  71.             conn.prepareStatement("create table test(test1 varchar(20), test2 varchar(20), test3 varchar(20) )").execute();
  72.             conn.prepareStatement("insert into test values " +
  73.                     "('value11', 'value12', 'value13'), " +
  74.                     "('value21', 'value22', 'value23'), " +
  75.                     "('value31', 'value32', 'value33')").execute();
  76.  
  77.         } finally {
  78.             conn.close();
  79.             if (conn.isClosed() ){
  80.                 logger.info("Connection closed.");
  81.             }
  82.             logger.info("Table created.");
  83.         }
  84.     }
  85.     public void queryDB() throws SQLException {
  86.         Connection conn = getDataSource(JDBC_URL).getConnection();
  87.         PreparedStatement stmt = null;
  88.         ResultSet resultSet = null;
  89.         try {
  90.             stmt = conn.prepareStatement("SELECT * FROM test");
  91.             resultSet = stmt.executeQuery();
  92.             ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
  93.             int columnCount = resultSetMetaData.getColumnCount();
  94.             String output = "";
  95.             for (int x = 1; x <= columnCount; x++) output += resultSetMetaData.getColumnName(x) + ", ";
  96.             logger.info("Columns: " + output);
  97.             //while(resultSet.next()){ ... }
  98.         } finally {
  99.             if (resultSet != null)  resultSet.close();
  100.             if (stmt != null) stmt.close();
  101.             conn.close();
  102.             if (conn.isClosed() ){
  103.                 logger.info("Connection closed.");
  104.             }
  105.         }
  106.     }
  107.  
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement