当前位置:Gxlcms > 数据库问题 > JAVA调用数据库存储过程

JAVA调用数据库存储过程

时间:2021-07-01 10:21:17 帮助过:20人阅读

jdbc; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; import org.apache.commons.dbcp.BasicDataSource; public class BaseDAO { private static BasicDataSource ds=null; //private static Connection conn=null; private static String url; private static String user; private static String password; private static String driverName; static{ try { //1.读取配置文件conf.properties,采用java.util.Properties来读取 Properties pp=new Properties(); //2.通过文件流读取并解析配置文件内容,本地数据库用的mysql,所以把配置文件mysql的配置放开,其他数据库配置注释 pp.load(new FileInputStream("src/jdbc.properties")); driverName=pp.getProperty("jdbc.driverClassName");//获取驱动名称 url=pp.getProperty("jdbc.url");//获取数据库的url user=pp.getProperty("jdbc.username");//用户名 password=pp.getProperty("jdbc.password");//密码 int maxActive=Integer.parseInt(pp.getProperty("jdbc.maxActive"));//获取最大连接数 int maxWait=Integer.parseInt(pp.getProperty("jdbc.maxWait"));//获取最大等待时间 //3.创建一个连接池 ds=new BasicDataSource(); ds.setDriverClassName(driverName);//设置驱动名称 ds.setUrl(url);//设置数据库地址 ds.setUsername(user);//设置用户名 ds.setPassword(password);//设置密码 ds.setMaxActive(maxActive);//设置最大连接数 ds.setMaxWait(maxWait);//设置最大等待时间 } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //第一种加载BasicDataSource进行数据库的连接 public static Connection getConnection(){ try { System.out.println("数据库连接成功"); return ds.getConnection(); } catch (SQLException e) { // TODO Auto-generated catch block System.out.println("连接数据库失败"); return null; } } //第二种通过传统的DriverManager进行数据库连接 public static Connection getConnection2(){ try { Class.forName(driverName); Connection conn = DriverManager.getConnection(url,user,password); return conn; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public static void Close(Connection conn){ if(conn!=null){ try { conn.close(); } catch (Exception e) { e.printStackTrace(); } } } }



3.数据库连接建立完成之后就是调用存储过程操作数据库了:
package main;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;

import jdbc.BaseDAO;

public class test {

    /**
     * @param args
     * @throws SQLException 
     * @throws ClassNotFoundException 
     */
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        // TODO Auto-generated method stub
        
        //加载数据库的连接
        Connection conn=BaseDAO.getConnection2();
        
        //创建Oracle存储过程的对象,调用存储过程 
       // CallableStatement c=conn.prepareCall("{call pl_pro(?,?)}");
        //c.setString(1, "张三");
        //c.setString(2, "123456");
        //CallableStatement c=conn.prepareCall("{call AAA(?)}");
        //c.setLong(1, 2);
        
        //创建Oracle存储过程的对象,调用存储过程
        CallableStatement c=conn.prepareCall("{call bbb(?,?,?,?,?)}");
        //一次给存储过程传递参数
        c.setLong(1, 5);
        c.setString(2,"李四");
        c.setString(3,"123456");
        c.setString(4, "30");
        c.setString(5, "542178@.com");
        c.execute();
    }

}

 

 

 

JAVA调用数据库存储过程

标签:insert   roc   values   package   active   数据库配置   word   地址   .sql   

人气教程排行