今天简单的说一下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. Struts整合ExtJS

    1准备工作: 除了平时引入的struts2的jar包以外,还需要引入struts2-json-plugin-2.1.8.1.jar:json-lib-2.1.jar这两个包. 2.建立我们的model ...

  2. Android中禁止SlidingPaneLayout的侧滑功能

    Android中使用android.support.v4.widget.SlidingPaneLayout实现侧滑功能的时候,可能出现滑动屏幕时与SlidingPaneLayout的侧滑发生冲突,查看 ...

  3. easyui datagrid 的数据加载Json数据

    var obj = {'total':100,'rows':[{id:'1',name:'一'},{id:'2',name:'二'}]}; $('#tt').datagrid('loadData',o ...

  4. Java中哈希表(Hashtable)是如何实现的

    Java中哈希表(Hashtable)是如何实现的 Hashtable中有一个内部类Entry,用来保存单元数据,我们用来构建哈希表的每一个数据是Entry的一个实例.假设我们保存下面一组数据,第一列 ...

  5. 【51NOD】数据流中的算法

    [算法]数学 [题解] 1.平均数:累加前缀和.//听说要向下取整? 2.中位数:双堆法,大于中位数存入小顶堆,小于中位数存入大顶堆,保证小顶堆内数字数量≥大顶堆,奇数则取小堆顶,偶数则取两堆顶/2. ...

  6. 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H. Skiing (拓扑排序+假dp)

    题目链接:https://nanti.jisuanke.com/t/16957 题目: In this winter holiday, Bob has a plan for skiing at the ...

  7. 关于win7局域网共享的相关设置

    模式1> 被访问方相关设置步骤: (1)被共享方的电脑开通来宾用户 (2)被共享方的电脑的本地安全策略需要设置成 "仅来宾" (3)被共享方的电脑高级共享设置中 " ...

  8. Python 源码学习之内存管理 -- (转)

    Python 的内存管理架构(Objects/obmalloc.c): _____ ______ ______ ________ [ int ] [ dict ] [ list ] ... [ str ...

  9. LINUX-内核-中断分析-中断向量表(3)-arm【转】

    转自:http://blog.csdn.net/haolianglh/article/details/51986987 arm中断概念 在<ARM体系结构与编程>第9章中说到,ARM 中有 ...

  10. C++之参数总结

    函数的形参为函数提供了已命名的局部存储空间,它是在函数的形参表中定义的,并由调用函数时传递给函数的实参初始化,而形参的 初始化与变量的初始化一样,如果形参具有非引用类型,则复制实参的值,如果形参为引用 ...