Я пытаюсь получить доступ к базе данных с другого сервера, но пока безуспешно. Это событие происходит, когда я выбираю object
«ВСЕ» в моем combobox
, таблица загружает все данные с разных серверов.
Текущий код, который я подключил только к локальному хосту, работает нормально. Однако, когда я пытаюсь подключиться к другому серверу для загрузки их данных, я получаю синтаксическую ошибку при попытке вставить 192.168.1.51.sales.items
в String sqlall
. Кроме того, я попытался изменить prepareStatement
, написав cn.prepareStatement(sqlall) + cn1.prepareSatement("union Select * from 192.168.1.52.sales.items);
У меня нет больше идей о том, как подключиться к обоим серверам.
Я хотел бы заранее извиниться, если вы найдете мою кодировку немного грязной. Спасибо. Мой код выглядит следующим образом:
private void combobox_branchItemStateChanged(java.awt.event.ItemEvent evt) {
Object branch = combobox_branch.getSelectedItem();
try
{
// All is selected
if("All".equals(branch))
{
Connection cn = db.itemconnector.getConnection();
String sqlall = " Select * from sales2.items union Select * from sales1.items union Select * from sales.items " ; //I tried accessing multiple databases in my own localhost and worked.
PreparedStatement ps = cn.prepareStatement(sqlall);
ResultSet rs = ps.executeQuery();
DefaultTableModel tm = (DefaultTableModel)itemTable.getModel();
tm.setRowCount(0);
while(rs.next())
{
Object o[] = {rs.getInt("id"), rs.getString("location"), rs.getString("product_name"),rs.getString("product_category"),rs.getString("product_description"),rs.getInt("product_stock"), rs.getFloat("product_price"), rs.getString("product_status")};
tm.addRow(o);
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, e, "Connection Error", JOptionPane.ERROR_MESSAGE);
}
}
И у меня есть класс в другом пакете, и это его код:
package db;
import java.sql.*;
public class itemconnector {
public static Connection getConnection() throws Exception
{
Class.forName("com.mysql.jdbc.Driver");
Connection cn = (Connection)
DriverManager.getConnection("jdbc:mysql://192.168.1.50:3306/sales","root","");
return cn;
}