今天简单的说一下jdbc,本来这玩意儿也很简单。

大家只需要记住其中的几个重要的类就行了,它们都在sql包里。今天主要是拿mysql来连接。先看一下主要的几个类吧。

1.Conenction

2.Statement

3.ResultSet

废话不多说我直接上代码了,因为实在很简单

import java.sql.*;

//Java DataBase Connectivity
public class Main { public static void main(String[] args) { }
} class Init{
//用于连接的账号和密码
private String user;
private String passw;
private String protocol; //收集statement connenction resultset的对象方便清理
private Statement statement = null;
private Connection connection = null;
private ResultSet resultset = null; public String getUser() {
return user;
} public void setUser(String user) {
this.user = user;
} public String getPassw() {
return passw;
} public void setPassw(String passw) {
this.passw = passw;
} public String getProtocol() {
return protocol;
} public void setProtocol(String protocol) {
this.protocol = protocol;
} //返回一个connection引用的方法
public Connection getConnection() throws ClassNotFoundException{
//利用反射动态加载Driver
Class.forName("com.mysql.jdbc.Driver");
//返回一个Connection对象
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/student",user,passw);
} catch (SQLException e) {
//捕获打印异常栈
e.printStackTrace();
}
return connection;
} //返回一个Statement的对象
public Statement getStatement(){
Statement statement = null;
try {
statement = getConnection().createStatement();
} catch (ClassNotFoundException | SQLException e) {
//捕获打印异常栈
e.printStackTrace();
}
return statement;
} //对表进行增加数据的操作
public void IDU(String s){
//statement 被调用返回给字段statement
if(statement == null){
statement = getStatement();
} try {
statement.executeUpdate(s);
} catch (SQLException e) {
e.printStackTrace();
}
finally{
clear();
}
} //表的查询
public void queryData(String s){
if(statement == null){
statement = getStatement();
}
try {
resultset = statement.executeQuery(s);
ResultSetMetaData rsmd = resultset.getMetaData();
//获取字段长度
int count = rsmd.getColumnCount();
//遍历数据
while(resultset.next()){
for(int i = 1;i<= count;i++){
System.out.println(resultset.getObject(i));
}
}
} catch (SQLException e) {
//打印异常栈
e.printStackTrace();
}
finally{
clear();
}
} //对各个占用资源的类进行清理
public void clear(){
try{
if(statement != null){
statement.close();
}
if(connection != null){
connection.close();
}
if(resultset != null){
resultset.close();
}
}
catch(Exception e){
e.printStackTrace();
}
}
}

相信大家都能看懂,哪里不懂或者是哪里有错误请在回复区指出。

JDBC浅析的更多相关文章

  1. JDBC设计理念浅析 JDBC简介(一)

    概念 JDBC是J2EE的标准规范之一,J2EE就是为了规范JAVA解决企业级应用开发制定的一系列规范,JDBC也不例外. JDBC是用于Java编程语言和数据库之间的数据库无关连接的标准Java A ...

  2. JDBC API浅析

    使用java开发数据库应用程序一般都需要用到四个接口:Driver.Connection.Statement.ResultSet 1.Driver接口用于加载驱动程序 2.Connection接口用于 ...

  3. 浅析jdbc建立连接方式与背后的java类加载

    关于jdbc的连接方式#1Connection conn;Class.forName("com.mysql.jdbc.Driver"); //2conn=DriverManager ...

  4. 转载:JMS-ActiveMQ浅析

    ActiveMQ 即时通讯服务 浅析 一. 概述与介绍 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE ...

  5. 浅析Quartz的集群配置

    浅析Quartz的集群配置(一) 收藏人:Rozdy     2015-01-13 | 阅:1  转:22    |   来源   |  分享               1 基本信息 摘要:Quar ...

  6. Mybatis配置信息浅析 MyBatis简介(二)

    官方文档入门篇中有明确说明 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的. SqlSessionFactory 的实例可以通过 SqlSessionF ...

  7. Mybatis sql映射文件浅析 Mybatis简介(三)

    简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML为载体映射SQL 之前提到过,各项配置信息将Mybatis应用的整 ...

  8. Mybatis sql映射文件浅析 Mybatis简介(三) 简介

    Mybatis sql映射文件浅析 Mybatis简介(三)   简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML ...

  9. 从底层源码浅析Mybatis的SqlSessionFactory初始化过程

    目录 搭建源码环境 POM依赖 测试SQL Mybatis全局配置文件 UserMapper接口 UserMapper配置 User实体 Main方法 快速进入Debug跟踪 源码分析准备 源码分析 ...

随机推荐

  1. Windows常用shell命令大全(转)

    [Windows常用shell命令大全] 基于鼠标操作的后果就是OS界面外观发生改变, 就得多花学习成本.更主要的是基于界面引导Path与命令行直达速度是难以比拟的.另外Geek很大一部分是键盘控,而 ...

  2. vue实现菜单权限控制

    大家在做后台管理系统时一般都会涉及到菜单的权限控制问题.当然解决问题的方法无非两种——前端控制和后端控制.我们公司这边的产品迭代速度较快,所以我们是从前端控制路由迭代到后端控制路由.下面我会分别介绍这 ...

  3. uva 12325 Zombie's Treasure Chest

    https://vjudge.net/problem/UVA-12325 题意: 一个箱子,体积为N 两种宝物,体积为S1.S2,价值为V1.V2,数量无限 最多装多少价值的宝物 数据范围:2^32 ...

  4. select + 回调 + 事件循环

    #1. epoll并不代表一定比select好 # 在并发高的情况下,连接活跃度不是很高, epoll比select # 并发性不高,同时连接很活跃, select比epoll好 #通过非阻塞io实现 ...

  5. 启动hbase输出ignoring option PermSize=128m; support was removed in 8.0告警信息

    ./start-hbase.sh starting master, logging to /home/hadoop/hbase-1.2.4/bin/../logs/hbase-hadoop-maste ...

  6. [BZOJ1087][SCOI2005]互不侵犯King解题报告|状压DP

    在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. 好像若干月前非常Naive地去写过DFS... ...

  7. JSX语法规范

    1.只有一个开始节点和一个尾节点 正确的写法 ReactDOM.render( <div>hello,你好</div>, document.body ) 错误的写法,开始节点和 ...

  8. python调参神器hyperopt

    一.安装 pip install hyperopt 二.说明 Hyperopt提供了一个优化接口,这个接口接受一个评估函数和参数空间,能计算出参数空间内的一个点的损失函数值.用户还要指定空间内参数的分 ...

  9. AGC025简要题解

    AGC025简要题解 B RGB Coloring 一道简单题,枚举即可. C Interval Game 考虑可以进行的操作只有两种,即左拉和右拉,连续进行两次相同的操作是没有用的. 左拉时肯定会选 ...

  10. ERROR: do not initialise statics to false

    Question about git commit rule I git commit a patch, The patch has a "static int xxxxxxxxxxxxxx ...