Package l2p.database

Examples of l2p.database.ThreadConnection


    }
    if(_storedInDb)
    {
      return;
    }
    ThreadConnection con = null;
    FiltredPreparedStatement statement = null;
    try
    {
      con = L2DatabaseFactory.getInstance().getConnection();
      statement = con.prepareStatement("UPDATE items SET owner_id=?,count=?,loc=?,loc_data=?,enchant_level=?,shadow_life_time=?,item_id=?,flags=? WHERE object_id = ? LIMIT 1");
      statement.setInt(1, getOwnerId());
      statement.setLong(2, _count);
      statement.setString(3, _loc.name());
      statement.setInt(4, _loc_data);
      statement.setInt(5, getEnchantLevel());
View Full Code Here


  {
    if(isWear())
    {
      return;
    }
    ThreadConnection con = null;
    FiltredPreparedStatement statement = null;
    try
    {
      con = L2DatabaseFactory.getInstance().getConnection();
      statement = con.prepareStatement("REPLACE INTO items (owner_id,item_id,count,loc,loc_data,enchant_level,object_id,custom_type1,custom_type2,shadow_life_time,name,class,flags) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)");
      statement.setInt(1, getOwnerId());
      statement.setInt(2, _itemId);
      statement.setLong(3, _count);
      statement.setString(4, _loc.name());
      statement.setInt(5, _loc_data);
View Full Code Here

    stopLazyUpdateTask(true);
    if(AllowRemoveAttributes)
    {
      removeAttributes();
    }
    ThreadConnection con = null;
    FiltredPreparedStatement statement = null;
    try
    {
      con = L2DatabaseFactory.getInstance().getConnection();
      statement = con.prepareStatement("DELETE FROM items WHERE object_id = ? LIMIT 1");
      statement.setInt(1, _objectId);
      statement.executeUpdate();
      _existsInDb = false;
      _storedInDb = false;
      Stat.increaseDeleteItemCount();
View Full Code Here

  }

  public void updateRentTime(boolean inDebt)
  {
    setEndTimeInMillis(System.currentTimeMillis() + 86400000);
    ThreadConnection con = null;
    FiltredPreparedStatement statement = null;
    try
    {
      con = L2DatabaseFactory.getInstance().getConnection();
      statement = con.prepareStatement("UPDATE residence_functions SET endTime=?, inDebt=? WHERE type=? AND id=?");
      statement.setInt(1, (int) (getEndTimeInMillis() / 1000));
      statement.setInt(2, inDebt ? 1 : 0);
      statement.setInt(3, getType());
      statement.setInt(4, getResidenceId());
      statement.executeUpdate();
View Full Code Here

  /**
   * Помечает сообщение прочитанным.
   */
  public void markMailRead(int mailId)
  {
    ThreadConnection con = null;
    FiltredStatement statement = null;
    try
    {
      con = L2DatabaseFactory.getInstance().getConnection();
      statement = con.createStatement();
      statement.executeUpdate("UPDATE mail SET mail.unread=0 WHERE mail.messageId=" + mailId + " LIMIT 1");
    }
    catch(SQLException e)
    {
      e.printStackTrace();
View Full Code Here

   * Отправляет письмо. attachments может быть null. sender может быть null если attachments == null или пуст.
   * Для письма обязательно должны быть определены поля validtime (unixtime просрочки), topic и body. Остальные поля можно опустить, если установить флаг system.
   */
  public void sendLetter(Letter letter, int[] attachments, long[] attItemsQ, L2Player sender)
  {
    ThreadConnection con = null;
    FiltredPreparedStatement stmnt = null;
    ResultSet rs = null;
    try
    {
      sendLock.lock();
      con = L2DatabaseFactory.getInstance().getConnection();
      stmnt = con.prepareStatement("INSERT INTO `mail` (`sender`, `receiver`, `topic`, `body`, `attachments`, `price`, `expire`, `system`) VALUES (?,?,?,?,?,?,FROM_UNIXTIME(?),?)");
      stmnt.setInt(1, letter.senderId);
      stmnt.setInt(2, letter.receiverId);
      stmnt.setString(3, letter.topic);
      stmnt.setString(4, letter.body);
      stmnt.setInt(5, attachments == null ? 0 : attachments.length);
      stmnt.setLong(6, letter.price);
      stmnt.setLong(7, letter.validtime);
      stmnt.setInt(8, letter.system);
      stmnt.executeUpdate();
      DatabaseUtils.closeStatement(stmnt);
      stmnt = con.prepareStatement("SELECT LAST_INSERT_ID()");
      rs = stmnt.executeQuery();
      if(rs.next())
      {
        letter.id = rs.getInt(1);
      }
View Full Code Here

    }
  }

  public void attach(Letter letter, L2ItemInstance... items)
  {
    ThreadConnection con = null;
    FiltredPreparedStatement stmnt = null;
    try
    {
      sendLock.lock();
      if(items != null && items.length > 0)
      {
        con = L2DatabaseFactory.getInstance().getConnection();
        stmnt = con.prepareStatement("INSERT INTO `mail_attachments` (`messageId`, `itemId`) VALUES (?,?)");
        letter.attached = new GArray<TradeItem>(items.length);
        for(int i = 0; i < items.length; i++)
        {
          L2ItemInstance item = items[i];
          item.setOwnerId(letter.senderId);
View Full Code Here

  public GArray<L2ItemInstance> listAttachedItems(int mailId)
  {
    GArray<L2ItemInstance> ret = new GArray<L2ItemInstance>(8);
    FiltredPreparedStatement statement = null;
    ResultSet rs = null;
    ThreadConnection con = null;
    sendLock.lock();
    try
    {
      con = L2DatabaseFactory.getInstance().getConnection();
      statement = con.prepareStatement("SELECT itemId FROM mail_attachments WHERE messageId = ?");
      statement.setInt(1, mailId);
      rs = statement.executeQuery();
      while(rs.next())
      {
        ret.add(L2ItemInstance.restoreFromDb(rs.getInt("itemId"), false));
View Full Code Here

  /**
   * Удаляет письмо. Перед этим следует вернуть приложенные вещи.
   */
  public void deleteLetter(int... mailIds)
  {
    ThreadConnection con = null;
    FiltredPreparedStatement stmnt = null;
    sendLock.lock();
    try
    {
      con = L2DatabaseFactory.getInstance().getConnection();
      stmnt = con.prepareStatement("DELETE FROM mail WHERE messageId=? LIMIT 1");
      GArray<Letter> removed = new GArray<Letter>(mailIds.length);
      for(int id : mailIds)
      {
        Letter letter = lettersByIdCache.remove(id);
        if(letter == null)
        {
          continue;
        }
        GArray<Letter> cached = lettersBySenderCache.get(letter.senderId);
        if(cached != null)
        {
          cached.remove(letter);
          if(cached.isEmpty())
          {
            lettersBySenderCache.remove(letter.senderId);
          }
        }
        cached = lettersByReceiverCache.get(letter.receiverId);
        if(cached != null)
        {
          cached.remove(letter);
          if(cached.isEmpty())
          {
            lettersByReceiverCache.remove(letter.receiverId);
          }
        }
        removed.add(letter);
        stmnt.setInt(1, id);
        stmnt.executeUpdate();
      }
      DatabaseUtils.closeStatement(stmnt);
      stmnt = con.prepareStatement("DELETE FROM mail_attachments WHERE messageId=? LIMIT ?");
      for(Letter letter : removed)
      {
        stmnt.setInt(1, letter.id);
        stmnt.setInt(2, letter.attachments);
        stmnt.executeUpdate();
View Full Code Here

      Functions.addItem(sender, item, count);
      sender.sendPacket(new SystemMessage(SystemMessage.S1_ACQUIRED_THE_ATTACHED_ITEM_TO_YOUR_MAIL));
    }
    else
    {
      ThreadConnection con = null;
      FiltredPreparedStatement statement = null;
      ResultSet rs = null;
      try
      {
        sendLock.lock();
        con = L2DatabaseFactory.getInstance().getConnection();
        statement = con.prepareStatement("SELECT object_id FROM items WHERE owner_id = ? AND item_id = ? AND loc = 'INVENTORY' LIMIT 1"); // сперва пробуем найти в базе его адену в инвентаре
        statement.setInt(1, player);
        statement.setInt(2, item);
        rs = statement.executeQuery();
        if(rs.next())
        {
          int id = rs.getInt("object_id");
          DatabaseUtils.closeStatement(statement);
          statement = con.prepareStatement("UPDATE items SET count=count+? WHERE object_id = ? LIMIT 1"); // если нашли увеличиваем ее количество
          statement.setLong(1, count);
          statement.setInt(2, id);
          statement.executeUpdate();
        }
        else
        {
          DatabaseUtils.closeStatement(statement);
          statement = con.prepareStatement("INSERT INTO items_delayed (owner_id,item_id,`count`,description) VALUES (?,?,?,'mail')"); // иначе используем items_delayed
          statement.setLong(1, player);
          statement.setLong(2, item);
          statement.setLong(3, count);
          statement.executeUpdate();
        }
View Full Code Here

TOP

Related Classes of l2p.database.ThreadConnection

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.