老师我这样批量添加不成功 哪里出问题了 只能添加一条

来源:6-6 自由编程

hejunmiao

2019-08-28 21:17:09

package jdbc.practice;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;

import org.junit.Test;

import jdbc.utils.JDBCUtils;

public class practice4 {
	@Test
	/**
	 * 首先将表格中的三条数据添加到数据库
	 */
	public void demo1() {
		Connection conn=null;
		PreparedStatement pstmt=null;
		try {
			//获得连接
			conn=JDBCUtils.getConnection();
			//编写sql
			String sql="INSERT INTO course(name,category,desp,createTime) VALUES(?,?,?,?)";
			conn.setAutoCommit(false);
			// 预编译SQL:
			pstmt=conn.prepareStatement(sql);
			// 设置参数:
			pstmt.setString(1,"Java零基础");
			pstmt.setString(2,"Java");
			pstmt.setString(3,"Java基础语法");
			pstmt.setDate(4,new Date(System.currentTimeMillis()));
			pstmt.addBatch();
			pstmt.setString(1,"Java Web");
			pstmt.setString(2,"Java");
			pstmt.setString(3,"Jsp和Servlet");
			pstmt.setDate(4,new Date(System.currentTimeMillis()));
			pstmt.addBatch();
			pstmt.setString(1,"前端小白");
			pstmt.setString(2,"J前端");
			pstmt.setString(3,"HTML/CSS/JS");
			pstmt.setDate(4,new Date(System.currentTimeMillis()));
			pstmt.addBatch();
			int num=pstmt.executeUpdate();
			if(num>0) {
				System.out.println("添加成功");
			}
			conn.commit();
			conn.setAutoCommit(true);
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			JDBCUtils.release(pstmt, conn);
		}
	}
}


写回答

2回答

好帮手慕柯南

2019-08-29

同学你好!

这个executeBatch(),返回的为一个int数组,数组中存放每一条语句的执行情况,具体可以查看下图:

http://img.mukewang.com/climg/5d6733e60001d57607340290.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0

hejunmiao

提问者

2019-08-28

已经解决了 

执行语句改成这样就行了

pstmt.executeBatch();

那这个该返回什么 判断是添加成功了

0

0 学习 · 8016 问题

查看课程