Java JDBC(2)JDBC

1 使用JDBC不再需要JDBC-ODBC时进行的数据源配置配置
2 但需要引入三个与JDBC操作相关的包:msbase.jar和mssqlserver.jar和msutil.jar
http://pan.baidu.com/s/1hrM1juc
这里写图片描述
这里写图片描述

3 使用eclipse进行,数据库的操作
与JDBC-ODBC区别主要在,驱动加载和建立连接

//-------------------------- JDBC-ODBC方式----------------------------------------
// 加载驱动
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    // 得到连接 [指定哪个数据源,用户名和密码]mytest就是配置好的数据源名称
    conn = DriverManager.getConnection(
                                    "jdbc:odbc:mytest", 
                                    "sa", "111111");
//-------------------------- JDBC方式----------------------------------------
// 加载驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
// 得到连接 [指定数据库,用户名和密码]
conn = DriverManager.getConnection(
        "jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=LiangshanHeros", 
        "sa", "111111");
public static void main(String[] args) {
    Connection conn = null;
    PreparedStatement statement = null;
    ResultSet rs = null;
    try {
        // 加载驱动
        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
        // 得到连接 [指定哪个数据源,用户名和密码]
        conn = DriverManager.getConnection(
                "jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=LiangshanHeros", 
                "sa", "111111");
        // 创建Statement或者PreparedStatement区别
        // statement主要用于发送sql语句到数据库
//          statement = conn.createStatement(); 
        statement = conn.prepareStatement("select avg(sal), max(sal), deptno, job from emp group by deptno, job order by job");
        rs = statement.executeQuery();


        // -------处理得到的数据,并格式化输出 --------------
        int columns = rs.getMetaData().getColumnCount(); // 获得字段数
        for (int i=1;i<=columns; i++) {
            String columnName = rs.getMetaData().getColumnName(i);          
            System.out.print(columnName + "\t");
            if(i==5) {
                System.out.print("\t");
            }
        }
        System.out.println();


        while(rs.next()) {
            for (int i=1;i<=columns; i++) {
                String types = rs.getMetaData().getColumnTypeName(i);
                if(types.equals("int")) {
                    System.out.print(rs.getInt(i) + "\t");
                    //System.out.print(rs.getInt("empno") + "\t");  // 也可以按照列名取
                } else if(types.equals("numeric")) {
                    System.out.print(rs.getFloat(i) + "\t");
                } else if(types.equals("nvarchar")) {
                    System.out.print(rs.getString(i) + "\t");
                } else if(types.equals("datetime")) {
                    System.out.print(rs.getString(i) + "\t");
                } 
            }
            System.out.println();
        }



    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if(rs!=null) {
                rs.close();
            }
            if(statement!=null) {
                statement.close();
            }
            if(conn!=null) {
                conn.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
比较实用,基础 目录 第一节 整理目的 3 第二节 jdbc的概念 3 2.1概念 3 2.2 Jdbc与应用程序的关系 3 2.3 数据库的连接步骤 4 2.4 Quick Start 4 第三节 如何与数据库建立连接 6 3.1 注册驱动 6 3.2 建立数据库的连接 8 3.3 规范Quick Start中的例子 10 第四节 Statement 接口的使用详解 12 4.1 Statement 的常用方法 12 4.2 CRUD操作 16 4.3 Statement有那些缺点 19 第五节 ResultSet接口的使用详解 20 第六节 JDBC 中数据类型详解 30 6.1 基本数据类型 30 6.2 日期类型 34 6.3 CLOB类型 36 6.4 BLOB类型 39 6.5 其他数据类型 41 第七节 DAO设计模式详解 41 7.1 实际项目中如何使用JDBC 41 7.2 DAO设计模式简介 42 7.3 DAO设计模式的实现 42 7.4 DAO设计模式与工厂模式的整合 49 7.5 DAO设计模式测试 52 第八节 JDBC对事务的支持 52 8.1 模拟转账 53 8.2 jdbc默认事务 54 8.3 事务提交与回滚 54 8.4 设置保存点 55 8.5 JTA事务的介绍 56 8.6 数据库的隔离级别介绍 56 8.6.1 未提交读 57 8.6.2 提交读 58 8.6.3 重复读 59 8.6.4 序列化读 60 8.7 小结 62 第九节 PreparedStatement接口的使用 62 第十节 CallableStatement接口的使用 62 9.1 无参无返回值存储过程调用 63 9.2 有参无返回值存储过程调用 63 9.3 有参有返回值存储过程调用 64 9.4 JDBC其他API 65 第十一节 元数据信息 66 11.1 数据库元数据信息 66 11.2 参数元数据信息 67 第十二节 批处理的使用 67 12.1 普通方式插入一千条数据 68 12.2 批处理方式插入一千条数据 69 第十三节 JDBC其他API 70 13.1 可滚动结果集 70 13.2 分页技术 72 13.3 可更新结果集 73 第十四节 编写一个简单的数据库连接池 74 14.1 为什么要使用数据库连接池 74 14.2 数据库连接池雏形 74 14.2 数据库连接池优化 77 14.2.1 对线程池加锁 77 14.2.2 连接不够用时抛出异常 77 14.3 数据库连接池之代理模式 78 14.3.1 静态代理 78 14.3.2 动态代理 84 14.4 DBCP数据库连接池的使用 87 第十五节 jdbc轻量级封装 88 15.1 将结果集封装为Map 88 15.1.1 ResultSetMetaData演示 88 15.1.2解决多行记录的问题 89 15.1.3 Map结果集的封装 90 15.2 将结果集封装为对象 91 15.2.1 user表POJO的编写 91 15.2.2 Bean结果集的封装 92 15.3 将结果集封装为List 94 15.4 策略模式的应用 96 15.4.1 Map结果集策略模式应用 96 15.4.2 Bean结果集策略模式应用 97 15.4.3 List结果集策略模式应用 98 15.4.4 单元测试 99 15.5 模板模式的应用 100 第十六节 近期推出 101
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ADreamClusive

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值