zoukankan      html  css  js  c++  java
  • Java 操作Oracle数据库

    import java.sql.Connection;  
    import java.sql.DriverManager;  
    import java.sql.PreparedStatement;  
    import java.sql.ResultSet;  
    import java.sql.ResultSetMetaData;  
    import java.sql.SQLException;  
    
    public class Operator {  
        // 定义连接所需的字符串  
        // 192.168.0.X是本机地址(要改成自己的IP地址),1521端口号,XE是精简版Oracle的默认数据库名  
        private static String USERNAMR = "C##NVSSMS";  
        private static String PASSWORD = "111111";  
        private static String DRVIER = "oracle.jdbc.driver.OracleDriver";  
        private static String URL = "jdbc:oracle:thin:@localhost:1521:orcl";  
    
        // 创建一个数据库连接  
        Connection connection = null;  
        // 创建预编译语句对象,一般都是用这个而不用Statement  
        PreparedStatement pstm = null;  
        // 创建一个结果集对象  
        ResultSet rs = null;  
    
        /** 
         * 向数据库中增加数据 
         * 首先获取表内数据总数,总数+1为新增数据的id值 
         * @param stuName:学生姓名 
         * @param gender:学生性别,1表示男性,2表示女性 
         * @param age:学生年龄 
         * @param address:学生住址 
         */  
        public void AddData(String stuName, int gender, int age, String address) {  
            connection = getConnection();  
            // String sql =  
            // "insert into student values('1','王小军','1','17','北京市和平里七区30号楼7门102')";  
            String sql = "select count(*) from student where 1 = 1";  
            String sqlStr = "insert into student values(?,?,?,?,?)";  
            int count = 0;  
    
            try {  
                // 计算数据库student表中数据总数  
                pstm = connection.prepareStatement(sql);  
                rs = pstm.executeQuery();  
                while (rs.next()) {  
                    count = rs.getInt(1) + 1;  
                    System.out.println(rs.getInt(1));  
                }  
                // 执行插入数据操作  
                pstm = connection.prepareStatement(sqlStr);  
                pstm.setInt(1, count);  
                pstm.setString(2, stuName);  
                pstm.setInt(3, gender);  
                pstm.setInt(4, age);  
                pstm.setString(5, address);  
                pstm.executeUpdate();  
            } catch (SQLException e) {  
                e.printStackTrace();  
            } finally {  
                ReleaseResource();  
            }  
        }  
    
        /** 
         * 向数据库中删除数据 
         * @param stuName:根据姓名删除数据 
         */  
        public void DeleteData(String stuName) {  
            connection = getConnection();  
            String sqlStr = "delete from student where stu_name=?";  
            System.out.println(stuName);  
            try {  
                // 执行删除数据操作  
                pstm = connection.prepareStatement(sqlStr);  
                pstm.setString(1, stuName);  
                pstm.executeUpdate();  
            } catch (SQLException e) {  
                e.printStackTrace();  
            } finally {  
                ReleaseResource();  
            }  
        }  
    
        /** 
         * 删除表 
         * @param stuName:表名称 
         */  
        public void DeleteTable(String name) {  
            connection = getConnection();  
            String sqlStr = "DROP TABLE "+name;  
            try {  
                // 执行删除数据操作  
                pstm = connection.prepareStatement(sqlStr);  
                pstm.executeUpdate();  
            } catch (SQLException e) {  
                e.printStackTrace();  
            } finally {  
                ReleaseResource();  
            }  
        }  
    
        /** 
         * 向数据库中修改数据 
         * @param stuName:学生姓名,根据此值查询要修改的某行值 
         * @param gender 
         * @param age 
         * @param address 
         */  
        public void UpdateData(String stuName, int gender, int age, String address) {  
            connection = getConnection();  
            String sql = "select id from student where 1 = 1 and stu_name = ?";  
            String sqlStr = "update student set stu_name=?,gender=?,age=?,address=? where id=?";  
            int count = 0;  
    
            try {  
                // 计算数据库student表中数据总数  
                pstm = connection.prepareStatement(sql);  
                pstm.setString(1, stuName);  
                rs = pstm.executeQuery();  
                while (rs.next()) {  
                    count = rs.getInt(1);  
                    System.out.println(rs.getInt(1));  
                }  
                // 执行插入数据操作  
                pstm = connection.prepareStatement(sqlStr);  
                pstm.setString(1, stuName);  
                pstm.setInt(2, gender);  
                pstm.setInt(3, age);  
                pstm.setString(4, address);  
                pstm.setInt(5, count);  
                pstm.executeUpdate();  
            } catch (SQLException e) {  
                e.printStackTrace();  
            } finally {  
                ReleaseResource();  
            }  
        }  
    
        /** 
         * 向数据库中查询数据 
         */  
        public void SelectData(String sql, String path) {  
            connection = getConnection();  
            try {  
                pstm = connection.prepareStatement(sql);  
                rs = pstm.executeQuery();  
                ExcelOperate.writeExcel(rs, path);  
            } catch (SQLException e) {  
                e.printStackTrace();  
            } finally {  
                ReleaseResource();  
            }  
        }  
    
        /** 
         * 使用ResultSetMetaData计算列数 
         */  
        public void SelectData2() {  
            connection = getConnection();  
            String sql = "select * from employees where 1 = 1";  
            int count = 0;  
    
            try {  
                pstm = connection.prepareStatement(sql);  
                rs = pstm.executeQuery();  
                while (rs.next()) {  
                    count++;  
                }  
    
                ResultSetMetaData rsmd = rs.getMetaData();  
                int cols_len = rsmd.getColumnCount();  
    
                System.out.println("count=" + count + "	cols_len=" + cols_len);  
            } catch (SQLException e) {  
                e.printStackTrace();  
            } finally {  
                ReleaseResource();  
            }  
        }  
    
        /** 
         * 获取Connection对象 
         *  
         * @return 
         */  
        public Connection getConnection() {  
            try {  
                Class.forName(DRVIER);  
                connection = DriverManager.getConnection(URL, USERNAMR, PASSWORD);  
                System.out.println("成功连接数据库");  
            } catch (ClassNotFoundException e) {  
                throw new RuntimeException("class not find !", e);  
            } catch (SQLException e) {  
                throw new RuntimeException("get connection error!", e);  
            }  
    
            return connection;  
        }  
    
        /** 
         * 释放资源 
         */  
        public void ReleaseResource() {  
            if (rs != null) {  
                try {  
                    rs.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
            if (pstm != null) {  
                try {  
                    pstm.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
            if (connection != null) {  
                try {  
                    connection.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
        }  
    }  

    转载自:

    http://blog.csdn.net/dopamy_busymonkey/article/details/72459529

  • 相关阅读:
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    Ehcache(2.9.x)
    网站静态化处理—反向代理(10)
    网站静态化处理—满足静态化的前后端分离(9)
    网站静态化处理—前后端分离—下(8)
  • 原文地址:https://www.cnblogs.com/aixing/p/13327697.html
Copyright © 2011-2022 走看看