Java连接DB2数据库问题

Java连接DB2数据库问题,第1张

你加两句打印看看

//这里加入一行

Systemoutprintln("con:"+thiscon);

pstmt=thisconprepareStatement(sql) ;

//这里加一行

Systemoutprintln("pstmt:"+pstmt);

rs=pstmtexecuteQuery();

//这里加一行

Systemoutprintln("rs:"+rs);

看哪个是null

JAVA Web开发中与数据库的连接 *** 作,配置:

1、新建数据库。

新建登录角色,在新建数据库的时候把数据库的所有权交给你新建的角色。用用户和密码控制数据库。保证数据库的安全。

2、编写contextxml文件 Xml文件的目的是封装用户和密码,也是封装的一种,方便 *** 作。

以下为contextxml文件样例:

<xml version="10" encoding="utf-8">

<Context reloadable = "true">

<Resource

name="jdbc/sampleHS"

type="javaxsqlDataSource"

maxActive="14"

maxIdle="10"

username="hstaoshu"

maxWait="5000"

driverClassName="orgpostgresqlDriver"

password="hstaoshu"

url="jdbc:postgresql://localhost:5432/hstaoshu"/>

</Context>

详细说明:

name="jdbc/sampleHS"里面的ssampHS是可改名称,建议根据需要自己命名;

username="hstaoshu"

password="hstaoshu"此两项为你新建的数据库登录角色用户名和密码信息,只有匹配 了才能访问。这里简单为了表示,把用户名和密码弄成了跟数据库名字一样。其实这是很不安全的。

url="jdbc:postgresql://localhost:5432/hstaoshu"/>

这是连接数据库的URl,就像访问网站的地址一样。没有这个是无法访问数据库的。localhost:5432表示本地端口。一般不需要改动,如果你在配置数据库的时候改动过端口,那么你需要把它改回来。/hstaoshu是你的数据库名称。

其他选项请勿擅自改动。

3、编写DAO类。

DAO类的作用是与数据连接后,对数据库的一些 *** 作的封装。封装的作用。为了更好的数据管理。

DAO是真正如何使用数据库的关键步骤,前两步只是部署和配置。

private static InitialContext context = null;

private DataSource dataSource = null;

//一般把跟数据库的连接放在DAO类的构造函数里,只要被实例化,就能和数据库连接。

public BookDAO() {

try {

if (context == null) {

context = new InitialContext();

}

dataSource = (DataSource) contextlookup("java:comp/env/jdbc/sampleHS");

// 连接数据库,前面在contextxml文件配置里的URl

} catch (NamingException e2) {

e2printStackTrace();

}

}

public Connection getConnection() {

Connection conn = null;

try {

conn = dataSourcegetConnection();// 获得数据源的连接对象

} catch (SQLException e) {

eprintStackTrace();

}

return conn;

}

做完上面的三步 *** 作,开发环境已经完全和数据库连接OK,可以开始数据库的 *** 作了。一般来说,对数据库的 *** 作语句都是提前封装好的。这样修改起来会对下面的代码影响降到最小。

如下:

// ------------------数据库 *** 作语句代码封装------------------

/ 查看所有图书 /

private static final String SELECT_ALL_SQL = "SELECT FROM book";

那么在使用的时候只要直接调用:

pstmt = connprepareStatement(SELECT_ALL_SQL);

1JDBC-ODBC桥的方式。但这种方式不适合程序的重用与维护,不推荐使用。需要数据库的ODBC驱动。

2JDBC+厂商Database

Connection

Server+DataBase的形式。

这种方法就是在JAVA

DATABASE之间价起了一台专门用与数据库连接的服务器(一般由数据库厂商提供)。他的好处在于能优化连接。

3纯JDBC+DATABASE的连接方式。APPLICATION与数据库分开,开发者只需关心内部逻辑的实现而不需注重数据库连接的具体实现。在这其中有两种连接的方式:

1)硬编码方式,就是在程序中硬性编入数据库连接的所须参数。

2)JNDI

DataSource方式。

用JDBC连接数据库

首先要下载Connector/J地址:>

这是MySQL官方提供的连接方式:

解压后得到jar库文件,需要在工程中导入该库文件

这个地址对你有帮助:>

下面是一个例子:

你要下载驱动的jar包:我用的是mysql-connector-java-518-binjar,并让java工程加载这个jar。

从网上摘抄的代码:

public class DBHelper {  

    public static final String url = "jdbc:mysql://127001/student";  

    public static final String name = "commysqljdbcDriver";  

    public static final String user = "root";  

    public static final String password = "root";  

  

    public Connection conn = null;  

    public PreparedStatement pst = null;  

  

    public DBHelper(String sql) {  

        try {  

            ClassforName(name);//指定连接类型  

            conn = DriverManagergetConnection(url, user, password);//获取连接  

            pst = connprepareStatement(sql);//准备执行语句  

        } catch (Exception e) {  

            eprintStackTrace();  

        }  

    }  

  

    public void close() {  

        try {  

            thisconnclose();  

            thispstclose();  

        } catch (SQLException e) {  

            eprintStackTrace();  

        }  

    }  

}  

public class Demo {  

  

    static String sql = null;  

    static DBHelper db1 = null;  

    static ResultSet ret = null;  

  

    public static void main(String[] args) {  

        sql = "select from stuinfo";//SQL语句  

        db1 = new DBHelper(sql);//创建DBHelper对象  

  

        try {  

            ret = db1pstexecuteQuery();//执行语句,得到结果集  

            while (retnext()) {  

                String uid = retgetString(1);  

                String ufname = retgetString(2);  

                String ulname = retgetString(3);  

                String udate = retgetString(4);  

                Systemoutprintln(uid + "\t" + ufname + "\t" + ulname + "\t" + udate );  

            }//显示数据  

            retclose();  

            db1close();//关闭连接  

        } catch (SQLException e) {  

            eprintStackTrace();  

        }  

    }  

  

}

JDBC(Java DataBase Connectivity)是Java数据库连接API。JDBC能完成与一个数据库建立连接,然后向数据库发送SQL语句,再处理数据库返回的结果。

JDBC在设计上和ODBC相似。JDBC和数据库建立连接的一种方式是首先建立起一个JDBC-ODBC桥接器。

首先安装office2000,就有了Access2000,启动Access,建立新数据库messmdb,建立包含两个文本型字段name和sex的表,表名为member,随便录入一些字符串到member表中,保存在任意目录下,比如说C盘下。然后打开控制面板 -> 管理工具 -> 数据源 (ODBC),选择"系统DSN",也可以选择"用户DSN"选项卡,系统的DSN对每个用户都适用可避免调试时出现的权限问题,单击“添加”,

点击"完成",d出的对话框里将"数据源名"一项设为你喜欢的名字,比如redsun。点"选择",找到"C:\messmdb"文件,如此一个ODBC数据源就配置好了。

要连接该数据源,也就是连接数据库,首先要建立一个JDBC-ODBC桥接器,上面已经说过了,其方法是:

ClassforName("sunjdbcodbcJdbcOdbcDriver");

Class 是Javalang包中的一个类,通过调用它的静态方法forName就可以建立桥接器。但建立桥接器时可能发生异常,这是我们所不想见到的,因此要捕获这个异常:

try{

ClassforName("sunjdbcodbcJdbcOdbcDriver");

}

catch(ClassNotFoundException e){异常捕获}

然后就是连接数据库了,这里要用到javasql包中的Connection类声明一个对象,再用类DriverManager调用它的静态方法getConnection创建这个连接。

Connection con=DriverManagergetConnection("jdbc:odbc:数据源名字","数据源用户名","数据源密码");

为防止连接出现异常,这里也要有个异常的处理,具体看代码:

=========accessjava============

程序代码

import javasql;

public class access{

public static void main(String args[]){

Connection con;

Statement sql; //声明Statement对象

ResultSet rs;

try{

ClassforName("sunjdbcodbcJdbcOdbcDriver");

}

catch(ClassNotFoundException e){

Systemoutprintln(""+e);

}

try{

con=DriverManagergetConnection("jdbc:odbc:redsun","","");

sql=concreateStatement();

rs=sqlexecuteQuery("Select FROM member");

while(rsnext()){

String name=rsgetString(1); //获得数据库第一列

String sex=rsgetString(2);

Systemoutprintln("姓名:"+name); //输出信息

Systemoutprintln("性别:"+sex);

}

conclose();

}

catch(SQLException el){}

}

}

编绎accessjava, 然后在命令提示符中先切换到编绎后的accessclass的目录,执行:

java access 回车

以上这个例子只是简单的连接数据库,并静态游标方式显示数据,更新、删除和添加数据库以前学过sql的很容易理解,语法为:

String xx="sql语句";

Statement对象executeUpdate(xx);

首先要安装有JDK(一般是JDK15X)。然后安装MySQL,这些都比较简单,具体过程就不说了。配置好这两个环境后,下载JDBC驱动mysql-connector-java-505zip(这个是最新版的)。然后将其解压缩到任一目录。我是解压到D盘,然后将其目录下的mysql-connector-java-505-binjar加到classpath里,具体如下:“我的电脑”-> “属性” -> “高级” -> “环境变量”,在系统变量那里编辑classpath,将D:\mysql-connector-java-505\mysql-connector-java-505-binjar加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开。然后确定。

环境配置好了,很简单。现在,先配置MySQL,设其用户名为“root”,密码为“root”。在命令行或用一个SQL的前端软件创建Database。

我是用SQLyog的前端软件来创建Database的。

先创建数据库:

CREATE DATABASE SCUTCS;

接着,创建表:

CREATE TABLE STUDENT

(

SNO CHAR(7) NOT NULL,

SNAME VARCHAR(8) NOT NULL,

SEX CHAR(2) NOT NULL,

BDATE DATE NOT NULL,

HEIGHT DEC(5,2) DEFAULT 00000,

PRIMARY KEY(SNO)

);

然后插入数据,可以用SQL语句insert into <表名> values (value1, value2, );

也可以用SQLyog来 *** 作

好了,创建好了。

下面,我们来编写java文件来演示一下如何访问MySQL数据库。

import javasql;

public class JDBCTest {

public static void main(String[] args){

// 驱动程序名

String driver = "commysqljdbcDriver";

// URL指向要访问的数据库名scutcs

String url = "jdbc:mysql://127001:3306/scutcs";

// MySQL配置时的用户名

String user = "root";

// MySQL配置时的密码

String password = "root";

try {

// 加载驱动程序

ClassforName(driver);

// 连续数据库

Connection conn = DriverManagergetConnection(url, user, password);

if(!connisClosed())

Systemoutprintln("Succeeded connecting to the Database!");

// statement用来执行SQL语句

Statement statement = conncreateStatement();

// 要执行的SQL语句

String sql = "select from student";

// 结果集

ResultSet rs = statementexecuteQuery(sql);

Systemoutprintln("-----------------");

Systemoutprintln("执行结果如下所示:");

Systemoutprintln("-----------------");

Systemoutprintln(" 学号" + "\t" + " 姓名");

Systemoutprintln("-----------------");

String name = null;

while(rsnext()) {

// 选择sname这列数据

name = rsgetString("sname");

/ 何问起 hovertreecom /

// 首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。

// 然后使用GB2312字符集解码指定的字节数组

name = new String(namegetBytes("ISO-8859-1"),"GB2312");

// 输出结果

Systemoutprintln(rsgetString("sno") + "\t" + name);

}

rsclose();

connclose();

} catch(ClassNotFoundException e) {

Systemoutprintln("Sorry,can`t find the Driver!");

eprintStackTrace();

} catch(SQLException e) {

eprintStackTrace();

} catch(Exception e) {

eprintStackTrace();

}

}

}

首先

在用SQL Server2005开发是时候,需要另外导入3个驱动包到Eclipse里(基石),msbasejar,mssqlserverjar,msutiljar,(将这几个包在网上下下来后把他们都放入到一个文件夹里方便导入具体导入你先试试不会再问我)

其次

确认已启动SQL2005服务器

确认已开启端口

确认用户名密码正确//这里是服务器的sqlserver的登录账户如sa/sa

你的问题就是没有sql驱动

import javasql;

/-

Copyright(C) >

以上就是关于Java连接DB2数据库问题全部的内容,包括:Java连接DB2数据库问题、JAVA web 与数据库的连接到底是怎样连的啊、java开发的时候,数据库连接方式除了jdbc,jndi,还有有哪几种等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10167571.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存