使用jdbc将值插入数据库

时间:2013-04-18 17:57:35

标签: java database ms-access jdbc-odbc

我正在使用MS-Access和Java连接JDBC-ODBC驱动程序。如下面的代码,我正在尝试创建一个注册文本框,但是当我添加值时,我只在数据库中得到结果“null”。如何获得我插入的真正价值?感谢

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    Connection con = DriverManager.getConnection("jdbc:odbc:ADB");

    Statement statement = con.createStatement();

    statement.executeUpdate("insert into Login " + "values  ('"+uname+"','"+pwd+"')"); 

    uname = userTextBox.getText();
    pwd = passTextBox.getText();

7 个答案:

答案 0 :(得分:3)

从它的外观来看,你的语句代码没问题。问题是您在执行它之后初始化unamepwd

我假设你上面的某个地方已经将这些变量初始化为null。因此,在执行语句时,必须插入的值为null

答案 1 :(得分:1)

根据您提供的信息量,如果您显示完整的代码,我可以相应地更新我的答案,我假设您需要更改此信息:

statement.executeUpdate("insert into Login " + "values  ('"+uname+"','"+pwd+"')"); 

uname = userTextBox.getText();
pwd = passTextBox.getText();

要:

uname = userTextBox.getText();
pwd = passTextBox.getText();

statement.executeUpdate("insert into Login " + "values  ('"+uname+"','"+pwd+"'")"); 

此外,您的查询容易受到SQL注入攻击。始终使用类似于以下的参数化查询:

insert into Login values (?,?)

答案 2 :(得分:0)

在执行更新之前,您需要初始化{{1and1}}:

uname

答案 3 :(得分:0)

您需要从

切换订单
statement.executeUpdate("insert into Login " + "values  ('"+uname+"','"+pwd+"')"); 
uname = userTextBox.getText();
pwd = passTextBox.getText();

uname = userTextBox.getText();
pwd = passTextBox.getText();
statement.executeUpdate("insert into Login " + "values  ('"+uname+"','"+pwd+"')"); 

否则unamepwd将为空(假设在此代码之前未给出任何值)

答案 4 :(得分:0)

更新查询不会返回插入或修改的值。 您可以做的是,不是让DB自动生成新条目的ID,而是在插入之前自己生成它,然后使用该ID查询DB。

您应该查看涵盖此主题的此堆栈溢出帖子: How to get the insert ID in JDBC?

答案 5 :(得分:0)

你只需要先获取价值观&然后把查询:)

String uname = userTextBox.getText();
String pwd = passTextBox.getText();

try          
    {     

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");    

    Connection con = DriverManager.getConnection("jdbc:odbc:ADB");    

    Statement statement = con.createStatement();     

    statement.executeUpdate("insert into Login " + "values  ('"+uname+"','"+pwd+"')");     
     }
   catch(Exception e)        
    {      
       System.out.println(e);      
    }    

答案 6 :(得分:0)

//before using the variables need to initialize 

uname = userTextBox.getText();
pwd = passTextBox.getText();

statement.executeUpdate("insert into Login " + "values  ('"+uname+"','"+pwd+"')");