【J2EE】JDBC vs FMDB

原创 2016年05月31日 21:37:51

其实可比性并不大,但是在实现相同功能上一个是规范,一个是具体实现。其实JDBC和ODBC更有可比性。

What?

JDBC是J2EE13规范之一,FMDB是ios平台SQLite数据库框架。

相同点:
1)实现对数据库的链接、访问;
2)链接、访问方式非常类似(原理一样,所以第三方链接都一个套路),都是工程里写好sql增删改查,放在框架里调用。

不同点:
1)JDBC是J2EE规范,所有对数据库的控制底层都是用的JDBC,FMDB是框架(API),只能在SQLite数据库上用,不用可以实现;

How?

JDBC建表

//引入包
import java.sql.*;

public class JDBCExample {
   // 1、定义JDBC driver名字和数据库地址、用户名密码等
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/";

   static final String USER = "username";
   static final String PASS = "password";

   public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      // 2、注册JDBC driver
      Class.forName("com.mysql.jdbc.Driver");
      // 3、打开连接
      conn = DriverManager.getConnection(DB_URL, USER, PASS);
      // 4、建表
      stmt = conn.createStatement();
      String sql = "CREATE DATABASE STUDENTS";
      stmt.executeUpdate(sql);
   }catch(SQLException se){
      se.printStackTrace();
   }catch(Exception e){
      e.printStackTrace();
   }finally{
      try{
         if(stmt!=null)
            stmt.close();
      }catch(SQLException se2){
      }
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }
   }
}
}

JDBC添加

import java.sql.*;

public class JDBCExample {
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/STUDENTS";

   static final String USER = "username";
   static final String PASS = "password";

   public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      Class.forName("com.mysql.jdbc.Driver");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);
      stmt = conn.createStatement();

      String sql = "INSERT INTO Registration " +
                   "VALUES (100, 'Zara', 'Ali', 18)";
      stmt.executeUpdate(sql);

   }catch(SQLException se){
      se.printStackTrace();
   }catch(Exception e){
      e.printStackTrace();
   }finally{
      try{
         if(stmt!=null)
            conn.close();
      }catch(SQLException se){
      }
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }
   }
}
}

JDBC查询

FMDB建表

#pragma  —建立数据库
        NSArray *pathArray = NSSearchPathForDirectoriesInDomains(
        NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *document = [pathArray lastObject];
        NSString *filePath = [document stringByAppendingPathComponent:@"database.db"];
        // NSLog(@"数据库路径:%@", filePath);

FMDB添加

+ (void)insertSynData:(NSArray *)models
{
    AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
    [delegate.db open];
    for (int i = 0; i < models.count; i++) {
        PhotoModel *model = [models objectAtIndex:i];
        NSString *sql = [NSString stringWithFormat:@"insert into t_photo(category,myRowid,timeMark,photoName,billID) values('%@','%@','%@','%@','%@')", model.category, model.myRowid, model.timeMark, model.photoName, model.billID];
            [delegate.db executeUpdate:sql];

    }
    [delegate.db close];
}

FMDB查询

#pragma  mark 所有团流入记录 (含每个团的收入总额)
+ (double)getAllIncome:(NSString *)TID
{
    AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
    [delegate.db open];
    NSString *sql = [NSString
        stringWithFormat:@"SELECT sum(a.money) income FROM (SELECT * FROM t_BillItem) a, (SELECT * FROM t_Bill) b, (SELECT * FROM t_Order) c WHERE a.BillID = b.ID AND b.orderid = c.id AND b.orderid='%@'and a.selectCategory = '1' GROUP BY c.id   ", TID];
    FMResultSet *result = [delegate.db executeQuery:sql];
    double borrows = 0.0;
    while ([result next]) {
        double borrow = [[result stringForColumn:@"income"] doubleValue];
        borrows = borrow + borrows;
    }
    [delegate.db close];
    return borrows;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

J2EE学习篇之--JDBC详解

今天我们来说一下关于JDBC的相关知识,关于JDBC我想大家都不陌生了,而且我记得早就开始使用它了,记得那是大二的时候做课程设计,但是那时候是为了完成任务,所以遇到问题就google,那时候也没有时间...

J2EE的13个规范之JDBC

如果让你接触一样新的东西,你可能感觉无所适从,但是如果本来就是旧事物的话,你学习起来还难吗?   一、ODBC,我们的老朋友              ODBC(Open Database Conne...

J2EE学习篇之--JDBC详解

摘要: JDBC(Java Data Base Connectivity,Java数据库连接),由一些接口和类构成的API。 J2SE的一部分,由java.sql,javax.sql包组成。 应用程序...

J2EE规范——JDBC

JDBC,Java数据库连接。

J2EE系列之Spring4学习笔记(十)--Spring对JDBC的支持

一、JdbcDaoSupport类的引入 上一节的工程里面数据库操作实现类StudentDaoImpl类中要想使用Spring操作数据库需要首先定义JdbcTemplate类的对象,这一节我们引入S...

【J2EE十三个规范】数据层之JDBC

【学习概要】     在上篇博客中,介绍了两个Web层的规范,本篇博客,继续J2EE十三个规范的学习,下面要介绍的便是数据层的JDBC。 【学习笔记】     一.什么是JDBC    ...

J2EE的13个规范之(二) JDBC 及其使用

本文详细的为你介绍了什么是JDBC,JDBC的发展历史,以及JDBC的使用!java程序是如何与sqlserver 数据库, orcale数据库连接的!JDBC(Java Data Base Conn...

J2EE——JDBC

Java Data Base Connectivity (JDBC) JDBC API以一种统一的方式来对各种各样的数据库进行存取。和ODBC一样,JDBC为开发人员隐藏了不同数据库的不同特性。另...

J2EE规范JDBC与JNDI

1.  JDBC: JDBC的全称是Java Database Connectivity,它是一种用于执行SQL语句的Java API。 为访问不同的数据库提供了一种统一的途径,其作用和ODBC...
  • Ldbiy
  • Ldbiy
  • 2014年11月04日 17:34
  • 620

J2EE中的JDBC

什么是JDBC?      JDBC是以统一方式访问数据库的API.可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【J2EE】JDBC vs FMDB
举报原因:
原因补充:

(最多只允许输入30个字)