zoukankan      html  css  js  c++  java
  • 基于Oracle的jdbc增删查改

    oracle建表

    pom.xml(个人版,请读者导入自己的依赖):

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.changping.jdbcdemo</groupId>
      <artifactId>jdbcdemo</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <dependencies>
            <dependency>
                <groupId>oracle</groupId>
                <artifactId>ojdbc6-connector-java</artifactId>
                <version>10.2.0.1.0</version>
            </dependency>
      </dependencies>
    </project>

    User.java(实体类)

    package com.changping.jdbc.pojo;
    public class User {
        private String userid;
        private String userpass;
        private String username;
        private String db_source;
        public String getUserid() {
            return userid;
        }
        public void setUserid(String userid) {
            this.userid = userid;
        }
        public String getUserpass() {
            return userpass;
        }
        public void setUserpass(String userpass) {
            this.userpass = userpass;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getDb_source() {
            return db_source;
        }
        public void setDb_source(String db_source) {
            this.db_source = db_source;
        }
        @Override
        public String toString() {
            return "User [userid=" + userid + ", userpass=" + userpass + ", username=" + username + ", db_source="
                    + db_source + "]";
        }
        public User(String userid, String userpass, String username, String db_source) {
            super();
            this.userid = userid;
            this.userpass = userpass;
            this.username = username;
            this.db_source = db_source;
        }
        public User(String userpass, String username, String db_source) {
            super();
            this.userpass = userpass;
            this.username = username;
            this.db_source = db_source;
        }
        public User() {
            super();
        }
    }

    Add_User_Dao.java(增)

    package com.changping.jdbc.dao;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import com.changping.jdbc.pojo.User;
    public class Add_User_Dao {
        /**
         * 1.增
         * 
         * @param user
         * @return
         */
        public int add_User(User user) {
            // 声明计数器
            int result = 0;
            // 1声明jdbc对象
            Connection conn = null;
            PreparedStatement pstmt = null;
            // 2加载驱动
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                // 3声明连接信息
                String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
                String username = "scott";
                String password = "tiger";
                // 4建立连接
                try {
                    conn = DriverManager.getConnection(url, username, password);
                    // 5声明sql语句
                    String sql = "insert into db_user (userid,userpass,username,db_source) values (seq_new_user.nextval,?,?,?)";
                    // 6执行预编译sql,给参数赋值
                    pstmt = conn.prepareStatement(sql);
                    pstmt.setObject(1, user.getUserpass());
                    pstmt.setObject(2, user.getUsername());
                    pstmt.setObject(3, user.getDb_source());
                    // 7执行sql,返回受影响的条目数
                    result = pstmt.executeUpdate();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (pstmt != null) {
                        pstmt.close();
                    }
                    if (conn != null) {
                        conn.close();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return result;
        }
    }

    User_Add_Test.java(每一步都写一个测试类)

    package com.changping.jdbc.test;
    import com.changping.jdbc.dao.Add_User_Dao;
    import com.changping.jdbc.pojo.User;
    public class User_Add_Test {
        public static void main(String[] args) {
            Add_User_Dao userDao = new Add_User_Dao();
            User user = new User("123","tom","db_oracle_0424");//三参构造
            int result = userDao.add_User(user);//return 1
            System.out.println(result);
        }
    }

    Delete_User_Dao.java(删)

    package com.changping.jdbc.dao;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    public class Delete_User_Dao {
        /**
         * 2.通过姓名删除
         * 
         * @param username
         * @return
         */
        public int delete_user_by_username(String username) {
            int result = 0;
            // 1.声明jdbc对象
            Connection conn = null;
            PreparedStatement pstmt = null;
            // 2加载驱动
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                // 3声明连接信息
                String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
                String user = "scott";
                String password = "tiger";
                // 4建立连接
                conn = DriverManager.getConnection(url, user, password);
                // 5声明sql语句
                String sql = "delete from db_user where username=?";
                // 6执行预编译sql,给参数赋值
                pstmt = conn.prepareStatement(sql);
                pstmt.setObject(1, username);
                // 7返回受影响的条目数
                result = pstmt.executeUpdate();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (conn != null) {
                        conn.close();
                    }
                    if (pstmt != null) {
                        pstmt.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return result;
        }
    }

    User_Delete_Test.java

    package com.changping.jdbc.test;
    import com.changping.jdbc.dao.Delete_User_Dao;
    public class User_Delete_Test {
        public static void main(String[] args) {
            Delete_User_Dao userDao = new Delete_User_Dao();
            int result = userDao.delete_user_by_username("tom");
            System.out.println(result);
        }
    }

    Find_User_Dao.java(条件查)

    package com.changping.jdbc.dao;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.util.HashMap;
    import java.util.Map;
    public class Find_User_Dao {
        /**
         * 3.根据姓名查询
         * 
         * @param username
         * @return
         */
        public Map<String, Object> find_User(String username) {
            Map<String, Object> user_map = new HashMap<String, Object>();
            // 1声明jdbc对象
            Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            // 2加载驱动
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                // 3声明连接信息
                String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
                String user = "scott";
                String password = "tiger";
                // 4建立连接
                try {
                    conn = DriverManager.getConnection(url, user, password);
                    // 5声明sql语句
                    String sql = "select * from db_user where username = ?";
                    // 6执行预编译sql,给参数赋值
                    pstmt = conn.prepareStatement(sql);
                    pstmt.setObject(1, username);
                    // 7返回结果集信息
                    rs = pstmt.executeQuery();
                    // 8得到结果集元数据——方法的集合体,返回有column相关的一切信息
                    ResultSetMetaData rsmd = rs.getMetaData();
                    // 9从元数据类中返回结果集的列数
                    int columnCount = rsmd.getColumnCount();
                    // 10根据元数据里的列信息,得到每一列的字段名
                    if (rs.next()) {
                        for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
                            String columnName = rsmd.getColumnName(columnIndex);// 根据对应列,返回列名
                            Object value = rs.getObject(columnName);// 根据列名返回该列所有值
                            user_map.put(columnName, value);
                        }
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (rs != null) {
                        rs.close();
                    }
                    if (pstmt != null) {
                        pstmt.close();
                    }
                    if (conn != null) {
                        conn.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return user_map;
        }
    }

    User_Find_by_Name_Test.java

    package com.changping.jdbc.test;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    import com.changping.jdbc.dao.Find_User_Dao;
    public class User_Find_by_Name_Test {
        public static void main(String[] args) {
            Find_User_Dao userDao = new Find_User_Dao();
            Map<String, Object> user_map = userDao.find_User("tom");
    //1、foreach遍历 Set<Entry<String, Object>> entryset = (Set<Entry<String, Object>>) user_map.entrySet(); for (Entry<String, Object> entry : entryset) { System.out.println(entry.getKey() + " : " + entry.getValue()); }
    System.
    out.println("------------------------------------------"); //2、迭代遍历 Set<String> keyset = user_map.keySet(); Iterator<String> it = keyset.iterator(); while (it.hasNext()) { System.out.println(user_map.get(it.next())); }
    System.
    out.println("------------------------------------------"); //3、map转entryset转list,转的真正含义是换个数据结构装数据 Set<Entry<String, Object>> set = user_map.entrySet(); Iterator<Entry<String, Object>> iteratory = set.iterator(); List<Object> list = new ArrayList<Object>(); while (iteratory.hasNext()) { Entry<String, Object> entry = iteratory.next(); list.add(entry.getKey()); list.add(entry.getValue()); } System.out.println(list); } }

    Query_User_Dao.java(全查)

    package com.changping.jdbc.dao;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    public class Query_User_Dao {
        /**
         * 4.查全部
         * 
         * @return
         */
        public List<Map<String, Object>> queryUser() {
            List<Map<String, Object>> list_user = new ArrayList<Map<String, Object>>();
            // 1声明jdbc对象
            Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            // 2加载驱动
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                // 3声明连接信息
                String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
                String username = "scott";
                String password = "tiger";
                // 4建立连接
                try {
                    conn = DriverManager.getConnection(url, username, password);
                    // 5声明sql语句
                    String sql = "select * from db_user";
                    // 6声明预编译对象
                    pstmt = conn.prepareStatement(sql);
                    // 7返回resultset结果集
                    rs = pstmt.executeQuery();
                    // 8得到结果集元数据——方法的集合体,返回有column相关的一切信息
                    ResultSetMetaData rsmd = rs.getMetaData();
                    // 9得到结果集总列数
                    int columnCount = rsmd.getColumnCount();
                    // 10通过结果集列数进行遍历
                    while (rs.next()) {
                        Map<String, Object> map = new HashMap<String, Object>();
                        // 遍历每一列并放入map中
                        for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
                            String columnName = rsmd.getColumnName(columnIndex);
                            Object value = rs.getObject(columnName);
                            map.put(columnName, value);
                        }
                        list_user.add(map);
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (rs != null) {
                        rs.close();
                    }
                    if (pstmt != null) {
                        pstmt.close();
                    }
                    if (conn != null) {
                        conn.close();
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return list_user;
        }
    }

    User_Query_Test.java

    package com.changping.jdbc.test;
    import java.util.List;
    import java.util.Map;
    import com.changping.jdbc.dao.Query_User_Dao;
    public class User_Query_Test {
        public static void main(String[] args) {
            Query_User_Dao userDao = new Query_User_Dao();
            List<Map<String,Object>> user_list = userDao.queryUser();
            System.out.println(user_list);
        }
    }

    Update_User_Dao.java(改)

    package com.changping.jdbc.dao;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import com.changping.jdbc.pojo.User;
    public class Update_User_Dao {
        /**
         * 5.通过姓名修改
         * 
         * @param user
         * @return
         */
        public int update_user_by_username(User user) {
            int result = 0;
            // 1声明jdbc对象
            Connection conn = null;
            PreparedStatement pstmt = null;
            // 2加载驱动
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                // 3声明连接信息
                String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
                String username = "scott";
                String password = "tiger";
                // 4建立连接
                try {
                    conn = DriverManager.getConnection(url, username, password);
                    // 5声明sql语句
                    String sql = "update db_user set userpass=?,db_source=? where username=?";
                    // 6执行预编译sql,给参数赋值
                    pstmt = conn.prepareStatement(sql);
                    pstmt.setObject(1, user.getUserpass());
                    pstmt.setObject(2, user.getDb_source());
                    pstmt.setObject(3, user.getUsername());
                    // 7返回受影响的条目数
                    result = pstmt.executeUpdate();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (pstmt != null) {
                        pstmt.close();
                    }
                    if (conn != null) {
                        conn.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return result;
        }
    }

    User_Update_Test.java

    package com.changping.jdbc.test;
    import com.changping.jdbc.dao.Update_User_Dao;
    import com.changping.jdbc.pojo.User;
    public class User_Update_Test {
        public static void main(String [] args)
        {
            Update_User_Dao userDao = new Update_User_Dao();
            User user = new User();
            user.setDb_source("db0425");
            user.setUserpass("123");
            user.setUsername("tom");
            int result = userDao.update_user_by_username(user);
            System.out.println(result);
        }
    }

    如果用Mysql数据库,驱动、连接信息需修改如下:

                Class.forName("com.mysql.jdbc.Driver");
                String url = "jdbc:mysql://localhost:3306/db0325";
                String user ="root";
                String password = "root";
  • 相关阅读:
    SQL Server Audit监控触发器状态
    SQL Server 数据变更时间戳(timestamp)在复制中的运用
    SQL Server 更改跟踪(Chang Tracking)监控表数据
    SQL Server 变更数据捕获(CDC)监控表数据
    SQL Server 事件通知(Event notifications)
    SQL Server 堆表行存储大小(Record Size)
    SQL Server DDL触发器运用
    SQL Server 默认跟踪(Default Trace)
    SQL Server 创建数据库邮件
    SQL Server 跨网段(跨机房)FTP复制
  • 原文地址:https://www.cnblogs.com/timingstarts/p/12773837.html
Copyright © 2011-2022 走看看