PreparedStatement入门和批处理的基础

package com.zhao.practice726_2;java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
 * PreparedStatement工具类
 * @author Administrator
 *
 */
public class DBPreparedStatement {
 /**
  * 驱动字符串
  */
 private static final String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动
 /**
  * 链接数据库的URL
  */
 private static final String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=Zhao722"; // 链接服务器和数据库Zhao722
 /**
  * 用户名字符串
  */
 private static final String USER= "sa";
 /**
  * 密码字符串
  */
 private static final String PASSWORD = "3221682";
 /**
  * 数据库链接
  */
 Connection conn = null;
 /**
  * PreparedStatement
  */
 PreparedStatement stat = null;
 /**
  * 结果集ResultSet
  */
 ResultSet rs = null;
 
 static {
  try {
   Class.forName(driverName);
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }
 /**
  * 获取数据库链接
  * @return
  */
 private Connection getConnection(){
  try {
   
   conn = DriverManager.getConnection(dbURL, USER, PASSWORD);
//   System.out.println(conn);
   return conn;
  } catch (SQLException e) {
   
   e.printStackTrace();
  }
  return null;
 }
 /**
  * 得到PreparedStatement对象
  * @param sql sql语句
  * @return PreparedStatement
  */
 public PreparedStatement getPreparedStatement(String sql){
  try {
   stat = getConnection().prepareStatement(sql);
   System.out.println(sql);
   return stat;
  } catch (SQLException e) {
   
   e.printStackTrace();
  }
  return null;
 }
 
 
 /**
  * 关闭全部打开的数据库链接
  */
 public void close(){
  try{
   if(rs != null){
    rs.close();
   }
   if(stat != null){
    stat.close();
   }
   if(conn != null){
    conn.close();
   }
  }catch(SQLException e){
   e.printStackTrace();
  }
 }
}
sql

 

 

package com.zhao.practice726_2;数据库

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;服务器

public class TestPreparedStatement {
 /**
  * sql字符串
  */
 private String sql = "select EmployeeID ,OrderDate from Orders where OrderID < ?";ide

 public static void main(String[] args) {
  
  TestPreparedStatement test = new TestPreparedStatement();
  List<Order> list = test.getResult();
  //for循环
  for(Order o:list){
   System.out.println(o);
  }
 }
 
 /**
  * 获得Order集合
  * @return List<Order>
  */
 private List<Order> getResult(){
  //获取控制台的输入流
  Scanner scan = new Scanner(System.in);
  System.out.println("请输入最大的订单号码:");
  //取得输入数字
  int OrderID = scan.nextInt();
  
  //建立List集合
  List<Order> list = new ArrayList<Order>();
 
  //建立DBPreparedStatement对象
  DBPreparedStatement db = new DBPreparedStatement();
  //得到PreparedStatement对象
  PreparedStatement stat  = db.getPreparedStatement(sql);
  
  //取得结果集
  ResultSet rs=null;
  //order的引用
  Order order = null;
  
  try{
   //传入参数
   stat.setInt(1, OrderID);
   
   rs = stat.executeQuery();
   //遍历
   while(rs.next()){
    //建立order对象
    order = new Order();
    order.setCustomerID(rs.getInt(1));
    order.setOrderDate(rs.getDate(2));
    
    //加入集合中
    list.add(order);
   }
   return list;
  }catch(SQLException e){
   e.printStackTrace();
  }finally{
   db.close();
  }
  
  return null;
 }
}
工具

 

package com.zhao.practice726_2;sqlserver

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;测试

/**
 * 测试批处理类
 * @author Administrator
 *
 */
public class TestBatch {
 /**
  * sql字符串
  */
 private String sql = "insert into test1(id) values(?)";
 
 public static void main(String[] args) {
  TestBatch test = new TestBatch();
  if(test.getResult()){
   System.out.println("你的批处理验证成功!!!");
  }
 }
 /**
  * 获得是否处理成功
  * @return boolean
  */
 private boolean getResult(){
  //获取控制台的输入流
  Scanner scan = new Scanner(System.in);
  System.out.println("请输入你要插入的行数:");
  //取得输入数字
  int line = scan.nextInt();
  
  //建立DBPreparedStatement对象
  DBPreparedStatement db = new DBPreparedStatement();
  //得到PreparedStatement对象
  PreparedStatement stat  = db.getPreparedStatement(sql);
  try{
   for(int i = 1;i<line;i++){
    stat.setInt(1, i);
    stat.addBatch();
   }
   stat.executeBatch();
   return true;
  }catch(SQLException e){
   e.printStackTrace();
  }finally{
   db.close();
  }
  
  return false;
 } 
}
.net

 

package com.zhao.practice726_2;server

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 测试批处理类
 * @author Administrator
 *
 */
public class TestBatch {
 /**
  * sql字符串
  */
 private String sql = "insert into test1(id) values(?)";
 
 public static void main(String[] args) {
  TestBatch test = new TestBatch();
  if(test.getResult()){
   System.out.println("你的批处理验证成功!!!");
  }
 }
 /**
  * 获得是否处理成功
  * @return boolean
  */
 private boolean getResult(){
  //获取控制台的输入流
  Scanner scan = new Scanner(System.in);
  System.out.println("请输入你要插入的行数:");
  //取得输入数字
  int line = scan.nextInt();
  
  //建立DBPreparedStatement对象
  DBPreparedStatement db = new DBPreparedStatement();
  //得到PreparedStatement对象
  PreparedStatement stat  = db.getPreparedStatement(sql);
  try{
   for(int i = 1;i<line;i++){
    stat.setInt(1, i);
    stat.addBatch();
   }
   stat.executeBatch();
   return true;
  }catch(SQLException e){
   e.printStackTrace();
  }finally{
   db.close();
  }
  
  return false;
 } 
}

 

package com.zhao.practice726_2;

import java.util.Date;

/**
 * Order类的JavaBean
 * @author Administrator  *  */ public class Order {  private int CustomerID ;  private Date OrderDate;  public int getCustomerID() {   return CustomerID;  }  public void setCustomerID(int customerID) {   CustomerID = customerID;  }  public Date getOrderDate() {   return OrderDate;  }  public void setOrderDate(Date orderDate) {   OrderDate = orderDate;  }  @Override  public String toString() {   return CustomerID+"'\t'"+OrderDate;  }   }

相关文章
相关标签/搜索