gpt4 book ai didi

java - 我试图在 java 中的 sqlite 嵌入式数据库中插入一行。插入后,更改仅在该程序中可见

转载 作者:太空宇宙 更新时间:2023-11-04 13:24:30 28 4
gpt4 key购买 nike

我正在尝试在 Java 中的 SQLite 嵌入式数据库中插入行。添加后,更改仅在该程序中可见。我看不到 sqlite 管理器中的更改。当我尝试在 sqlite 管理器中插入一行时,程序中显示的插入值将被删除。并显示我使用 sqlite 管理器添加的那些行。请帮忙..

连接类别

import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;


public class HsqlConn {

//public static void main(String[] args) {
public static Connection hconn = null;
public static Statement hstmt = null;
public static PreparedStatement pst = null;
public static void hConnectDb(){

try{
Class.forName("org.sqlite.JDBC");
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL resource = classLoader.getResource("PS/PSDB.sqlite");
hconn = DriverManager.getConnection("jdbc:sqlite::resource:"+resource);
}
catch(Exception se){
//Handle errors for JDBC
se.printStackTrace();
}



}
}

使用该数据库的主类

private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {                                         
// TODO add your handling code here:
try{
hConnectDb();
String sql1 = "Insert into Bill (billNo,date,principal,principalText,custId,dueDate) values (?,?,?,?,?,?)";
pst = hconn.prepareStatement(sql1);
pst.setString(1,BillNoField.getText());
pst.setString(2,dateField1.getText());
pst.setString(3,PrincipalField.getText());
pst.setString(4,PrincipaTextField.getText());
pst.setString(5,custIdField.getText());
pst.setString(6,dueDateField.getText());
pst.executeUpdate();
pst.close();
hconn.close();
JOptionPane.showMessageDialog(null, "saved");
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}

最佳答案

根据sqlite-jdbc的文档,以“jdbc:sqlite::resource:”开头的连接 URL 字符串用于加载只读 SQLite 数据库:

2009 May 19th: sqlite-jdbc-3.6.14.1 released.

  • This version supports "jdbc:sqlite::resource:" syntax to access read-only DB files contained in JAR archives, or external resources specified via URL, local files address etc. (see also the

您需要specify a file in the filesystem包含您的 SQLite 数据库。在 Windows 上,示例如下:

Connection connection = DriverManager.getConnection("jdbc:sqlite:C:/work/mydatabase.db");

在类 UNIX 系统上,示例如下:

Connection connection = DriverManager.getConnection("jdbc:sqlite:/home/leo/work/mydatabase.db");

关于java - 我试图在 java 中的 sqlite 嵌入式数据库中插入一行。插入后,更改仅在该程序中可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32796442/

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