gpt4 book ai didi

Java Applet 不使用 jaybird 执行 class.forName()

转载 作者:行者123 更新时间:2023-12-02 00:11:31 26 4
gpt4 key购买 nike

我正在 eclipse 中开发一个小程序,当从 eclipse 的 AppletViewer 执行时,它可以正常工作,但是当从 .html 文件执行时,它不会执行 class.forName() 方法。

这里是.html

<!DOCTYPE html>
<html>
<body>

<p>Tarjetero.</p>

<applet
codebase="classes"
code="ap.class"
width=234 height=274
archive="jaybird-full-2.2.0.jar">
</applet>

</body>
</html>

在同一个文件夹中,我拥有所有创建的 .class 和 jaybird .jar 存档

这里是java文件

ap.java

import javax.swing.JApplet;


public class ap extends JApplet {

/**
*
*/
private static final long serialVersionUID = 1L;

ui inter = new ui();

@Override
public void init() {
// TODO Auto-generated method stub
//JPanel p = new JPanel();
//p.add(new JLabel("prueba"));
inter.setVisible(true);
this.add(inter);
}

@Override
public void start() {
// TODO Auto-generated method stub
super.start();
}

}

ui.java

import javax.swing.JPanel;


public class ui extends JPanel {

static JButton btnNewButton;
/**
*
*/
private static final long serialVersionUID = 1L;

/**
* Create the panel.
*/
public ui() {
setLayout(null);

btnNewButton = new JButton("New button");

btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
btnNewButton.setText("1");
ConexFirebird cf = new ConexFirebird();
btnNewButton.setText("2");
ResultSet rs = cf.EjecutarSentencia("SELECT nombre FROM CLIENTES;");
btnNewButton.setText("3");


if(rs.next())
{
btnNewButton.setText("datos");
}
else
{
btnNewButton.setText("nodatos");
}
} catch (Exception e) {
// TODO Auto-generated catch block
btnNewButton.setText(e.getMessage());
e.printStackTrace();
}

}
});
btnNewButton.setBounds(12, 12, 117, 24);
add(btnNewButton);

JRadioButton rdbtnNewRadioButton = new JRadioButton("New radio button");
rdbtnNewRadioButton.setBounds(8, 44, 149, 22);
add(rdbtnNewRadioButton);

JCheckBox chckbxNewCheckBox = new JCheckBox("New check box");
chckbxNewCheckBox.setBounds(18, 70, 129, 22);
add(chckbxNewCheckBox);

}
}

conexFirebird.java

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.*;
import javax.swing.JOptionPane;


/**
*
* @author Jose
*/
public class ConexFirebird {
// static File directorio= new File("//");
//static String DireccionBD="jdbc:firebirdsql:192.168.47.254/3050:/BBDD/ArenasTiradoJoseMTarjetero.fdb";
static String DireccionBD="jdbc:firebirdsql:localhost/3050:/var/lib/firebird/2.5/data/tarjetavisitas.fdb";
static String Usuario="sysdba";
//static String Contrasena="persiza";
String Contrasena="masterkey";

static String NombreDriver="org.firebirdsql.jdbc.FBDriver";

static Connection Conexion;
static Statement Consulta;
static ResultSet Resultado;

public ConexFirebird()
{
try
{

ui.btnNewButton.setText("10");
Class.forName(NombreDriver) ;
ui.btnNewButton.setText("11");
Conexion = DriverManager.getConnection(DireccionBD, Usuario, Contrasena);
ui.btnNewButton.setText("12");
Consulta = Conexion.createStatement();
ui.btnNewButton.setText("13");


}
catch (ClassNotFoundException e) {
// TODO: handle exception
ui.btnNewButton.setText("classNfound");
}
catch(Exception e)
{
ui.btnNewButton.setText("23");
JOptionPane.showMessageDialog(null, e.getMessage());

}
}

public void EjecutarInsert(String Sentencia)
{
try {
Consulta.execute(Sentencia);
JOptionPane.showMessageDialog(null, "Guardado correctamente", "Guardado", JOptionPane.INFORMATION_MESSAGE);
} catch (SQLException e) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(null, "Ese DNI ya se encuentra en la base de datos", "Error", JOptionPane.INFORMATION_MESSAGE);
}
}


public ResultSet EjecutarSentencia(String Sentencia)
{
try
{
Resultado = Consulta.executeQuery(Sentencia);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage()+"ejecutar sentencia");
}

return Resultado;
}


public void EjecutarUpdate(String Sentencia) throws SQLException
{
try
{
Consulta.executeUpdate(Sentencia);


}
catch(SQLException e)
{

//JOptionPane.showMessageDialog(null, e.getMessage());
throw new SQLException("");

}
}

public void CerrarConexion()
{
try
{
Consulta.close();
}
catch(Exception e)
{

}
}

public void insertarConBlob(String nombre, String dni, String correo, File fD, File fA)
{
try {
PreparedStatement ps;
if(fD != null && fA != null)
{
ps = Conexion.prepareStatement("INSERT INTO CLIENTES (ID, NOMBRE, DNI, CORREO, FOTODELANTE, FOTODETRAS ) VALUES ( gen_id(id_clientes, 1), '"+nombre+"', '"+dni+"', '"+correo+"', ?, ?)");
try{
ps.setBlob(1, new FileInputStream(fD));
ps.setBlob(2, new FileInputStream(fA));
ps.execute();
JOptionPane.showMessageDialog(null, "Guardado correctamente", "Guardado", JOptionPane.INFORMATION_MESSAGE);
}
catch(FileNotFoundException e)
{
JOptionPane.showMessageDialog(null, "No se encontro el archivo", "Error", JOptionPane.INFORMATION_MESSAGE);
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, "Ese DNI ya se encuentra en la base de datos", "Error", JOptionPane.INFORMATION_MESSAGE);
}
}
else if (fD != null)
{
ps = Conexion.prepareStatement("INSERT INTO CLIENTES (NOMBRE, DNI, CORREO, FOTODELANTE) VALUES ( '"+nombre+"', '"+dni+"', '"+correo+"', ?)");
try{
ps.setBlob(1, new FileInputStream(fD));
ps.execute();
}
catch(FileNotFoundException e)
{
JOptionPane.showMessageDialog(null, "No se encontro el archivo", "Error", JOptionPane.INFORMATION_MESSAGE);
}
}
else if (fA != null)
{
ps = Conexion.prepareStatement("INSERT INTO CLIENTES (NOMBRE, DNI, CORREO, FOTODETRAS) VALUES ( '"+nombre+"', '"+dni+"', '"+correo+"', ?)");
try{
ps.setBlob(1, new FileInputStream(fA));
ps.execute();
}
catch(FileNotFoundException e)
{
JOptionPane.showMessageDialog(null, "No se encontro el archivo", "Error", JOptionPane.INFORMATION_MESSAGE);
}
}






} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

我知道所有这些 java 文件都可以改进。我必须使用该按钮标签更改来调试,因为我无法在iceweasel中找到控制台

操作系统:Debian浏览器: 冰鼬java jdk 1.6杰鸟2.2.0

提前致谢,您只需提出即可回答问题!谢谢!

最佳答案

Jaybird 的设计并未考虑 Applet,据我所知,它会生成错误(在浏览器中运行时),因为它尝试读取系统属性。它将在 AppletViewer 中工作,因为 - afaik - 以所有权限运行。

另请参阅:

另请确保将 jaybird-2.2.1.jarconnector-api-1.5.jarjaybird-full-2.2 结合使用.1.jar(其中包含来自connector-api的类),因为没有它驱动程序就无法工作。

关于Java Applet 不使用 jaybird 执行 class.forName(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12732973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com