• JDBC完成增加-修改-增加-查询


    JDBC的基本使用流程:

    增加
        1 导入jar包:
            导入ojdbc6.jar,在项目上右键 builder path-->add to builder path.
        2 加载驱动
            Class.forName("oracle.jdbc.driver.OracleDriver");
            作用:初始化加载jdbc类到java虚拟机.
            注意:
                ojdbc6.jar使用此包该句可以省略不写.        
        3 获取数据库连接对象
            Connection conn =DriverMananger.getConnection("url","username","password");
            参数含义:
                url:表示要连接的数据地址
                username:数据库的用户名
                password:数据库的密码
            作用:
                连接到指定的数据库并返回连接对象.
        4 创建sql命令对象
            Statement stmt=conn.createStatement();
            作用:
                编译,发送SQL命令
        5 创建sql命令
            String sql="insert into dept values(92,'','')";
        6 执行sql命令:
            新增sql命令:
                int i=stmt.executeUpdate(sql);
            返回值:
                返回值如果小于0,表示未执行成功
                返回值如果大于0,表示成功修改的数据量.
        7 关闭资源


    ------------------------------------------------------------------------------------------------------------------------------------------
     * 常见的jdbc错误:
     *         a ClassNotFoundException:
     *                 驱动类未找到.
     *         b   java.sql.SQLException: No suitable driver found for :thin:@localhost:1521:orcl
     *                 URL错误
     *         c    java.sql.SQLException: ORA-01017: invalid username/password; logon denied
     *                 用户 名或密码错误
     *         d    java.sql.SQLSyntaxErrorException: ORA-00900: 无效 SQL 语句
     *                 Sql语句错误
     *         e    java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件             (SCOTT.PK_DEPT)
     *                 主键冲突
    ---------------------------------------------------------------------------------------------------------------------------------------------
    JDBC新增代码:
        public class TestInsert1 {
        public static void main(String[] args) throws ClassNotFoundException, SQLException {
            //1 加载驱动类
            //Class.forName("oracle.jdbc.driver.OracleDriver");
            //2 获取数据库连接对象(连接指定的数据库)
            Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","oracle");
            //3 获取sql命令对象(编译和发送sql命令给数据库)
            Statement stmt=conn.createStatement();
            //4 创建sql命令
            String sql="insert into dept values(92,'吃鸡学院','北京')";
            //5 指定sql命令
            int i=stmt.executeUpdate(sql);
            System.out.println("执行结果:"+i);
            //6 关闭资源
                stmt.close();
                conn.close();
        }
    }
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    JDBC代码完善(全)
    public class TestInsert2 {
        public static void main(String[] args){
            //声明jdbc变量
            Connection conn=null;
            Statement stmt=null;
            //声明JDBC参数
                String driver="oracle.jdbc.driver.OracleDriver";
                String url="jdbc:oracle:thin:@localhost:1521:orcl";
                String username="scott";
                String password="oracle";
            //1 加载驱动类
            try {
                Class.forName(driver);
                //2 获取数据库连接对象(连接指定的数据库)
                conn=DriverManager.getConnection(url,username,password);
                //3 获取sql命令对象(编译和发送sql命令给数据库)
                stmt=conn.createStatement();
                //4 创建sql命令
                String sql="insert into dept values(97,'吃鸡学院','北京')";
                //5 指定sql命令
                int i=stmt.executeUpdate(sql);
                System.out.println("执行结果:"+i);
                
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                //6 关闭资源
                try {
                    stmt.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                try {
                    conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            
        }
    }    
    修改
    使用流程不变:
            导入jar包
            加载驱动
            创建连接对象
            创建sql命名对象
            创建sql命令
            执行sql命令
            关闭资源
    -----------------------------------------------------------------------------------
    更新和新增比较除了SQL语句不通以外,代码基本一致:
        public class TestUpdate {
        public static void main(String[] args) throws ClassNotFoundException, SQLException {
            //1加载驱动
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //2创建连接对象
            Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","oracle");
            //3创建sql命令对象
            Statement stmt=conn.createStatement();
            //4创建sql命令
            String sname="张三三";
            String sql="update student set sname='"+sname+"' where snum=2";
            //5执行sql命令
            int i=stmt.executeUpdate(sql);
            System.out.println(i);
            //6关闭资源
            stmt.close();
            conn.close();
            
        }
    }
     删除:
        加载jar包
        加载驱动
        创建连接对象
        创建sql命令对象
        创建sql命令(删除)
        执行sql命令
        关闭资源
    -------------------------------------------------------------------------------------
    JDBC中的增加删除修改除了SQL语句不同以外,基本一致:
        public class TestDel {
        public static void main(String[] args) throws ClassNotFoundException, SQLException {
            //1 加载驱动
                Class.forName("oracle.jdbc.driver.OracleDriver");
            //2创建连接对象
                Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@LocalHost:1521:orcl", "scott", "oracle");
            //3创建sql命令对象
                Statement stmt=conn.createStatement();
            //4创建sql命令
                String sql="delete from student where snum='2'";
            //5执行sql命令
                int i=stmt.executeUpdate(sql);
                System.out.println("删除数据量:"+i);
            //6关闭资源
                stmt.close();
                conn.close();
        }
    }
    ------------------------------------------------------------------------------------
    JDBC完成查询:
        基本流程:
            声明ArrayList集合
            加载驱动
            创建连接对象
            创建sql命令对象
            创建sql命令
            执行sql命令
                遍历查询结果,并将结果存储到ArrayList中
            关闭资源

    ----------------------------------------------------------------------------------------------
    JDBC查询示例代码:
    package com.bjsxt.test;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;

    import com.bjsxt.daoImpl.StudentDaoImpl;
    import com.bjsxt.pojo.Student;

    /**
     * JDBC的查询:
     *         加载驱动
     *         创建连接对象
     *         创建sql命令对象
     *         创建sql命令
     *         执行sql命令
     *             返回存储了查询到的数据的对象(ResultSet)
     *                 ResultSet对象是基于指针进行数据存储的,类似枚举.
     *         关闭资源
     * 问题:
     *         查询的返回值类型是ResultSet,是基于指针进行数据存储的,不便于数据的针对性的获取.
     * 解决:
     *         将数据转换到ArrayList中进行存储.
     * 使用:
     *         创建和表结构相同的实体类进行单条数据的存储(一条数据就是一个实例化对象)
     *         将对象存储到ArrayList中.
     * 快速获取返回值:
     *         alt+shift+L
     *
     * @author MyPC
     *
     */
    public class TestSelect {
        public static void main(String[] args) throws ClassNotFoundException, SQLException {
            //声明List集合
            ArrayList<Student> list=new ArrayList<>();
            //加载驱动
                Class.forName("oracle.jdbc.driver.OracleDriver");
            //创建连接对象
                Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","oracle");
            //创建sql命令对象
                Statement stmt=conn.createStatement();
            //创建Sql命令
                String sql="select * from student";
            //执行Sql命令
                 ResultSet rs = stmt.executeQuery(sql);
                 while(rs.next()){
                     //创建学生对象
                     Student stu=new Student();
                     stu.setSnum(rs.getInt("snum"));
                     stu.setSname(rs.getString("sname"));
                     stu.setSage(rs.getInt("sage"));
                     stu.setMoney(rs.getDouble("money"));
                     //将对象存储到ArrayList中
                     list.add(stu);
                 }
            
            System.out.println(list.get(2));
            //创建DaoImpl层对象
            StudentDaoImpl sd=new StudentDaoImpl();
            ArrayList<Student> ls=sd.getStudentInfo();
        }
    }


           




  • 相关阅读:
    [CTSC2008]网络管理
    [HNOI/AHOI2018]转盘
    [HAOI2015]树上染色
    [CTSC2017]吉夫特
    [CTSC2011]幸福路径
    Comet OJ
    2019各省省选试题选做
    HNOI2019 简要题解
    HNOI2019游记
    JOISC2019 简要题解
  • 原文地址:https://www.cnblogs.com/vieta/p/10752215.html
Copyright © 2020-2023  润新知