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

java jdbc中的连接异常

李博达
2023-03-14

这是类的构造函数之一。新对象在数据库中创建新记录。当我在源代码中“手工”创建这个对象时,一切都很好。但是当我将创建声明放入按钮的actionlistener中时,编译器返回sql异常。

public Pacjent()
    {
        try
        {
            Connection conn = DataBase.Connect();
            Statement stat = conn.createStatement();
            String addRecord = "INSERT INTO records VALUES (12365, 'Bond', 'James', 'M', '12.41.1953r', 'Londyn', 'none');";
            stat.executeUpdate(addRecord);        
    }
    catch(SQLException e)
    {
        e.printStackTrace();
    }    

}

我得到的例外是

saveButton.addActionListener
        (
            new ActionListener() 
            {
                @Override
                public void actionPerformed(ActionEvent event) 
                {
                    Pacjent nowy = new Pacjent();
                }
            }
        );
public class DataBase 
{
    public static Connection Connect()
    {
        return CONNECTION;
    }        

    private static Connection CONNECTION = CreateConnection();

    private static Connection CreateConnection() 
    {
        try 
        {
            Class.forName("org.postgresql.Driver");

            Properties props = new Properties();
            FileInputStream in = new FileInputStream("D:\\projekty\\Arch\\src\\klasySilnika\\bazadanych.properties");
            props.load(in);
            in.close();

            String drivers = props.getProperty("jdbc.drivers");
            if(drivers != null) System.setProperty("jdbc.drivers", drivers);
            String url = props.getProperty("jdbc.url");
            String username = props.getProperty("jdbc.username");
            String password = props.getProperty("jdbc.password");

            return DriverManager.getConnection(url, username,password);
        }
        catch (ClassNotFoundException e) 
        {
            System.out.println("NO JDBC driver");
        return null;
    }
        catch(IOException e)
        {
            System.out.println("Where is properties file?");
            return null;
        } 
        catch(SQLException e)
        {
            System.out.println("error: adress, user, password?");
            return null;
        }
        finally
        {
           // ...   
        }
    }
}

共有1个答案

冯驰
2023-03-14

可能连接实例在其他地方关闭了,因为你的连接是静态的,整个应用程序只有一个实例的连接,所以你可以把连接改为多实例的,或者通过数据源来管理,比如:C3P0,dhcp

 类似资料:
  • 我只是使用 Jmeter 和 MySQL 设置一个 JDBC 连接。我下载了jar文件并将相同的文件放在Jmeter的Lib文件夹中。之后,我创建了一个 JDBC 连接配置和 JDBC 请求。我还添加了一个查看结果树侦听器。 当我运行请求时收到以下错误:“无法创建池连接工厂(服务器时区值'EDT'无法识别或代表多个时区。如果要利用时区支持,则必须将服务器或 JDBC 驱动程序(通过服务器时区配置属

  • 问题内容: 是否有一个名为JDBC中,而不是那些位置参数,比如在下面的查询? 问题答案: JDBC不支持命名参数。除非你必须使用普通的JDBC(这会造成麻烦,让我告诉你),否则我建议使用Springs Excellent JDBCTemplate,它可以在没有整个IoC容器的情况下使用。 NamedParameterJDBCTemplate支持命名参数,你可以像这样使用它们:

  • 代码片段如下所示: 如果有人有决议,请帮忙?

  • 我对Hibernate不太熟悉。谁能帮我解决代码中出现的错误。 我正在使用Eclipse Helios,Hibernate 3 生成的类和配置文件,如: Emp.java 部门java hibernate.cfg.xml Emp.hbm.xml 部门hbm。xml Test.java 我得到的例外是: 线程“main”组织中出现异常。冬眠HibernateException:无法分析配置:/hib

  • 以下错误在连接 sqlserver(java) 时抛出。我不知道这个问题的根本原因。 如果有人遇到这个问题,请让我们知道,如何解决这个问题?

  • 这是我第一次使用RMI,基本上我设法在我的PC本地运行下面的RMI示例,但不是通过两个独立的Linux机器。 服务器界面: 服务器: 客户: 客户端接口与服务器接口相同 这是我为了运行rmi示例所做的: 1) 在服务器端,我创建了存根 2) 跑马场 3)运行服务器 4)我将存根从服务器端复制到客户端到同一个包中 5) 运行客户端 运行客户端后,我收到以下错误消息: 线程“main”java中出现异