java往数据库插入数据代码_用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语句,结果正常了。属于对象重新被创建而引起的为空的现象。

你可能感兴趣的:(java往数据库插入数据代码)