day17-jdbc 6.Connection介绍








package cn.itcast.jdbc;
import com.mysql.jdbc.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//解决关于加载驱动问题
public class JdbcDemo2 {
public static void main(String[] args) throws SQLException, ClassNotFoundException { //1.注册驱动
//DriverManager.registerDriver(new Driver());//一注册驱动,驱动就加载到内存里面了 也就是说我们就可以用它了 加载了两个驱动
Class.forName("com.mysql.jdbc.Driver");//优点是加载一次 替换registerDriver()这个方法 这个不耦合,根本就没用mysql驱动的东西 不是意味着那就不用驱动了,只是不依赖jar包
//在代码上、表现上根本就看不到驱动那包 用的都是公共的那种接口(Connection、DriverManager、ResultSet、SQLException、Statement),就是JDK里面提供的公共的接口
//编程的都知道不依赖任何东西是最好的,因为没有耦合,但是那是不可能的。所以要尽量让耦合度降低
//加载mysql驱动
Class.forName("oracle.jdbc.driver.OracleDriver");//加载oracle驱动
//它怎么知道这是oracle驱动还是mysql驱动呢?它是如何区分的? //String url = "jdbc:mysql://localhost:3306/day17";
String url = "jdbc:mysql:///day17"; //2.获取连接对象
//Connection con = DriverManager.getConnection(url, "root", "");
Connection con = (Connection) DriverManager.getConnection(url, "root", "");
System.out.println(con);
//connection是接口,是驱动,驱动肯定把这个接口实现了 编程用最顶层去接收操作起来会比较方便 前面是父,后面是子 用最顶层接收
//3.通过连接对象获取操作sql语句的Statement
Statement st = con.createStatement();
//4.操作sql语句
String sql = "select * from user";
ResultSet rs = st.executeQuery(sql);//ResultSet就是查询的结果,可以想象成是集合,但是它不是集合 //5.遍历结果集
/* boolean flag = rs.next();//向下移动,返回值为true,代表有下一条记录。 System.out.println(flag);
int id = rs.getInt(1);
int id1 = rs.getInt("id");
System.out.println(id);
System.out.println(id1);
String username = rs.getString(2);
String username1 = rs.getString("username");
System.out.println(username);
System.out.println(username1);*/
while(rs.next()){
int id = rs.getInt("id");
String username = rs.getString("username");
String password = rs.getString("password");
String email = rs.getString("email");
System.out.println(id+" "+username+" "+password+" "+email);
}
//只要Java程序跟任何设备进行了连接,用完之后必须释放资源。最简单基础班讲I/O流,Java跟文件进行了连接,用完之后关闭文件流。数据库也是一个设备。Java跟数据库连接上了用完之后也要关闭。必须把资源释放。
//6.释放资源
rs.close();//结果集得关
st.close();
con.close();
//直接把con关闭了,数据库和程序断开了。但是statement和resultset没有及时释放,它还在内存存着。close()是释放和回收资源。
//close()的顺序和进门出门是一样的,是进门的时候先进大门,出门的时候是最后才出大门
//=============
//Java可以操作数据库
}
}
day17-jdbc 6.Connection介绍的更多相关文章
- 深入浅出MyBatis:JDBC和MyBatis介绍
JDBC相关概念 Java程序都是通过JDBC连接数据库的,通过SQL对数据库编程,JDBC是由SUN公司提出的一些列规范,只定义了接口规范,具体实现由各个数据库厂商去实现,它是一种典型的桥接模式. ...
- 学习日常笔记<day17>jdbc基础
1.jdbc入门 1.1.jdbc定义 使用java代码发送sql语句的技术就是jdbc技术 1.2.使用jdbc发送sql前提 需要登录数据库服务器(数据库的IP地址,端口,数据库用户名,密码) / ...
- JDBC driver connection string大全
Database / data source URL format / driver name Value Default port MySQL URL format: jdbc:mysql: ...
- atitit.故障排除------有时会错误com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: soc
atitit.故障排除------有时会错误com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: soc ...
- 超全面的JavaWeb笔记day17<JDBC>
1.JDBC的原理 是由JavaEE提供的连接数据库的规范 需要由各大数据库的厂商提供对JDBC的实现类 2.四大核心类 3.四大参数 driverClassName url username pas ...
- MyBatis源码分析(一):从JDBC到MyBatis 介绍MyBatis的背景,为什么要用MyBatis
一.介绍JDBC JDBC全称Java Database Connectivity,是Java语言规范客户端访问数据库的应用程序接口,所面向的数据库类型为关系型数据库. JDBC的三层架构图: JDB ...
- jdbc 获取connection 对象的三种方式
获取数据库连接方法一:驱动实现类 //创建mysql的Driver对象 Driver driver=new com.mysql.jdbc.Driver(); //jdbc url 定位一个数据库: S ...
- jdbc、Connection pool、jndi的理解和关系
一.概念和理解: ①.jdbc:Java Data Base Connectivity,java数据库连接,最为传统的一种方式,直接连接操作数据库,需要连接时创建连接,使用结束时销毁连接. ②.Con ...
- Mysql——JDBC编程 理论介绍
一.JDBC简介(来自俞琰--数据库老师) Java数据库编程主要使用JDBC技术.JDBC是一种用于执行SQL语句的Java API.它由一组用Java编写的类和接口组成.JDBC为开发人员提供了一 ...
随机推荐
- poj2289二分图多重匹配
题意:给你一张二分图,求右边点到汇点的最小容量(保证流量为n)是多少 题解:二分答案,每次重新建边跑最大流,看是不是为n就好了 #include<map> #include<set& ...
- MySQL 分区知识点(二)
前言: MySQL 5.1+ 版本就开始支持分区功能了. 分区本质上就是在物理文件层面划分了多个物理子表来支撑,或者说是一组底层表的句柄对象的封装. 对于分区表的请求,都是通过句柄对象转化成对存储引擎 ...
- Asp.Net MVC session跨域
目的 在公司项目的某个特定场景中,需要在站点B的后端伪造请求,获取站点A的登录状态,抓取站点A的页面内容,因此要用实现session的跨域.以注册功能为例. 步骤 原理 简单地说,对于ASP.Net应 ...
- 【VS外接程序】利用T4模板生成模块代码
引言 记得第一次做asp.net mvc项目时,可以用model直接生成Html的增删改查页面, 没什么特殊要求都可以不用修改直接用了, 觉得很神奇,效率太高了.后来在做客户端开发时,发现很多模块都是 ...
- shell_script_查询主机名、ip地址 、DNS地址
#!/bin/bashhostnameip=`/sbin/ifconfig eth0|grep "inet addr:"|sed 's/Bcast.*$//'g |awk -F & ...
- NAT打洞
NAT(Network Address Translation)是一种广域网的接入技术,将私有地址转换为合法的公共IP地址,可以完美的解决IP地址不足问题,而且还能有效避免来自外部网络的攻击,隐藏并保 ...
- 纯css 更改原生raiod与 checkbox的样式
原文地址: .checkbox input[type=checkbox], .checkbox-inline input[type=checkbox], .radio input[type=radio ...
- Java 虚拟机-Java内存区域
简要介绍Java的内存区域: 运行时数据区域 HotSpot虚拟机对象 一.概览 二.运行时数据区域 2.1 程序计数器 Program Counter Register,代表当前线程所执行的字节码的 ...
- BZOJ3296:[USACO2011OPEN]Learning Language
浅谈并查集:https://www.cnblogs.com/AKMer/p/10360090.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php? ...
- WPF中DataGrid控件的过滤(Filter)性能分析及优化
DataGrid控件是一个列表控件, 可以进行过滤,排序等.本文主要针对DataGrid的过滤功能进行分析, 并提供优化方案. 1)DataGrid的过滤过程: 用户输入过滤条件 ...