贪食狐
本帖最后由 魁魅 于 2017-2-7 15:25 编辑

问题是这样的_(:зゝ∠)_ 我写了个插件功能大概就是玩家加入服务器的时候会检测他有没有选择过性别如果没有的话会跳出GUI让玩家选择性别
然后我的数据是存储在mysql里面的所以就用到了sqlibrary
_(:зゝ∠)_经过一番努力后我知道了怎么用sqlibrary但是到查询玩家的时候就又卡主了
_(:зゝ∠)_因为首先我需要根据UUID来查询这个玩家并且我需要查询这个玩家的SEX值是多少
_(:зゝ∠)_然而sqlibrary的模板里面只有怎么查询单个的没有怎么查询多个的
  1. @EventHandler
  2.     public void playerJoinEvent(PlayerJoinEvent event) {
  3.         Player player =Bukkit.getPlayer(event.getPlayer().getName());
  4.         Condition condition = Condition.fieldEquals("player_uuid", player.getUniqueId(),
  5.                 gouPlayerFactory.getInstance().getProfile());
  6.         List<gouPlayerModel> models = gouPlayerFactory.getInstance().select(condition);
  7.         if (models == null) {
  8.             //ERROR
  9.             return;
  10.         }
  11.         if (models.size() < 1) {
  12.             System.out.println("null");
  13.             return;
  14.         }
  15.         gouPlayerModel tomModel = models.get(0);
  16.         System.out.println(tomModel);

  17.         if (!event.getPlayer().hasPlayedBefore()) {
  18.             //显示GUI
  19.             //没有加入过服务器
  20.             System.out.println("join");
  21.         }
  22.     }
复制代码
_(:зゝ∠)_经过研究已解决该问题
_(:зゝ∠)_留下解决后代码以供后人学习


  1. @EventHandler
  2.     public void playerJoinEvent(PlayerJoinEvent event) {
  3.         Player player =Bukkit.getPlayer(event.getPlayer().getName());
  4.         Condition selectuuid = Condition.fieldEquals("player_uuid", player.getUniqueId(),
  5.                 gouPlayerFactory.getInstance().getProfile());
  6.         Condition selectsex=Condition.fieldEquals("player_sex",0,gouPlayerFactory.getInstance().getProfile());
  7.         ConditionBuilder conditionBuilder=new ConditionBuilder(selectuuid).and(selectsex);
  8.         List<gouPlayerModel> models = gouPlayerFactory.getInstance().select(conditionBuilder.build());
  9.         if (models == null) {
  10.             //ERROR
  11.             return;
  12.         }
  13.         if (models.size() < 1) {
  14.             System.out.println("null");
  15.             return;
  16.         }
  17.         gouPlayerModel tomModel = models.get(0);
  18.         System.out.println(tomModel+"suss");

  19.         if (!event.getPlayer().hasPlayedBefore()) {
  20.             System.out.println("join");
  21.         }
  22.     }
复制代码

如果后人有相关方面的问题可以私信我一起解决

TimmyOVO
本帖最后由 星燚 于 2017-2-7 11:20 编辑

为什么不直接用sql语句对mysql数据库进行操作。。
sql语句还是要学的
那个轮子难免有不全的地方
SELECT * FROM tablename WHERE indexUUID = 'uuid';
然后while循环把返回的ResultSet遍历
然后然后再getInt sex的index返回性别

贪食狐
我只是本着学习的态度去弄的,毕竟难念以后有可能用到呢_(:зゝ∠)_

loveqmxd
不是jdbc吗

xiweihai
星燚 发表于 2017-2-7 11:11
为什么不直接用sql语句对mysql数据库进行操作。。
sql语句还是要学的
那个轮子难免有不全的地方

这样怕是要被sql注入哦,参数化操作数据库才是出路

TimmyOVO
xiweihai 发表于 2017-3-4 02:25
这样怕是要被sql注入哦,参数化操作数据库才是出路

里面只有uuid是变量,难不成uuid还是玩家能改的吗- -

xiweihai
难道他的程序就这一个sql语句?

mcxf1
565555555555555555555