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中怎么向数据库插入数据 ?的主要内容,如果未能解决你的问题,请参考以下文章

java连接数据库向数据库插入日期怎么插入

java怎么把数据批量插入数据库中

用java做前台 向数据库插入数据是 怎么判断有木有插入进数据库 ?

java中怎么一次性向表中插入一条或多条数据

JAVA里怎么向一个已经满的数组,插入数据!

java怎么将选中的多行数据插入表中