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();
    }
}

JDBC完成增加-修改-增加-查询的更多相关文章

  1. ado.net c#基本的增加,修改,删除,查询

    自己初次学习用的,各种不规范,注释没写 class AdoDemo { static string strConn = @"Data Source=server1;Initial Catal ...

  2. 使用JDBC获取能自动增加的主键

    本篇讲述如何使用JDBC获取能自动增加的主键的值.有时候我们在向数据库插入数据时希望能返回主键的值,而不是通过查询的方式.一般来说,在多表相互关联主键约束,也就是说别的表的外键约束是该表的主键,那么在 ...

  3. Android webview中cookie增加/修改

    最近项目需求中,需要满足往webview传递cookie,而且cookie需要增加修改: public class MainActivity extends Activity { private We ...

  4. Oracle 增加修改删除字段

    Oracle 增加修改删除字段 添加字段的语法:alter table tablename add (column datatype [default value][null/not null],…. ...

  5. 用dom4j修改xml(增加修改节点)

    用dom4j修改xml(增加修改节点) 博客分类: Java XMLJavaMyeclipseServlet  使用dom4j修改解析xml,xml文件的位置是配置在xml.properties文件中 ...

  6. 【ES】Java High Level REST Client 使用示例(增加修改)

    ES提供了多种编程语言的链接方式,有Java API,PHP API,.NET API 官网可以详细了解 https://www.elastic.co/guide/en/elasticsearch/c ...

  7. sql 增加修改表格属性字段

    1.修改字段默认值 alter table 表名 drop constraint 约束名字 ------注解:删除表的字段的原有约束 alter table 表名 add constraint 约束名 ...

  8. cogs 1316. 数列操作B 区间修改 单点查询

    1316. 数列操作B ★★   输入文件:shulieb.in   输出文件:shulieb.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 假设有一个大小为 n(n ...

  9. ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

随机推荐

  1. 创建一个实例&创建一个线程。。

    using System; using System.Threading; namespace WorkerThread02 { class ThreadTest { bool done; stati ...

  2. 关于神经网络中的padding

    参考:https://www.cnblogs.com/willnote/p/6746668.html

  3. Ubuntu 安装phpmyadmin 和配置

    ubuntu 安装 phpmyadmin  两种 : 1: apt-get 安装  然后使用 已有的虚拟主机目录建立软连接  sudo  apt-get install  phpmyadmin sud ...

  4. REDIS与MEMCACHED的区别(转)

    出处:http://www.blogjava.net/paulwong/archive/2013/09/06/403746.html 如果简单地比较Redis与Memcached的区别,大多数都会得到 ...

  5. springboot+swagger集成

    一.swagger介绍 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容 ...

  6. cenots7单机安装Kubernetes

    关于什么是Kubernetes请看另一篇内容:http://www.cnblogs.com/boshen-hzb/p/6482734.html 一.环境搭建 master安装的组件有: docker ...

  7. Kubernetes (1.6) 中的存储类及其动态供给

    原文地址:http://blog.fleeto.us/translation/dynamic-provisioning-and-storage-classes-kubernetes-0?utm_sou ...

  8. 异步IO类

    也学习多线程一段时间了,也写了几个简单实用的功能类,也意思到细节的处理的重要性,现在就让我们来写一个稍稍更有用的异步IO的类. 本来想参考Java NIO 中的类,Java NIO作为新io包,本身提 ...

  9. 解读DbContext中的三种【EagerLoad,LazyLoad,ExplicitLoading】加载模式

    一:立即加载,延迟加载,显式加载 1. 立即加载 Student Domain{ Teacher theacher} using (SchoolDBEntities db = new SchoolDB ...

  10. Android Post方式发送信息和获取URL中的图片

    需要Internet权限,AndroidManifest.xml <uses-permission android:name="android.permission.INTERNET& ...