java通过jdbc查找数据,查出id值,如何通过整型变量存储这个id值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java通过jdbc查找数据,查出id值,如何通过整型变量存储这个id值相关的知识,希望对你有一定的参考价值。

求帮助,谢谢

参考技术A 你在设置数据库的这个属性,例如学号,在数据库里就要设成INT型。在JAVA这个学生对象的属性Student_id也要设成int型,这样在执行jdbc的查询时。就能通过语句查询到了。 参考技术B 我想楼主问的是转换问题,
如果查出来的是id是数字组成的字符串str_id,
那么可以用下面的静态方法转换
int id = Integer.parseInt(str_id) ;
参考技术C int num = pstmt.getInt("列名");
就是这样啊。pstmt是一个会话对象,preparedStatement本回答被提问者采纳

如何通过 JDBC 将值插入 Microsoft Access 数据库?

【中文标题】如何通过 JDBC 将值插入 Microsoft Access 数据库?【英文标题】:How do I Insert values into a Microsoft Access Database through JDBC? 【发布时间】:2009-04-17 22:26:56 【问题描述】:

我用 Java 创建了一个字母游戏,我需要通过 JDBC 使用 Microsoft Access 数据库在其中包含一个高分函数。数据库中的表包含以下字段

Table Name: Scores

Name       (Text)
Difficulty (Text)
Characters (Number)
Accuracy   (Text)
Time       (Text)
Score      (Text)

我需要一条 SQL 语句从 Java 中插入值以更新 Microsoft Access 数据库表。

【问题讨论】:

【参考方案1】:

尝试以下方法:

String dataSourceName = "my_ODBC_DSN_name";
String username = "username";
String password = "password";
String url = "jdbc:odbc:" + dataSourceName;

Connection con = null;
try 
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  con = DriverManager.getConnection(url, username, password);

  PreparedStatement pst = con.prepareStatement("INSERT INTO Scores "
           + "(Name, Difficulty, Characters, Accuracy, Time, Score) "
           + "VALUES (?, ?, ?, ?, ?, ?)");

  pst.setString(1, "Name String");
  pst.setString(2, "Difficulty String");
  pst.setInt(3, 20);
  pst.setString(4, "Acurracy String");
  pst.setString(5, "Time String");
  pst.setString(6, "Score String");

  pst.executeUpdate();
 catch (SQLException e) 
  e.printStackTrace();
 catch (ClassNotFoundException e) 
  e.printStackTrace();
 finally 
  if (con != null)
    try 
      con.close();
     catch (SQLException e) 
      e.printStackTrace();
    

您必须先在 Windows 控制面板中设置 ODBC DSN。它位于控制面板 -> 管理工具 -> 数据源

除了您的主要问题之外,我还赞同 Russ Cam 的意见,即您可能应该修改您的数据库架构,以便为时间和分数列使用适当的列类型,并可能为准确性和难度使用适当的列类型。在规范化设计中,“姓名”也将是另一个表的外键(类似于 player_id),该表将保存每个玩家的详细信息。

【讨论】:

【参考方案2】:

插入

INSERT INTO Scores (Name, Difficulty, Characters, Accuracy, Time, Score)
VALUES ('Name Value', 'Difficulty Value', 3, 'High', '10:30', '235');

为了更新,您需要在 Scores 表中添加一个PRIMARY KEY,以便您只更新一条特定记录(除非您打算更新多条记录)。无论如何,我都会建议在桌面上进行 PK。

此外,我注意到难度、准确性、时间和分数都是基于文本的字段 - 现在我不知道您的数据库架构/设计是什么样的,但难度、准确性和分数让我印象深刻自然,而时间听起来像日期/时间。请查看MS Access (JET DB Engine) Data types 了解更多信息。

编辑:取自 cmets

查看here,看起来在 JDBC 中参数化 SQL 语句的最佳方法是使用 JDBC API 编写一个存储过程准备好的语句),然后在准备好的语句中设置您需要作为参数插入的值。

这是JDBC tutorial on updating 和a tutorial on inserting。

【讨论】:

我在Scores表中有一个主键,需要插入的值在JAVA中是可变的,它们是如何插入的?? 每次玩游戏时数值都会改变 值会改变,还是会在表中插入新记录?我不熟悉 JDBC,但如果它类似于 DAO、ADO 或 ADO.NET,那么您应该能够使用参数构建一个命令对象,其值将是您希望插入/更新的值,然后执行该对象命令对象,使用与数据库的连接 看这里,java.sun.com/docs/books/tutorial/jdbc/overview/index.html 看起来最好的方法是使用 JDBC API 编写存储过程,然后在准备好的语句中设置需要插入的值作为参数 这里有一个关于更新java.sun.com/docs/books/tutorial/jdbc/basics/updating.html和插入jdbc-tutorial.com/jdbc-prepared-statements.htm的JDBC教程

以上是关于java通过jdbc查找数据,查出id值,如何通过整型变量存储这个id值的主要内容,如果未能解决你的问题,请参考以下文章

JAVA-JDBC连接数据库一个问题:我采用通过事务提交添加属性值,为啥没有虽然没有添加,但是ID自动增加

如何通过 JDBC 将值插入 Microsoft Access 数据库?

通过猫鼬中的两个值查找数据

mysql取多个最大值

java通过jdbc访问mysql,update数据返回值的思考

jmeter通过org.sqlite.JDBC驱动连接db数据库