英文:
My insertion is not able to be actualized through PreparedStatement
问题
一旦我执行以下代码,我意识到插入操作无法完成。在执行prepstmt.executeUpdate()
后,我可以看到row
的值为1,但插入的记录未在数据库中列出。我还使用resultset
来验证是否创建了相关记录,但在那一行我遇到了空指针异常。可能的原因是什么?有任何想法吗?
英文:
Once i execute the following code, realize that insertion can't be done. i can see row value is 1 after executing of prepstmt.executeUpdate() but insertion record is not listed in database. i also used resultset to verify if concerned record is created but on that line i'm facing with null pointer exception. what might be the reason ? any idea ?
Class.forName("oracle.jdbc.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@172.31.60.83:1521:TBCEBTRL", "TESTUSER","TESTUSER");
String sqlQuery = "INSERT INTO PROVISIONING_MGNT.MERNIS_CUSTOMER_INFO (TC_ID,MOTHER_TC_ID,FATHER_TC_ID, BIRTHPLACE_CODE,SPOUSE_TC_ID, NAME, SURNAME, SEX, FATHER_NAME, MOTHER_NAME, DATE_OF_BIRTH_YEAR, DATE_OF_BIRTH_MONTH, DATE_OF_BIRTH_DAY, PLACE_OF_BIRTH, STATUS, MARITAL_STATUS,RELIGION,DATE_OF_DEATH_YEAR,DATE_OF_DEATH_MONTH,DATE_OF_DEATH_DAY, PROVINCE_CODE, PROVINCE_NAME, COUNTY_CODE, COUNTY_NAME, VOLUME_CODE, VOLUME_NAME, FAMILY_SEQUENCE_NUMBER, PERSON_SEQUENCE_NUMBER,ERROR_CODE,ERROR_DESCRIPTION,CREATION_TIME,DOCUMENT_NO) "
+ "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement prepstmt = conn.prepareStatement(sqlQuery);
//Statement stmt = conn.createStatement();
Random r = new Random();
int number = 1000000000 + (int)(r.nextDouble() * 999999999);
ThreadLocalRandom random = ThreadLocalRandom.current();
long x = random.nextLong(10_000_000_000L, 100_000_000_000L);
System.out.println(random.nextLong(10_000_000_000L, 100_000_000_000L));
prepstmt.setLong(1, x);
prepstmt.setNull(2, java.sql.Types.NULL );
prepstmt.setNull(3, java.sql.Types.NULL );
prepstmt.setInt(4, 1542);
prepstmt.setNull(5, java.sql.Types.NULL );
prepstmt.setString(6, "TEST");
prepstmt.setString(7, "TEST");
prepstmt.setString(8, "Male");
prepstmt.setString(9, "Father");
prepstmt.setString(10, "Mother");
prepstmt.setInt(11,1968);
prepstmt.setInt(12,10);
prepstmt.setInt(13,10);
prepstmt.setString(14,"ADANA");
prepstmt.setString(15,"Open");
prepstmt.setString(16,"Single");
prepstmt.setNull(17, java.sql.Types.NULL );
prepstmt.setNull(18, java.sql.Types.NULL );
prepstmt.setNull(19, java.sql.Types.NULL );
prepstmt.setNull(20, java.sql.Types.NULL );
prepstmt.setInt(21,1);
prepstmt.setString(22,"ADANA");
prepstmt.setInt(23,1101);
prepstmt.setString(24,"TEST");
prepstmt.setInt(25,1);
prepstmt.setString(26,"MERKEZ");
prepstmt.setInt(27,39);
prepstmt.setInt(28,2);
prepstmt.setNull(29, java.sql.Types.NULL );
prepstmt.setNull(30, java.sql.Types.NULL );
prepstmt.setNull(31, java.sql.Types.NULL );
prepstmt.setInt(32,number);
int row = prepstmt.executeUpdate();
System.out.println(number);
System.out.println(row);
ResultSet rs = prepstmt.getResultSet();
rs.next();
String name = rs.getString("NAME");
System.out.println(name);
专注分享java语言的经验与见解,让所有开发者获益!
评论