有人可以查看我的代码
此查询从address_id
获取两个值postcode
和table1
。这里
AddressID
类有两个变量postcode
(字符串)和address_id
(整数):
@Select("SELECT address_id,postcode FROM table1 WHERE custom_field_1 = #{caseid}")
public List<AddressID> getAddressIdPostCodeList(String caseid);
以下是AddressID如何查看 AddressID.java
private int addressId;
private String postcode;
//getters and setters of Pstcode and addressId
@Override
public String toString() {
return "PostCode : " + this.postcode;
}
执行此查询时,我将address_id
的值设为0且需要postcode
。虽然DB的值address_id
不为零。我的代码失败了吗?
这是我调用的主要方法
List<AddressID> addresses = new ArrayList<>();
addresses = mainClassObject.getAddressIdPostCodeList(address.getcaseId());
理想情况下,地址对象应同时包含address_id
和postcode
。我得到了两个值,但address_id
我得到0并且postcode
的值正确。
答案 0 :(得分:0)
由于我不能发表评论,因为我没有50个声誉,我不得不在这里写,从你发布的代码很难说,给你一个答案我需要更多关于getAddressIdPostCodeList()
做什么的细节,因为你说数据库中的数据没有任何错误,错误必须在方法getAddressIdPostCodeList()
中和/或你如何处理查询的resultset
编辑:使用Oracle JDBC驱动程序的解决方案
由于我不知道如何使用Mybatis
,因此使用JDBC
来解决问题。
使用JDBC连接到Oracle
DB这里有一个简单的教程:
1。首先,您需要从Oracle下载de JDBC
驱动程序,具体取决于您的数据库版本(11g,12c,10g),驱动程序名为{{1}其中X是驱动程序的版本号
2。下载驱动程序后,需要将ojdbcX.jar
添加到项目中,如果您使用的是 Netbeans IDE ,则可以将其添加为这个:
如果您使用的是Eclipse,则可以使用以下链接查看如何添加.jar
文件:How to import a jar in Eclipse
3。在添加.JAR
非常简单之后,您只需要使用您的凭据连接到数据库,以下是如何执行此操作的示例:
.JAR
有关如何连接的更多信息,您可以查看oracle.jdbc Class OracleDriver文档
4. 在连接完成后非常简单,下面是一个简短的代码示例来获得您想要的结果,您需要使用您的连接详细信息修改它,并且您认为合适,因为我做了几个假设,这段代码只是一个例子:
<强> Main.Java 强>
Connection connection = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
connection = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "system", "password"); } catch (Exception ex) {
ex.printStackTrace();
}
<强> AddressID.java 强>
public class Main {
public static void main(String[] argv) {
List<AddressID> addresses;
SQLConnect conex= new SQLConnect();
String caseid="the id you want";
addresses=conex.getAddressIdPostCodeList(caseid);
}
<强> SQLConnect.Java 强>
public class AddressID {
private String addressId;
private String postcode;
}
答案 1 :(得分:0)
I did forgot to wtite my result query which is actually binding data fetched
from select query to the AddressId class..
@Results(id = "result",
value = {
@Result(property = "addressId", column = "address_id"),
@Result(property = "postcode", column = "postcode")
}
)