当前位置: 首页 > 知识库问答 >
问题:

自动更改org.mysqlorg.sqlite

越学博
2023-03-14

连接类别:

public class ConectaSiscart { 
        static Connection connection = null;
        Statement stm = null;
        static String serverName = "192.168.0.222";    //caminho do servidor do BD  
        static String mydatabase ="risabel";        //nome do seu banco de dados  
        static String url = "jdbc:mysql://" + serverName + "/" + mydatabase;  
        static String username = "siscart";        //nome de um usuário de seu BD        
        static String password = "progsis";      //sua senha de acesso  





        public static Connection getConexao() {
            try {  
                // Carregando o JDBC Driver padrão  
                Class.forName("com.mysql.jdbc.Driver");  
                // Configurando a nossa conexão com um banco de dados//  


                ResultSet results = null;
               // connection = DriverManager.getConnection("jdbc:mysql://192.168.0.222/risabel?user=siscart&password=progsis");
                connection = DriverManager.getConnection(url, username, password);  
                System.out.println("Connection é " + connection);
                return connection;  
            }  catch (ClassNotFoundException e) {  //Driver não encontrado  
                System.out.println("O driver especificado nao foi encontrado.");  
                return null;  
            } catch (SQLException e) {  
                //Não conseguindo se conectar ao banco  
                System.out.println("Nao foi possivel conectar ao Banco de Dados.");  
                e.printStackTrace();
                return null;  

            }
}  

}

方法进行连接,此方法附加一个鼠标lostfocus事件,并从数据库返回我想要的项目:

private void puxaemailsiscart()  {
                ConectaSiscart puxaemail = new ConectaSiscart();
                Connection conectadomysql = ConectaSiscart.getConexao();
                String servico = null;
                    if(cboxservico.getSelectedItem() == "Registro de Imóveis") {
                    servico = "reg_cab";
                }
                Statement stm = null;
                ResultSet results = null;  
                 try {
                    stm = conectadomysql.createStatement ();
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }


                                try {
                    System.out.println();
                    results = stm.executeQuery ("SELECT * FROM  " + servico + " WHERE protocolo =" + tfProtocolo.getText());
                    if(results.next()) {

                    tfEmailParte.setText(results.getString("Email").toString());

                    } else { 
                        System.out.println("Protocolo nao encontrado");


                    }
                    results.close();
                    stm.close();






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

                } finally {
    System.out.println("Closing the connection.");
    if (conectadomysql != null) try { conectadomysql.close(); } catch (SQLException ignore) {}
}



            }
        });

但是由于某种原因,在第二次尝试中,它将org.mysql更改为org.sqlite.JDBC

JAVAsql。SQLException:无效的数据库地址:jdbc:mysql://192.168.0.222/risabel在org。sqlite。JDBC。createConnection(JDBC.java:110)位于

org.sqlite.连接(JDBC. java: 87)在

JAVAsql。司机经理。java上的getConnection(未知源代码)。sql。司机经理。在ConectaSiscart获取连接(未知源)。getConexao(ConectaSiscart.java:30)telaprincipal售价3美元。puxaemailsiscart(telaprincipal.java:359),telaprincipal售价3美元。focusLost(telaprincipal.java:350)在java。awt。AWTEventMulticaster。java上的focusLost(未知源代码)。awt。组成部分java上的processFocusEvent(未知源代码)。awt。组成部分java上的processEvent(未知源)。awt。容器java上的processEvent(未知源)。awt。组成部分java上的dispatchEventImpl(未知源代码)。awt。容器java上的dispatchEventImpl(未知源代码)。awt。组成部分java上的dispatchEvent(未知源)。awt。键盘焦点管理器。java上的redispatchEvent(未知源)。awt。DefaultKeyboardFocusManager。java上的typeAheadAssertions(未知源代码)。awt。DefaultKeyboardFocusManager。java上的dispatchEvent(未知源)。awt。组成部分java上的dispatchEventImpl(未知源代码)。awt。容器java上的dispatchEventImpl(未知源代码)。awt。组成部分java上的dispatchEvent(未知源)。awt。事件队列。java上的dispatchEventImpl(未知源代码)。awt。事件队列。在java上访问200美元(未知来源)。awt。事件队列3美元。在java上运行(未知源代码)。awt。事件队列3美元。在java上运行(未知源代码)。安全访问控制器。java上的doPrivileged(本机方法)。安全ProtectionDomain$1。java上的doIntersectionPrivilege(未知源代码)。安全ProtectionDomain 1美元。java上的doIntersectionPrivilege(未知源代码)。awt。事件队列4美元。在java上运行(未知源代码)。awt。事件队列4美元。在java上运行(未知源代码)。安全访问控制器。java上的doPrivileged(本机方法)。安全ProtectionDomain 1美元。java上的doIntersectionPrivilege(未知源代码)。awt。事件队列。java上的dispatchEvent(未知源)。awt。EventDispatchThread。java上的pumpOneEventForFilters(未知源代码)。awt。EventDispatchThread。java上的pumpEventsForFilter(未知源代码)。awt。EventDispatchThread。java上的pumpEventsForHierarchy(未知源代码)。awt。EventDispatchThread。java上的pumpEvents(未知源)。awt。EventDispatchThread。java上的pumpEvents(未知源)。awt。EventDispatchThread。在线程“AWT-EventQueue-0”java中运行(未知源)异常。lang.NullPointerException在telaprincipal 3美元。puxaemailsiscart(telaprincipal.java:367),telaprincipal售价3美元。focusLost(telaprincipal.java:350)在java。awt。AWTEventMulticaster。java上的focusLost(未知源代码)。awt。组成部分java上的processFocusEvent(未知源代码)。awt。组成部分java上的processEvent(未知源)。awt。容器java上的processEvent(未知源)。awt。组成部分java上的dispatchEventImpl(未知源代码)。awt。容器java上的dispatchEventImpl(未知源代码)。awt。组成部分java上的dispatchEvent(未知源)。awt。键盘焦点管理器。java上的redispatchEvent(未知源)。awt。DefaultKeyboardFocusManager。java上的typeAheadAssertions(未知源代码)。awt。DefaultKeyboardFocusManager。java上的dispatchEvent(未知源)。awt。组成部分java上的dispatchEventImpl(未知源代码)。awt。容器java上的dispatchEventImpl(未知源代码)。awt。组成部分java上的dispatchEvent(未知源)。awt。事件队列。java上的dispatchEventImpl(未知源代码)。awt。事件队列。在java上访问200美元(未知来源)。awt。事件队列3美元。在java上运行(未知源代码)。awt。事件队列3美元。在java上运行(未知源代码)。安全访问控制器。java上的doPrivileged(本机方法)。安全ProtectionDomain 1美元。java上的doIntersectionPrivilege(未知源代码)。安全ProtectionDomain 1美元。java上的doIntersectionPrivilege(未知源代码)。awt。事件队列4美元。在java上运行(未知源代码)。awt。事件队列4美元。在java上运行(未知源代码)。安全访问控制器。java上的doPrivileged(本机方法)。安全ProtectionDomain 1美元。java上的doIntersectionPrivilege(未知源代码)。awt。事件队列。java上的dispatchEvent(未知源)。awt。EventDispatchThread。java上的pumpOneEventForFilters(未知源代码)。awt。EventDispatchThread。java上的pumpEventsForFilter(未知源代码)。awt。EventDispatchThread。java上的pumpEventsForHierarchy(未知源代码)。awt。EventDispatchThread。java上的pumpEvents(未知源)。awt。EventDispatchThread。java上的pumpEvents(未知源)。awt。EventDispatchThread。运行(未知源)

为什么我不明白,我在另一个班上另一门课。java文件做了一个与sql lite数据库的连接,但在这一刻它在任何时候都没有被调用,为什么eclipse会犯这个错误?!?!!他认为“首先我在org.mysql上做得很好,现在在第二个方面我将尝试org.sqlite”

:|

共有1个答案

司空兴为
2023-03-14

我想我知道发生了什么。当你调用DriverManager.get连接时,它会一个接一个地尝试所有可用的驱动程序,直到一个成功。当它在驱动程序上调用连接时,如果是错误的驱动程序,它可以返回null,如果失败,它可以抛出一个异常,或者如果成功,它可以返回一个Connection对象。当所有的驱动程序都失败时,DriverManager会抛出它得到的第一个异常(如果有的话),或者创建并抛出一个“找不到合适的驱动程序”异常。

您的情况可能就是这样:
-DriverManager首先尝试sqlite驱动程序;它应该返回null,因为它是url的错误驱动程序,但它却引发了一个异常(这是sqlite驱动程序实现中的一个错误!)
-接下来,DriverManager正在尝试mysql驱动程序,该驱动程序由于其他原因(例如,服务器未运行或密码错误)而无法连接。
-DriverManager发现所有驱动程序都无法连接,因此它抛出了它得到的第一个异常,即来自sqlite的异常(由于该实现错误)

您可以做什么:
-暂时从类路径中删除sqlite驱动程序以解决mysql连接问题
-更好的方法是使用数据源,而不是DriverManager。Mysql示例:

MysqlDataSource ds = new MysqlDataSource();
ds.setServerName(serverName);
ds.setDatabaseName(mydatabase);
ds.setUser(username);
ds.setPassword(password);
connection = ds.getConnection();

或者,您可以使用数据库库来处理它

 类似资料:
  • 问题内容: 连接类别: 进行连接的方法,此方法附加了一个鼠标lostfocus事件,并从数据库中返回我想要的项目: 但是由于某种原因,在第二次尝试中,它将org.mysql更改为org.sqlite.JDBC java.sql.SQLException:无效的数据库地址: org.sqlite.JDBC.createConnection(JDBC.java:110)处的* jdbc:mysql:/

  • 我有一个图像视图和一堆图像,但问题是我想一个接一个地显示图像视图中的所有图像,图像应该像gif动画一样每秒钟或每0.2秒改变一次。

  • 问题内容: 在MySQL中,我有一个表,我想将值设置为 。这可能吗,这是什么查询语句? 问题答案: 您可以用来更改auto_increment初始值: 有关更多详细信息,请参见MySQL参考。

  • 问题内容: 作为Java学习的一部分,我使用netbeans制作了一个jForm,其中包含三个jTextField,供用户输入一些数字,然后将这些数字的总和显示在另一个jTextField中。当然,这非常简单,但是我希望能够在没有任何按钮的情况下执行此操作。我不知道每次修改3个文本字段中的任何一个时如何“更新”总和。谁能帮我? 这是我的代码(该表单是在设计模式下使用netbeans完成的): 问题

  • 问题内容: 最后,我将开发环境从runserver迁移到gunicorn / nginx。 将runserver的自动重载功能复制到gunicorn会很方便,因此当源更改时,服务器会自动重新启动。否则,我必须使用手动重新启动服务器。 有什么办法可以避免手动重启? 问题答案: 尽管这是一个古老的问题,但仅出于一致性考虑-因为19.0版本的gunicorn可以–reload选择。因此,不再需要第三方工

  • 我有一个“输入”快把我逼疯了。输入从PHP函数“回显”到HTML页面中。 我可以使用span“class=”product-qty-recish“(调用以下javascript脚本)增加/减少输入值: 让我抓狂的问题有2个: 1)弹出“alert(val);”两次!!!!一次是正确的数字,第二次是“undefined” 2)显然,我不能发送$.ajax调用,因为该值变成了未定义值。 知道吗???