java中怎么向数据库插入数据 ?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么向数据库插入数据 ?相关的知识,希望对你有一定的参考价值。
String sqlQuery = "INSERT INTO book VALUE";这样可以表示向数据库中添加数据吗?
Java程序向数据库中插入数据,代码如下:
//首先创建数据库,(access,oracle,mysql,sqlsever)其中之一,其中access,sqlsever需要配置数据源(odbc);//然后再eclipse中创建类(ConnDb,Test,TestBean)ConnDb功能为连接数据库,查询,插入,删除,修改数据的类,Test为含有main方法的测试类,TestBean为数据表中的字段属性及set,get方法
//以下是ConnDb代码:
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import
java.sql.ResultSet;
import java.sql.SQLException;
import
java.sql.Statement;
import java.util.ArrayList;
public class ConnDb
public Connection startConn(Connection conn)
try
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:数据库","用户名", "密码");
catch (Exception e)
System.out.println("连接数据库时出现错误");
return conn;
public ArrayList executeQuery(String sql)
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
ArrayList list = new ArrayList();
try
conn = startConn(conn);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);//sql为sql语句例如"select * from
表名",从main方法中传进来,这里用的是ArrayList 类将查询结果存储起来
while(rs.next())
TestBean tb = new TestBean();
tb.setTid(rs.getString("tid"));
tb.setTname(rs.getString("tname"));
tb.setTinfo(rs.getString("tinfo"));
list.add(tb);
catch (SQLException e)
// TODO Auto-generated catch block
e.printStackTrace();
finally
closeConn(rs,stmt,conn);
return list;
public void executeUpdate(String sql)
Connection conn = null;
Statement stmt = null;
try
conn =
startConn(conn);
stmt = conn.createStatement();
stmt.executeUpdate(sql);
catch (SQLException e)
System.out.println("修改,插入或者删除数据库数据时发生错误!");
finally
closeConn(stmt,conn);
public void closeConn(ResultSet rs,Statement stmt,Connection conn)
try
if(rs !=
null)
rs.close();
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
catch (SQLException e)
// TODO Auto-generated catch
block
System.out.println("关闭数据库的时候发生错误!");
public void closeConn(Statement stmt,Connection conn)
try
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
catch (SQLException e)
// TODO Auto-generated catch block
System.out.println("关闭数据库的时候发生错误!");
参考技术A JAVA本身并不能向数据库插入数据,而是通过与数据库建立连接,通过操控sql语言向数据库插入数据。
就好比你的人就是java,鼠标代表sql语句,电脑里的光标代表数据库,你通过控制鼠标来移动光标。 参考技术B 你这写的只是操作语句。。。。还得有执行语句,在执行之前你得链接数据库等各种操作。。。。还有你写的插入语句不全。 参考技术C java只是通过JDBC(通常)的方式连接到数据库,操作数据库使用的还是SQL,插入的SQL当然是insert into tablename (字段A,字段B.....) values(值A,值B...) 参考技术D 首先,你要清楚 java 操作数据库的方法都有什么
是使用jdbc执行SQL,还是利用如hibernate之类的进行封装过的第三方插件进行操作数据库
用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中怎么向数据库插入数据 ?的主要内容,如果未能解决你的问题,请参考以下文章