利用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語句,結果正常了。屬於對象重新被創建而引起的為空的現象。