用java向mysql數據庫中插入數據為空


利用java面向對像編程,向數據庫中插入數據時。遇到插入的數據為空的情況。在此做一小結:

1.數據庫連接正正常

2.sql語句沒有問題

3.程序沒有報異常

4.代碼:

import java.util.Scanner;

import org.junit.Test;
public class JDBCTest {
 //2).在測試方法testAAddStudent()中
 //1.獲取從控制台輸入的Student對象:Student student=getStudentFromConsole();
 //2.調用addStudent(Student stu)方法執行插入操作
 
 @Test
 public void testAAddStudent() {
  
    Student student=getStudentFromConsole();
    addStudent(student);
 }
 /**
  * 從控制台輸入學生的信息
  */
 //@Test
 public Student getStudentFromConsole(){
 
    Scanner scanner=new Scanner(System.in);
    Student student=new Student();
    //System.out.println("@Stu1"+student);
    System.out.println("Flowid:");
    student.setFlowid(scanner.nextInt());
    System.out.println("Type:");
    student.setType(scanner.nextInt());
    System.out.println("IdCard:");
    student.setIdCard(scanner.next());
    System.out.println("ExamCard:");
    student.setExamCard(scanner.next());
    System.out.println("StudentName:");
    student.setStudentName(scanner.next());
    System.out.println("Localtion:");
    student.setLocaltion(scanner.next());
    System.out.println("Grade:");
    student.setGrade(scanner.nextInt());
    scanner.close();
    return student;
    //System.out.println("@stu2"+student);
 }
 
 public void addStudent(Student stu){
  
    //Student student=new Student();
    
    //1.准備一條sql語句:

    String sql="INSERT INTO examstudent Values("+stu.getFlowid()
    +","+stu.getType()
    +",'"+stu.getIdCard()
    +"','"+stu.getExamCard()
    +"','"+stu.getStudentName()
    +"','"+stu.getLocaltion()
    +"',"+stu.getGrade()+")";
    System.out.println(sql);
    //2.調用JDBCTools類的update(sql)方法執行插入操作。
    JDBCTools.update(sql);
   }
}

 

5.總結:根據1、2、3判斷,正常情況下,是可以對數據庫進行添加數據的,但是添加的數據,通過查看數據庫值為0或為空,

后來從程序的邏輯關系上進行檢查分析,發現public void addStudent(Student stu)中Student student=new Student();是影響插入值的原因。

后來將在該方法中創建對象的語句去掉,利用形參寫sql語句,結果正常了。屬於對象重新被創建而引起的為空的現象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM