1. package cn.itcast.jdbc;
  2. import com.mysql.jdbc.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7. //解决关于加载驱动问题
  8. public class JdbcDemo2 {
  9. public static void main(String[] args) throws SQLException, ClassNotFoundException {
  10.  
  11. //1.注册驱动
  12. //DriverManager.registerDriver(new Driver());//一注册驱动,驱动就加载到内存里面了 也就是说我们就可以用它了 加载了两个驱动
  13. Class.forName("com.mysql.jdbc.Driver");//优点是加载一次 替换registerDriver()这个方法 这个不耦合,根本就没用mysql驱动的东西 不是意味着那就不用驱动了,只是不依赖jar包
  14. //在代码上、表现上根本就看不到驱动那包 用的都是公共的那种接口(Connection、DriverManager、ResultSet、SQLException、Statement),就是JDK里面提供的公共的接口
  15. //编程的都知道不依赖任何东西是最好的,因为没有耦合,但是那是不可能的。所以要尽量让耦合度降低
  16. //加载mysql驱动
  17. Class.forName("oracle.jdbc.driver.OracleDriver");//加载oracle驱动
  18. //它怎么知道这是oracle驱动还是mysql驱动呢?它是如何区分的?
  19.  
  20. //String url = "jdbc:mysql://localhost:3306/day17";
  21. String url = "jdbc:mysql:///day17";
  22.  
  23. //2.获取连接对象
  24. //Connection con = DriverManager.getConnection(url, "root", "");
  25. Connection con = (Connection) DriverManager.getConnection(url, "root", "");
  26. System.out.println(con);
  27. //connection是接口,是驱动,驱动肯定把这个接口实现了 编程用最顶层去接收操作起来会比较方便 前面是父,后面是子 用最顶层接收
  28. //3.通过连接对象获取操作sql语句的Statement
  29. Statement st = con.createStatement();
  30. //4.操作sql语句
  31. String sql = "select * from user";
  32. ResultSet rs = st.executeQuery(sql);//ResultSet就是查询的结果,可以想象成是集合,但是它不是集合
  33.  
  34. //5.遍历结果集
  35. /* boolean flag = rs.next();//向下移动,返回值为true,代表有下一条记录。
  36.  
  37. System.out.println(flag);
  38. int id = rs.getInt(1);
  39. int id1 = rs.getInt("id");
  40. System.out.println(id);
  41. System.out.println(id1);
  42. String username = rs.getString(2);
  43. String username1 = rs.getString("username");
  44. System.out.println(username);
  45. System.out.println(username1);*/
  46. while(rs.next()){
  47. int id = rs.getInt("id");
  48. String username = rs.getString("username");
  49. String password = rs.getString("password");
  50. String email = rs.getString("email");
  51. System.out.println(id+" "+username+" "+password+" "+email);
  52. }
  53. //只要Java程序跟任何设备进行了连接,用完之后必须释放资源。最简单基础班讲I/O流,Java跟文件进行了连接,用完之后关闭文件流。数据库也是一个设备。Java跟数据库连接上了用完之后也要关闭。必须把资源释放。
  54. //6.释放资源
  55. rs.close();//结果集得关
  56. st.close();
  57. con.close();
  58. //直接把con关闭了,数据库和程序断开了。但是statement和resultset没有及时释放,它还在内存存着。close()是释放和回收资源。
  59. //close()的顺序和进门出门是一样的,是进门的时候先进大门,出门的时候是最后才出大门
  60. //=============
  61. //Java可以操作数据库
  62. }
  63. }

day17-jdbc 6.Connection介绍的更多相关文章

  1. 深入浅出MyBatis:JDBC和MyBatis介绍

    JDBC相关概念 Java程序都是通过JDBC连接数据库的,通过SQL对数据库编程,JDBC是由SUN公司提出的一些列规范,只定义了接口规范,具体实现由各个数据库厂商去实现,它是一种典型的桥接模式. ...

  2. 学习日常笔记<day17>jdbc基础

    1.jdbc入门 1.1.jdbc定义 使用java代码发送sql语句的技术就是jdbc技术 1.2.使用jdbc发送sql前提 需要登录数据库服务器(数据库的IP地址,端口,数据库用户名,密码) / ...

  3. JDBC driver connection string大全

    Database   / data source URL format /   driver name Value Default port MySQL URL format: jdbc:mysql: ...

  4. atitit.故障排除------有时会错误com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: soc

    atitit.故障排除------有时会错误com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: soc ...

  5. 超全面的JavaWeb笔记day17<JDBC>

    1.JDBC的原理 是由JavaEE提供的连接数据库的规范 需要由各大数据库的厂商提供对JDBC的实现类 2.四大核心类 3.四大参数 driverClassName url username pas ...

  6. MyBatis源码分析(一):从JDBC到MyBatis 介绍MyBatis的背景,为什么要用MyBatis

    一.介绍JDBC JDBC全称Java Database Connectivity,是Java语言规范客户端访问数据库的应用程序接口,所面向的数据库类型为关系型数据库. JDBC的三层架构图: JDB ...

  7. jdbc 获取connection 对象的三种方式

    获取数据库连接方法一:驱动实现类 //创建mysql的Driver对象 Driver driver=new com.mysql.jdbc.Driver(); //jdbc url 定位一个数据库: S ...

  8. jdbc、Connection pool、jndi的理解和关系

    一.概念和理解: ①.jdbc:Java Data Base Connectivity,java数据库连接,最为传统的一种方式,直接连接操作数据库,需要连接时创建连接,使用结束时销毁连接. ②.Con ...

  9. Mysql——JDBC编程 理论介绍

    一.JDBC简介(来自俞琰--数据库老师) Java数据库编程主要使用JDBC技术.JDBC是一种用于执行SQL语句的Java API.它由一组用Java编写的类和接口组成.JDBC为开发人员提供了一 ...

随机推荐

  1. SQL必知必会 记录

    登录数据库mysql -u root -p查看所有数据库  show databases:选择数据库  use 数据库名:查看所有表      show tables查看表结构      descri ...

  2. 分享知识-快乐自己:Spring线程池配置

    Spring通过ThreadPoolTaskExecutor实现线程池技术,它是使用jdk中的Java.util.concurrent.ThreadPoolExecutor进行实现. Spring 配 ...

  3. java调接口

    package util; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputSt ...

  4. Tomcat_总结_01_tomcat环境搭建

    一.准备条件 1.安装jdk 二.安装tomcat 1.下载tomcat 去官网下载  64-bit Windows zip  版本的tomcat,并解压 https://tomcat.apache. ...

  5. [ Laravel 5.5 文档 ] 处理用户请求 —— HTTP 请求的过滤器:中间件

    [ Laravel 5.5 文档 ] 处理用户请求 —— HTTP 请求的过滤器:中间件 http://laravelacademy.org/post/7812.html 简介 中间件为过滤进入应用的 ...

  6. mysql时间随笔

    SELECT FROM_UNIXTIME(create_time,'%Y-%m-%d %H:%i:%s') FROM `order`; select date_add(FROM_UNIXTIME(cr ...

  7. ASP.NET MVC 缓存Outputcache (局部动态)

    首先说一下需求: 比如我需要对网站首页做缓存,于是在首页对于的Action上贴上了Outputcache,接着问题就来了,首页上的有部分数据是不能做缓存的,比如个人信息,不然,每个人登陆都是看到第一个 ...

  8. 学习动态性能表(17)--v$segstat&v$segment_statistics

    学习动态性能表 第17篇-(1)-V$SEGSTAT  2007.6.13 本视图实时监控段级(segment-level)统计项,支持oracle9ir2及更高版本 V$SEGSTAT中的常用列 T ...

  9. Python 算法之冒泡排序

    冒泡排序 冒泡排序算法的原理如下:(从后往前) 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是 ...

  10. CentOS 7.2 PowerShell下安装Azure Module

    目前Linux版本的PowerShell还是Alpha版本,所以很多功能不能使用. 比如通过Powershell命令:install-module AzureRM在线安装Azure的Module.但我 ...