java 数据库编程 学习笔记 不断更新

率先种:通过ODBC连接数据库
JAVA语言的跨平台的行事本领、优异的图像管理技艺(笔者深信今后从不那种语言能够超过JAVA在网络上的图形管理工科夫卡塔尔国、互连网通讯功效、通过JDBC数据库访问本领等等,让大家何人都不可不可以认JAVA语言是SUN公司对此Computer界的叁个了不起的进献。作者能够描述那样二个场景:有一天你上网完全能够不用IE
或许NETSCAPE,上网宛如玩游戏,你能够取得游戏那么非凡的图像和彼此的以为,倘若您玩过UO,或然你就驾驭那种痛感了,但是JAVA做成的东西必定会超越UO的,因为不单单是游戏,亦不是单单是浏览器,若是您愿意你能够把持有的那全部用Java完全集成出来!!!笔者不是夸大JAVA的效果,我们能够访谈一下的特别社区主次,你就能够找到一种以为了:相信本人还未说怎么假话
。好了,不说废话了,今后自己向你介绍JAVA的数据库访问技术—-JDBC数据库访谈技术。
JDBC工夫其实是一种能因此JAVA语言访谈任何构造化数据库的应用程序接口(APIState of Qatar(Sun那样说的,笔者也不晓得是还是不是的确卡塔尔,何况今后的JDBC
3.0据Sun说也能访谈Execel等石英钟格程序!
JDBC对于数据库的拜望有多样格局,大家那边只是介绍三种:
第一种是通过ODBC做为“桥”(BridgeState of Qatar对数据库访谈,第两种是一向对数据库访问。
大家先来探视第一种JDBC–ODBC访问的流程: JDBC Driver
Mannager-JDBC-ODBC桥-ODBC-数据库顾客机驱动库-数据库服务器-再次回到查询结果,在此种访谈中值的大家注意的是即使JAVA是”Write
Once ,Run
Anywhere”,可是假如因而这种访问的话,需求客商端必需设置ODBC和有照顾的数据库客商机的驱动,当您看了上边包车型地铁此外叁个流程的时候大概你会想:明明下一种更方面,为何还要有其一东西的发出!呵呵,因为,未必全数的数据库服务器提供商都提供上面包车型客车JDBC驱动程序,所以就有了JDBC-ODBC
Bridge。 接着再让我们来探视第三种访谈流程: JDBC Driver
Mannager-局地JDBC驱动-顾客端数据库-数据库服务器-重临查询结果,这种访谈事实上是更动JDBC调用为对应的数据库的客户端API调用,这种情势的拜见须求相应的数据库提供商提供对应的JDBC驱动程序,但是有一种收益,能够单独于odbc用于能够随处可Run的顾客端的浏览器中的Applet程序。
咱们上边将给大家多少个透过JDBC-ODBC桥数据库访谈的实例,可是在看上边包车型地铁例子前小编想问大家二回:JDK1.3装了吗?数据库驱动装了呢?你该未有应用Linux吧?纵然java支持Linux,但是老兄笔者可不曾选择Linux哟(那同JAVA的Write
Once ,Run
Anywhere未有提到卡塔尔(قطر‎,由于使用了运维于Win上边包车型地铁ODBC,笔者提出您看看这篇东西,不然你一旦有了难点,出持续结果那岂不是要怪小编,冤枉啊!
哎呀,说了那样多的废话,仍然让我们来探问到底JDBC的调用吧!既然大家是透过odbc访谈数据库,所以这么些odbc是跑不了的,我们先来安装你的odbc:展开你的odbc数据源-接受系统dsn(Click加新的dsn-卡塔尔国-接下来输入接收数据库类型、输入dsn名:、选用服务器、连接数据库的艺术、输入数据库的登入顾客和密码-测验连接,假设测试成功的话,那么您的dsn就创制好了,作者的dsn名称为Sqlserver.使用的是sqlserver7.0,以
“sa”登入,密码为空。那个东西都是背后要用道的!
好了下边让大家来看程序代码:
//###########################################################
//代码起头 import java.sql.*;
//加载java数据连接包,java基本具有的数据库的调用的都在此个东西里面
public class InsertCoffees { public static void main(String args[]卡塔尔国 {
String url = “jdbc:odbc:sqlserver”;
//得到连接的url名,注意sqlserver是dsn名 Connection con;
//实例化八个Connection对象 Statement stmt; String query = “select *澳门金沙vip,
from col_link”; //选取全体的Col_link表中的数据输出 try {
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”卡塔尔(قطر‎; //加载jdbc-odbc桥驱动 }
catch(java.lang.ClassNotFoundException e卡塔尔国 {
System.err.print(“ClassNotFoundException: “State of Qatar; //加载jdbc-odbc桥错误
System.err.println(e.getMessage(卡塔尔(قطر‎卡塔尔; //其他错误 } try { con =
DriverManager.getConnection(url, “sa”, “”卡塔尔(قطر‎; //数据库连接 stmt =
con.createStatement(卡塔尔(قطر‎; //Create 多个表明 stmt.executeUpdate(“CREATE
TABLE col_link (sitename varchar (20卡塔尔国 NULL ,siteurl varchar (50卡塔尔 NULL卡塔尔(قطر‎”卡塔尔国; //实施了二个sql语句生成了多个表col_link的表
stmt.executeUpdate(“insert into col_link values(‘ASP中华网’,”)”);
stmt.executeUpdate(“insert into col_link values(‘永世到底有多少间距’,”卡塔尔(قطر‎”卡塔尔;
//实施三个insert into语句 stmt.executeUpdate(“update col_link set
siteurl=” where siteurl=””卡塔尔(قطر‎; //试行三个update语句,更新数据库
ResultSet rs = stmt.executeQuery(query卡塔尔(قطر‎; //重回三个结实集
System.out.println(“Col_link表中的数据如下(原始数据State of Qatar”卡塔尔国;
//下边包车型客车话语使用了二个while循环打字与印刷出了col_link表中的全体的数额
System.out.println(“站点名 “+” “+”站点地址”卡塔尔;
System.out.println(“—————“+” “+”—————-“卡塔尔; while
(rs.next(卡塔尔(قطر‎卡塔尔(قطر‎ { String s = rs.getString(“sitename”卡塔尔(قطر‎; String f =
rs.getString(“siteurl”卡塔尔国; //获得数据库中的数据 System.out.println(s + ” “

近些日子始发读书java,感到java的数据库编制程序需求发个散文记录一下,话非常的少说
切入主旨。

1、加载JDBC驱动程序:  

  • f); /*String t = rs.getString(1); String l = rs.getString(2);
    System.out.println(t + ” ” + l);*/
    /*jdbc提供了二种办法鉴定识别字段,一种是行使getXXX(注意这里的getXXX表示取差异档案的次序字段的例外的主意卡塔尔国取得字段名,
    第二种*是透过字段索引,在那间笔者把第三种方式注释了*/
    /*您能够访谈那些接二连三获得getxxx的用法:_retrievingTable.html*/ }
    stmt.close(State of Qatar; con.close(卡塔尔国; //上面包车型大巴语句关闭申明和连接 }
    catch(SQLException ex卡塔尔(قطر‎ { System.err.println(“SQLException: ” +
    ex.getMessage(卡塔尔国卡塔尔; //显示数据库连接错误或许查询错误 } } } //代码截止

 

        在连年数据库以前,首先要加载想要连接的数据库的驱动到JVM(Java虚构机),再经过java.lang.Class类的静态方法forName(String  className卡塔尔(قطر‎落成。

一.数据库访谈技能的简单介绍

例如:   

                     应用程序  →  执行SQL语句 →数据库 → 检索数据结果 → 应用程序  
            

 try{   
   //加载MySql的驱动类   
    Class.forName("com.mysql.jdbc.Driver") ;   

    }catch(ClassNotFoundException e){   
  System.out.println("找不到驱动程序类 ,加载驱动失败!");   
   e.printStackTrace() ;   
 }   
//成功加载后,会将Driver类的实例注册到DriverManager类中。

                ( ODBC         JDBC(四个常用的API卡塔尔(قطر‎)

2、提供JDBC连接的URL  

                 java主要使用的
JDBC驱动程序进行数据库的编制程序

  • 连接U揽胜L定义了连接数据库时的商量、子左券、数据源标志。   
  •  书写格局:左券:子合同:数据源标识   

               Java 应用程序 <——>
JDBC   <——>  数据库

          公约:在JDBC中连连以jdbc起始   

 

      子合同:是桥连接的驱动程序或是数据库管理类别名称。   

 

      数据源标记:标志找到数据库来源之处与连接端口。   

二.JDBC 的种类构造

      例如:(MySql的连接URL)

             应用层

     jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk ;   

              ↓

    useUnicode=true:表示使用Unicode字符集。假设characterEncoding设置为
  

             驱动层

    gb2312或GBK,本参数必得设置为true 。

                ↓

  characterEncoding=gbk:字符编码形式。

            各样接口

 

    •Driver •Connection •Statement •ResultSet 

    sqlserver的连接URl

 

   
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname 

 

     桥连接  

三.java.sql.包

    //
url表示须求三番五次的数据源的地方,这时接收的是JDBC-ODBC桥的连年方式,url是“jdbc:odbc:数据源名”
    String url = “jdbc:odbc:StudentManger”;

接口名

说明

Connection

此接口表示与数据的连接

PreparedStatement

此接口用于执行预编译的 SQL 语句

ResultSet

此接口表示了查询出来的数据库数据结果集

Statement

此接口用于执行 SQL 语句并将数据检索到 ResultSet 中

3、创立数据库的连接

 

  • 要连接数据库,须要向java.sql.DriverManager乞请并收获Connection对象, 该对象就象征三个数据库的总是。
      
  •  使用DriverManager的getConnectin(String url , String username ,
    String password 卡塔尔(قطر‎方法传入内定的欲连接的数据库的门路、数据库的顾客名和密码来获取。
      

类名

说明

DriverManager

此类用于加载和卸载各种驱动程序并建立与数据库的连接

Date

此类包含将 SQL 日期格式转换成 Java 日期格式的各种方法

Time

此类用于表示时间

TimeStamp

此类通过添加纳秒字段为时间提供更高的精确度

   

四.JDBC 编制程序要点

//连接MySql数据库,用户名和密码都是root   
     String url = "jdbc:mysql://localhost:3306/test" ;    
     String username = "root" ;   
     String password = "root" ;   
     try{   
    Connection con =DriverManager.getConnection(url , username , password ) ;   
     }catch(SQLException se){   
    System.out.println("数据库连接失败!");   
    se.printStackTrace() ;   
     }   

在Java中使用数据库实行JDBC编制程序时,Java程序中经常看到应富含下述几片段内容:

4、创建二个Statement  

        (1卡塔尔国 在前后相继的首部用import语句将java.sql包引入程序:

 

         import java.sql.*;

 •要推行SQL语句,必得获得java.sql.Statement实例,Statement实例分为以下3种档案的次序:   

        (2State of Qatar 使用Class.forName(
卡塔尔方法加载相应数据库的JDBC驱动程序。若以加载jdbc-odbc桥为例,则对应的语句格式为:

      1、实践静态SQL语句。平日通过Statement实例实现。