以前学习java数据库操作,学得那叫糊里糊涂,各种JDBC常用的类和接口根本是傻傻分不清啥是干嘛的。只是套着用用吧。

不过这次好歹清楚些了,呜呜,学习有阶段性,多次重复才有好效果,多么痛的领悟。

工程名字是瞎起的,本来想复习继承多态来着,(逃

然后再来说一下JDBC,JDBC是一种可用于执行SQL语句的Java API,是连接应用程序和数据库的纽带,可以为多种关系数据库提供统一访问,它由一组用java编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。

但大多数的书里面都会讲到JDBC-ODBC,然后就很懵逼,啥啊!

那么先说啥是ODBC吧。

开放数据库连接(Open Database Connectivity,ODBC)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。ODBC基于SQL,并把它作为访问数据库的标准。这个接口提供了最大限度的相互可操作性:一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。一个软件开发者开发的客户/服务器应用程序不会被束定于某个特定的数据库之上。ODBC可以为不同的数据库提供相应的驱动程序。对于ASP程而言,ODBC数据源是ASP程序的ADO组件和数据库之间的接口。

由于微软的数据库不是用Java语言来编写的,但是我们需要用java语言连接微软的数据库,这样就要编写一个桥连接,使java语言编写的代码也可以操作数据库。也就是说:

JDBC是使用通过JAVA的数据库驱动直接和数据库相连,而JDBC-ODBC连接的是ODBC的数据源,真正与数据库建立连接的是ODBC。这下懂了吧。
不过我还在网页上看见另一句话,建议使用JDBC直接连接,同时最好使用连接池!

说的真对,这么多年用MYSQL,一直都是用了一个叫“mysql-connector-java-5.1.35-bin.jar”的jar包,也就是java的数据库驱动,还没有用过ODBC呢,SQL Server没怎么学过,orz。。。

贴代码:

1.连接数据库

要访问数据库,首先加载数据库的驱动程序,只需要在第一次访问数据库时家再一次,然后每次访问数据时创建一个Connection对象,接着执行操作数据库的SQL语句,最后完成数据库操作后销毁前面的Connection对象即可。

将连接数据库作为单独的一个方法,并以Connection对象作为返回值,遇到对数据库执行操作的程序时可以直接调用Conn类的getConnection方法获取连接,增加代码重用性。

 package DBManager;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class DBConn {
Connection conn;
public Connection getConnection(){//目的是为了获取与数据库的连接,在主方法中调用该方法。
//JDBC技术是一种执行SQL语句的javaAPI。
try {
Class.forName("com.mysql.jdbc.Driver");//java.lang包的静态方法来加载JDBC驱动程序。。加载失败异常ClassNotFoundException
System.out.println("db run success");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/littlet","root","1234");//通过访问数据库的URL获取数据库连接对象java.sql包中类DriveManager的静态方法。。连接失败异常SQLException
System.out.println("db connect success");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
//关闭Connection对象
public static void closeConnection(Connection conn){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//回滚
public static void rollbackConnection(Connection conn){
try {
conn.rollback();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

2.确定存储的类型,就是数据库中放的东西,就是我们处理的这个对象。

 package domain;

 public class Student {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} }

3.java数据库操作代码

 package DBManager;

 import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import domain.Student; public class Select {
Connection con;
PreparedStatement sql;
ResultSet res;//ResultSet类的next()方法返回值就是boolean类型的数据,当游标移动到最后一行会返回false。
public void select(int id){
DBConn db=new DBConn();
con=db.getConnection();
try {
sql=con.prepareStatement("select * from stub where id=?");
sql.setInt(1,id);
res=sql.executeQuery();//执行预处理语句
while(res.next()){
String name=res.getString(2);
System.out.println(name);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
db.closeConnection(con);
} }
}

为什么执行SQL语句用的是PrepareStatement对象而不是Statement对象呢?有什么区别吗?

 sql=con.createStatement();有了Statement对象后,可以调用相应的方法实现对数据库的查询和修改

 res.sql.executeQery(select * from stub);//获取查询结果集使用“%”代替0个或多个字符,使用下划线“_”代替一个字符实现模糊查询。+"where name like'zhang%'"

 while(res.next()){

   int id=rew.getInt("id");

   String name=res.getString("name");

 }

向数据库发送一个SQL语句,数据库中的SQL解释器负责把SQL语句生成底层的内部命令,然后执行该命令,完成相关的数据库操作,但是不断地向数据库提交SQL语句,会增加DB中SQL解释器的负担,影响执行速度。对于JDBC,可以通过Connection对象的preparedStatement方法对SQL语句进行预处理。

复习java数据库操作的总结的更多相关文章

  1. Java数据库操作

    一.JDBC 1.JDBC Java数据库连接,用于Java程序中实现数据库操作功能,java.sql包中提供了执行SQL语句,访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口及类. 2. ...

  2. Java数据库操作(MySQL与SQLserver)

    在java编程开发中,数据库的开发是重头戏. MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品: SQL Server是由Microsoft开发 ...

  3. Java 数据库操作

    目录 Java数据库组织架构 下载驱动包 连接数据库 连接数据库的三个步骤 连接数据库的高开销 Statement接口介绍 PreparedStatement类 使用PreparedStatement ...

  4. Java数据库操作(JDBC)

    JDBC Java数据库连接(Java DataBase Connectivity,JDBC)用于在Java程序中实现数据库操作功能,它提供了执行SQL语句.访问各种数据库的方法,并为各种不同的数据库 ...

  5. Java数据库操作类演示

    只在mysql上测试过,不知道算不算好使​1. [代码][Java]代码     package org.load.demo; import java.io.IOException;import ja ...

  6. Java 学习笔记(16)——Java数据库操作

    数据库操作是程序设计中十分重要的一个部分,Java内置JDBC来操作数据库 JDBC使用 JDBC--Java Database connecting Java数据库连接:本质上JDBC定义了操作数据 ...

  7. Java数据库操作学习

    JDBC是java和数据库的连接,是一种规范,提供java程序与数据库的连接接口,使用户不用在意具体的数据库.JDBC类型:类型1-JDBC-ODBC桥类型2-本地API驱动类型3-网络协议驱动类型4 ...

  8. java数据库操作:JDBC的操作

    1,JDBC注意操作类及接口: 数据库操作过程: 1)打开数据库服务 2)连接数据库:一般都要输入用户名,密码, 3)操作数据库:创建表:查询表,更新,记录. 4)关闭数据库. 1,DriverMan ...

  9. Java数据库操作大全

    1.提取单条记录 //import java.sql.*; Connection con=null; Statement stmt=null; ResultSet %%6=null; try { Cl ...

随机推荐

  1. Android 修改系统默认density

    如你所知在Anroid N 中,系统添加了多个级别的密度值供用户选择. 系统的默认的值就是 ro.sf.lcd_density 同时其他级别的默认值的大小基础也是以默认值为基础,然后乘以不同的比例得到 ...

  2. Ubuntu—安装网络调试工具

    https://pan.baidu.com/s/1G6oHXp3SvcN6HMAMqTdqhA 1,在ubuntu的终端下,切换到网络调试工具所在的目录 $ cd 桌面/    #我的放在桌面上 2, ...

  3. 【递归入门】组合的输出:dfs

    题目描述 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r < = n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数. 现要求你不用递归的方 ...

  4. 【转载】android 常用开源框架

    对于Android初学者以及对于我们菜鸟,这些大神们开发的轻量级框架非常有用(更别说开源的了). 下面转载这10个框架的介绍:(按顺序来吧没有什么排名). 一.  Afinal 官方介绍: Afina ...

  5. 【转载】inotify+rsync实时同步 解决同步慢问题 (转载备记)

    原文地址:http://www.ttlsa.com/web/let-infotify-rsync-fast/ 背景 我们公司在用inotify+rsync做实时同步,来解决分布式集群文件一致性的问题. ...

  6. 使用HTML5制作loading图

    昨天发了一篇使用HTML5 canvas写的时钟的文章,今天发一篇关于使用HTML5制作loading图的文章. <!DOCTYPE html> <html> <head ...

  7. c++ 反射类型

    来自: 实现代码=== // // Created by lizhen on 2017/9/29. // #ifndef BOOST_ALL_CALLBACKFUNCTION_H #define BO ...

  8. iOS- <项目笔记> UIApplication常见属性与方法总结

    UIApplication 1.简介 1> 整个应用程序的象征,一个应用程序就一个UIApplication对象,使用了单例设计模式 2> 通过[UIApplication sharedA ...

  9. flash builder 4.6在debug调试时需要系统安装flashplayer debug版本

    http://blog.csdn.net/cupid0051/article/details/46684295

  10. Git命令基本操作

    本文从以下九个方面,介绍Git命令的基本操作: 一. Git安装 二. Git基本配置 三. 创建Git仓库 四. 获得Git仓库 五. 提交更新 六. 提交历史查看 七. 远程仓库 八. 打Tags ...