jdbc

130 阅读1分钟

sql批处理

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Random;

// sql 批处理
public class BatchTest {
	 	static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";  
	    static final String DB_URL = "jdbc:mysql://localhost:3306/dn1?useSSL=false&serverTimezone=UTC";
	    // 数据库的用户名与密码,需要根据自己的设置
	    static final String USER = "root";
	    static final String PASS = "123456";
	public Connection getConnection() {
		Connection conn = null;
		try {
			Class.forName(JDBC_DRIVER);
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
            System.out.println("数据库conn创建成功!");
		} catch (Exception e) {
			 System.out.println("数据库conn创建失败!");
	         e.printStackTrace();
		}
		return conn;
	}
	// 实现sql批处理
	public int saveBatch() {
		int res = 0;
		Connection conn = getConnection();
		try {
			String sql = "insert into stu(uname,upwd) values(?,?)";	//动态sql语句
			PreparedStatement ps = conn.prepareStatement(sql);	//获取PreparedStatement对象
			
			Random random = new Random();
			for(int i=0;i<4;i++) {
				ps.setString(1, "用户"+i);
				ps.setString(2, "m"+random.nextInt(10000));
				
				ps.addBatch();       // 添加批处理命令
			}
			int[] rows = ps.executeBatch();	//执行批处理操作并返回计数组组成的数组
			for(int i : rows) {
				System.out.println(i);
			}
			res = rows.length;
			ps.close();
			conn.close();
			System.out.println("成功!");
		} catch (Exception e) {
			System.out.println("失败!");
	         e.printStackTrace();
		}
		return res;
		
	}
}

调用存储过程

// 调用存储过程
	public void findAll() {
		Connection conn = getConnection(); //创建数据库连接
		try {
			CallableStatement  cs = (CallableStatement) conn.prepareCall("{call Test2()}");
			ResultSet rs =  cs.executeQuery();	//执行查询操作
			while(rs.next())
			{
				System.out.println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3)+" "+rs.getString(4));
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
	}