`

JAVA 访问数据库问题

    博客分类:
  • Java
阅读更多
市面上数据库种类繁多,JAVA访问的方式也有所不同。



1、利用数据源



    在本地建一个数据源,指向远程或是本地的数据库,这种方法比较方便,适用于各种数据库,SQL Server,Access等,使用方法如下:开始 - 控制面板 - 管理工具 - 数据源 - 系统 DSN(Data source Name)- 添加 - 选 SQL Server - 填入名称(这里写上mydatabase),选择相应的服务器,后续按提示操作即可。



Java代码
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.ResultSet;  
 
   
public class TestDSN {  
    public static void main(String[] args) {  
        try {  
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
            Connection con = DriverManager.getConnection(  
"jdbc:odbc:mydatabase", "sa", "pa");  
            String sql = "SELECT * From id_mac_rssi";  
            ResultSet rs = con.createStatement().executeQuery(sql);  
            while (rs.next()) {  
                System.out.println("id:" + rs.getString(1) + " mac:" 
 
+ rs.getString(2) + " rssi:" + rs.getString(3));  
            }  
 
            rs.close();  
 
            con.close();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
 


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;


public class TestDSN {
    public static void main(String[] args) {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con = DriverManager.getConnection(
"jdbc:odbc:mydatabase", "sa", "pa");
            String sql = "SELECT * From id_mac_rssi";
            ResultSet rs = con.createStatement().executeQuery(sql);
            while (rs.next()) {
                System.out.println("id:" + rs.getString(1) + " mac:"

+ rs.getString(2) + " rssi:" + rs.getString(3));
            }

            rs.close();

            con.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}




     这种方式相当于把连接数据库的工作交给“数据源”,JAVA 只和“数据源”打交道。优点是通用性好,不需要改变JAVA代码,而且可以访问 Access 这样的没有进程守护的数据库文件,JAVA标准库里包含了相关的库,不需额外添加。缺点是要手动设置或者代码实现添加数据源,一般来说用户希望得到软件后直接就可以用,而不希望做过多的设置。



2、直接访问远程数据库



      这种方式要求远程数据库有进程守护,Oracle,SQL Server,MySql都没问题,但是Access 就不行,它只是一个文件而已。

访问 SQL Server 方式:
      SQL Server 的访问并不轻松,需要下载支持的包,版本不同,支持的包也有差异。这里使用 SQL Server 2005 ,添加用户 leidiqiu ,密码 888888。到微软的网站下载支持的包 sqljdbc.jar 和 sqljdbc4.jar 并添加到环境变量。



Java代码
package com.ldq;  
 
import java.io.FileInputStream;  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.PreparedStatement;  
 
public class Test04 {  
 
    /** 
     * @param args 
     */ 
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        try {  
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
            String sql = "INSERT INTO img(c_id,c_img) VALUES(?,?)";  
            Connection con = DriverManager  
                    .getConnection("jdbc:sqlserver://127.0.0.1:1433;databasename=mydatabase;user=leidiqiu;password=888888");  
            PreparedStatement ps = con.prepareStatement(sql);  
 
            FileInputStream fis = new FileInputStream("img.png");  
            ps.setInt(1, 1003);// 对应第一个 ? 号  
            ps.setBinaryStream(2, fis, fis.available());// 对应第二个 ? 号  
            int rst = ps.executeUpdate();  
            System.out.println(rst);// 数据是否插入成功  
 
            fis.close();  
            ps.close();  
            con.close();  
 
        } catch (Exception e) {  
            e.printStackTrace();  
            // TODO: handle exception  
        }  
    }  


package com.ldq;

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class Test04 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String sql = "INSERT INTO img(c_id,c_img) VALUES(?,?)";
Connection con = DriverManager
.getConnection("jdbc:sqlserver://127.0.0.1:1433;databasename=mydatabase;user=leidiqiu;password=888888");
PreparedStatement ps = con.prepareStatement(sql);

FileInputStream fis = new FileInputStream("img.png");
ps.setInt(1, 1003);// 对应第一个 ? 号
ps.setBinaryStream(2, fis, fis.available());// 对应第二个 ? 号
int rst = ps.executeUpdate();
System.out.println(rst);// 数据是否插入成功

fis.close();
ps.close();
con.close();

} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
}



      img.png 文件放在工程目录下,数据库表的设计为 c_id int,c_img img ,img的数据类型其实就是字节流存储的图片,在用 SELECT * FROM img 查看 img 部分是16进制的内容,和用 WinHex 打开 img.png 的内容一致。0x424D36.....



  • 大小: 22.3 KB
  • 大小: 20.8 KB
分享到:
评论

相关推荐

    数据库小知识用java访问数据库

    然而,许多Java初学者在尝试使用Java访问数据库时会遇到各种问题,比如连接错误、无法显示数据、更新或删除数据失败等。本文旨在帮助Java初学者更好地理解和掌握通过Java访问SQL Server数据库的三种常见方式:JDBC—...

    Java访问数据库技术

    Java访问数据库技术,关于JDBC的讲解,比较详细,可以看看

    java访问数据库集合

    总的来说,Java访问数据库的方式多样,从基础的JDBC到高级的ORM框架,每种都有其适用场景。选择哪种方式取决于项目需求,例如对性能的要求、开发效率、数据库操作的复杂度等。了解并掌握这些技术,对于Java开发人员...

    java连接PI数据库

    java连接PI数据库查询修改的列子

    数据库实验8 java连接数据库(JDBC代码+报告)

    《数据库系统概论》课程之实验八,通过JDBC访问数据库。本文件中包含实验报告一份,可运行代码一份与JDBC的驱动jar包。 程序实现了使用Java语言编程实现对数据库的访问,所有的SQL操作均在自己建立的新库里进行,...

    Java jdbc数据库连接池总结

    Java 应用程序访问数据库的基本原理是在 Java 语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁,即 Java 语言通过 JDBC 技术访问数据库。JDBC 是一种“开放”的方案,它为数据库应用开发人员...

    java数据库驱动包

    在Java中,JDBC(Java Database Connectivity)是一个标准API,允许程序员用Java语言来访问和处理存储在各种数据库中的数据。这个压缩包包含了对MySQL、Oracle和DB2这三种流行数据库的JDBC驱动,它们分别是Java与...

    java 访问数据库JDBC的工作原理 课件

    【Java 访问数据库JDBC的工作原理】 Java Database Connectivity(JDBC)是Java语言与数据库交互的标准接口,它使得开发者可以使用Java API来执行SQL语句,与各种类型的数据库进行通信。JDBC提供了统一的接口,让...

    java配置数据库jar包操作

    它提供了一种统一的方式来访问不同的数据库管理系统。JDBC 允许开发者使用 Java 语言来操作数据库,执行 SQL 语句,查询数据等。 为什么需要 Jar 包? Jar 包是 Java 项目中用来存放类库和资源文件的存档文件。 在...

    一款封装java访问数据库的底层数据库操作的jar

    标题中的“一款封装java访问数据库的底层数据库操作的jar”指的是一个Java库,它将数据库交互的底层细节进行了抽象和封装,使得开发者可以更高效、更便捷地在Java应用程序中进行数据库操作。这样的库通常会包含一...

    提高Java访问数据库效率的方法研究与探讨.pdf

    在Java技术流行的背景下,如何优化Java访问数据库的效率,是本文探讨的关键问题。 首先,数据库设计对于访问效率至关重要。表结构的设计需要遵循第三范式(3NF),确保数据冗余最小化,并通过合理的字段设计来避免...

    在java中实现对access数据库的远程访问

    (java 中实现对 access 数据库的远程访问) java 中实现对 access 数据库的远程访问是指在 java 中通过远程访问 access 数据库,以满足项目中的需求。在实际项目中,可能会遇到这样的问题:A 服务器上的应用程序需要...

    提高Java访问数据库效率的探讨

    ### 提高Java访问数据库效率的关键方法 随着计算机技术的不断进步和发展,Java作为一种重要的编程语言在企业信息化发展中扮演着越来越重要的角色。特别是对于构建电子商务平台的企业来说,利用Java技术能够更好地...

    JAVA访问数据库帮助类

    封装了常用的数据库访问的模式化操作,可以大大简化程序的复杂性,和提高代码的利用率!

    S2北大青鸟 使用Java实现数据库编程(包含项目).zip

    2. **JDBC(Java Database Connectivity)**:JDBC是Java访问数据库的标准API,通过它,开发者可以编写代码来连接数据库、发送SQL语句、处理结果集。学习者需要理解DriverManager类、Connection接口、Statement和...

    基于Java的数据库应用框架的研究设计

    在Java数据库应用框架方面,Java作为一种流行的编程语言,拥有丰富的数据库连接和支持库,如JDBC(Java Database Connectivity),它是Java访问数据库的标准API。通过JDBC,开发者可以编写数据库独立的代码,实现对...

    【经典】Java数据库编程 JAVA跟数据库连接源代码

    JDBC是Java中用于访问数据库的标准接口,它提供了与多种数据库系统通信的能力。通过加载数据库驱动,建立Connection对象,我们可以创建Statement或PreparedStatement来执行SQL语句。JDBC提供了四种数据库连接方式:...

    java数据库驱动jar包

    总的来说,Java数据库驱动为Java开发者提供了强大的数据库访问能力,无论是在简单的CRUD操作还是复杂的事务处理中。理解并正确使用这些驱动,能够极大地提升应用程序的性能和可靠性。在使用过程中,务必确保驱动版本...

    Java实现数据库迁移同步

    Java作为广泛使用的编程语言,提供了丰富的库和工具来处理数据库操作,如JDBC(Java Database Connectivity)是Java访问数据库的标准API。通过JDBC,我们可以连接到不同的数据库,执行SQL语句,读取和写入数据。在...

Global site tag (gtag.js) - Google Analytics