2013-01-19 2 views
0

У меня есть класс, написанный на PHP, который я использую для связи с базами данных моего сайта. Я также пишу приложение Java, которое также будет связываться с базой данных. Мне было интересно, можно ли использовать одну и ту же структуру, но преобразовать ее в java, и есть ли какие-то проблемы, которые мне нужно будет рассмотреть, если я это сделаю. Вот мой PHP класс ...Преобразование источника PHP в источник Java?

<?php 

class Database { 

    private static $instance = null; 
    private $connection; 
    private $selected_database; 
    private $last_query; 

    public static function getInstance() { 
     if (self::$instance != null) { 
      return self::$instance; 
     } else { 
      return new self; 
     } 
    } 

    function __construct() { 
     $this->open_connection(); 
    } 

    private function open_connection() { 
     $this->connection = mysql_connect(DB_HOST, DB_USER, DB_PASS); 
     if (!$this->connection) { 
      die('Database connection failed: ' . mysql_error()); 
     } else { 
      $this->selected_database = mysql_select_db(DB_NAME, $this->connection); 
      if (!$this->selected_database) { 
       die('Database selection failed: ' . mysql_error()); 
      } 
     } 
    } 

    private function close_connection() { 
     if (isset($this->connection)) { 
      mysql_close($this->connection); 
      unset($this->connection); 
     } 
    } 

    public function query($sql) { 
     $this->last_query = $sql; 
     $result = mysql_query($sql, $this->connection); 
     $this->confirm_query($result); 
     return $result; 
    } 

    private function confirm_query($result) { 
     if (!$result) { 
      die('Database query failed: ' . mysql_error() . '<br>Last SQL query: ' . $this->last_query); 
     } 
    } 

    public function escape_value($string) { 
     return mysql_real_escape_string($string); 
    } 

    public function fetch_array($result) { 
     return mysql_fetch_array($result); 
    } 

    public function fetch_assoc($result) { 
     return mysql_fetch_assoc($result); 
    } 

    public function num_rows($result) { 
     return mysql_num_rows($result); 
    } 

    public function insert_id() { 
     return mysql_insert_id($this->connection); 
    } 

    public function affected_rows() { 
     return mysql_affected_rows($this->connection); 
    } 

    public function get_fields_from($table_name) { 
     $result = $this->query("SHOW COLUMNS FROM `{$this->escape_value($table_name)}`"); 
     $fields = array(); 
     while ($row = $this->fetch_assoc($result)) { 
      $fields[] = $row['Field']; 
     } 
     return $fields; 
    } 

} 

?> 
+0

Если определено, да, вы можете конвертировать программу с любого языка на другой, и, конечно же, вы должны сами написать код! –

+0

И я не хочу, чтобы кто-нибудь написал для меня код, где это весело? Я просто хотел узнать все, о чем я должен был подумать, когда вы конвертируете этот код. –

+0

Если я буду продолжать голосовать за каждый вопрос, который я публикую, просто из-за того, как я отреагировал на что-то на прошлой неделе, тогда я перестану задавать вопросы. Я создаю сайт онлайн-покера, вы действительно хотите упустить шанс увидеть часть этого кода? –

ответ

4

Нет, вы можете создать класс в Java, который имеет структуру, то есть почти как выше.

or die() как бросок Exception. Вы должны знать, что существуют разные способы возврата данных из базы данных в Java и PHP. PHP часто использует массивы или ассоциативные массивы. В Java вы получите «указатель» на результат. Вы должны решить, хотите ли вы передать данные в массив из-за потребления памяти.

Смежные вопросы