博文
请教一个关于Error establishing socket 的问题,急(2006-04-21 22:36:00)
摘要:快疯掉了,
在用java 连接SQL Server2000的时候为什么总是要抛出Error establishing socket 异常呢?在网上查了很多的资料,按照大家的说法进行设置,但是还是不行,这是为什么啊!
把这个程序放在网上,希望有高手路过的时候能指点一二:
import java.sql.*;
import javax.sql.*;
import com.microsoft.jdbc.sqlserver.*;
public class DbTest{
Connection con;
Statement stmt;
ResultSet rs;
String driver;
String url;
String user;
String pwd;
public DbTest()
{
driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DataBaseName = SBdb";
user = "sa";
pwd = "sa";
init();
}
public void init()
{
try{
Class.forName(driver).newInstance();
System.out.println("driver is ok");
......
JDBC访问SQL Server2000常用方法——连接池法(2006-04-01 00:46:00)
摘要: 以连接池的方式访问数据库可以提高数据库的使用效率.不需要每一次都创建数据库的连接,只须在初始化时创建好一定数量的连接即可,这样就节省了临时创建连接的资源使用,因为在大量请求的系统中,会频繁地访问数据库.下面是我在第一次用连接池的方式访问数据库是出现的一些问题,相信很多和我一样的兄弟伙们也许正在为这个问题而烦恼吧。我把调试的过程记录在这里,希望对大家有所帮助。
代码:
import java.sql.*;
import javax.sql.*;
public class DbTest{
Connection con;
Statement stmt;
ResultSet rs;
String driver;
String url;
String user;
String pwd;
public DbTest()
{
driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
url = "jdbc:microsoft:sqlserver://localhost:1433;DataBaseName = MyDB";
user = "sa";
pwd = "sa";
init();
}
public void init()
{
try{
Class.forName(driver).newInstance();
System.out.println("driver is ok");
&n......
进入数据库编程(2006-03-18 01:31:00)
摘要:才开始进入java数据库编程,第一个简单的连接程序就花去了我和冬冬整整一天的时间。想尽各种办法,查参考书,上论坛,发邮件,找java爱好者的QQ群,终于连接成功了!......
JDBC-ODBC桥连接数据库事例程序(2006-03-18 01:20:00)
摘要:Java与数据库的连接通常采用JDBC-ODBC桥或JDBC方式,前者不需要额外的包支持,而后者通常需要某特定数据库提供的JDBC API支持,如要用后者来连SQL-Server,就需要下载SQL-server的JDBC Driver。
下面是采用JDBC-ODBC桥实现的连接Access数据库,用之前需要在windows的管理工具里配置ODBC数据源,选择数据源类型为Access,数据源名称为test,关联的数据库为star1,配好后就可以直接运行Java程序了。其它数据库也类似,象SQL-server或Oracle,在连接时如果有用户名和密码,需要将con=DriverManager.getConnection(url);改为con=DriverManager.getConnection(url,username,password);其它都一样。
import java.sql.*;
import java.io.*;
class JDBCExample{
public static void main(String args[]){
Connection con;
String url="jdbc:odbc:DB";
Statement stmt;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url);
String sql="Select id,name from test";
stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
String id=rs.getStri......
JCreator模拟界面源代码(2006-03-18 01:18:00)
摘要:import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* Sample application using Frame.
*
* @author
* @version 1.00 06/03/11
*/
public class JCreator {
class JCreatorFrame extends JFrame {
/**
* The constructor.
*/
//Buttons
// JButton[] bt = {new JButton("New"),};
// MenuBar &&Menu
JMenuBar menuBar = new JMenuBar();
JMenu[] menu = {new JMenu("File"),new JMenu("Edit"),
new JMenu("Search"),new JMenu("V......
迷你记事本源代码(2006-03-18 01:15:00)
摘要:import java.awt.event.ActionListener;
import java.util.EventListener;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import java.lang.*;
import java.awt.datatransfer.*;
import javax.swing.*;
public class MiniEdit extends JFrame implements ActionListener {
/**
* Method main
*
*
* @param args
*
*/
MenuBar menuBar = new MenuBar();
Menu file = new Menu("File"),
edit = new Menu("Edit"),
help = new Menu("Help");
MenuItem[] menuItem ={
new MenuItem("New"),
new MenuItem("Open"),
new MenuItem("Save"),
new MenuItem("Exit"),
new MenuItem("Select All"),
new MenuItem("Copy"),
new MenuItem("Cut"),
new MenuItem("Paste"),
n......
一个java布局管理的小程序(2006-02-16 16:38:00)
摘要:import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LoginDialog extends JFrame{
/**
* Method main
*
*
* @param args
*
*/
JButton b = new JButton("click me");
JPanel p = new JPanel();
public static void main(String[] args) {
// TODO: Add your code here
LoginDialog frame = new LoginDialog();
}
/**
* Method LoginDialog
*
*
*/
public LoginDialog() {
// TODO: Add your code here
final JFrame frame = this;
this.getContentPane().add(p,BorderLayout.SOUTH);
p.add(b);
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
showLoginDialog(frame);
}
&nbs......
[转]Java初学者常用开发工具介绍图解 (2005-11-26 02:29:00)
摘要:Java的应用越来越广泛,学习Java的人也越来越多。学过程序设计的人知道,使用Basic进行程序设计,可以使用QBasic、Visual Basic等开发工具;使用C语言进行程序设计,可以使用Turbo C、Visual C++、C++ Builder等开发工具。这些开发工具集成了编辑器和编译器,是集成开发工具,很方便使用。学习Java程序设计,同样需要方便易用的开发工具。
Java的开发工具很多,而且各有优缺点,初学者往往不知道有哪些常用的开发工具,或者由于面临的选择比较多而产生困惑。本文对初学者常使用的Java开发工具作一介绍,有助于初学者了解Java常用开发工具并做出选择。
要建立Java开发环境,离不开Sun的JAVA2 SDK。1998年12月Sun公司发布了Java Software Development Kit(简称JAVA2 SDK),目前的最新版本是J2sdk-1.4.2.05。可在http://Java.sun.com下载。根据运行平台的不同,下载相应的版本并设置好PATH和CLASSPATH。这个软件包提供了Java编译器、Java解释器,但没有提供Java编辑器,因此需要使用者自己选择一个方便易用的编辑器或集成开发工具。下面就介绍几种适合初学者适用的Java开发工具。
一、UltraEdit
UltraEdit是共享软件,它的官方网址是:www.ultraedit.com 。最新版本是V10.20b。它是一个功能强大的文本、HTML、程序源代码编辑器。作为源代码编辑器,它的默认配置可以对C/C++, VB, HTML, Java和 Perl进行语法着色。
用它设计Java程序时,可以对Java的关键词进行识别并着色,方便了Java程序设计。它具有完备的复制、粘贴、剪切、查找、替换、格式控制等编辑功能。可以在Advanced菜单的Tool Configuration 菜单项配置好Java的编译器Javac和解释器Java,直接编译运行Java程序。
配置Javac:在Command Line里输入:D:\jsp\j2sdk\bin\Javac %f,这里Javac的路径要根据JDK的实际安装路径来指定,%f是指当前活动文档的全文件名。在Menu Item N......
[转]每个初学者都应该搞懂的问题系列之二 (2005-11-26 02:25:00)
摘要:问题四:final关键字到底修饰了什么?
final使得被修饰的变量"不变",但是由于对象型变量的本质是“引用”,使得“不变”也有了两种含义:引用本身的不变,和引用指向的对象不变。引用本身的不变:
final StringBuffer a=new
StringBuffer("immutable");
final StringBuffer b=new
StringBuffer("not immutable");
a=b;
//编译期错误
引用指向的对象不变:
final StringBuffer a=new
StringBuffer("immutable");
a.append(" broken!");
//编译通过
可见,final只对引用的“值”(也即它所指向的那个对象的内存地址)有效,它迫使引用只能指向初始指向的那个对象,改变它的指向会导致编译期错误。至于它所指向的对象的变化,final是不负责的。这很类似==操作符:==操作符只负责引用的“值”相等,至于这个地址所指向的对象内容是否相等,==操作符是不管的。
理解final问题有很重要的含义。许多程序漏洞都基于此----final只能保证引用永远指向固定对象,不能保证那个对象的状态不变。在多线程的操作中,一个对象会被多个线程共享或修改,一个线程对对象无意识的修改可能会导致另一个使用此对象的线程崩溃。一个错误的解决方法就是在此对象新建的时候把它声明为final,意图使得它“永远不变”。其实那是徒劳的。
问题五:到底要怎么样初始化!
本问题讨论变量的初始化,所以先来看一下Java中有哪些种类的变量。
1. 类的属性,或者叫值域
2. 方法里的局部变量
3. 方法的参数
对于第一种变量,Java虚拟机会自动进行初始化。如果给出了初始值,则初始化为该初始值。如果没有给出,则把它初始化为该类型变量的默认初始值。
int类型变量默认初始值为0
float类型变量默认初始值为0.0f <......
[转]每个初学者都应该搞懂的问题系列之一(2005-11-26 02:24:00)
摘要:问题一:我声明了什么!
String s = "Hello world!";
许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。
这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任何对象,目前指向"Hello world!"这个String类型的对象。这就是真正发生的事情。我们并没有声明一个String对象,我们只是声明了一个只能指向String对象的引用变量。所以,如果在刚才那句语句后面,如果再运行一句:
String string = s;
我们是声明了另外一个只能指向String对象的引用,名为string,并没有第二个对象产生,string还是指向原来那个对象,也就是,和s指向同一个对象。
问题二:"=="和equals方法究竟有什么区别?
==操作符专门用来比较变量的值是否相等。比较好理解的一点是:
int a=10;
int b=10;
则a==b将是true。
但不好理解的地方是:
String a=new String("foo");
String b=new String("foo");
则a==b将返回false。
根据前一帖说过,对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象本身。a和b都使用了new操作符,意味着将在内存中产生两个内容为"foo"的字符串,既然是“两个”,它们自然位于不同的内存地址。a和b的值其实是两个不同的内存地址的值,所以使用"=="操作符,结果会是false。诚然,a和b所指的对象,它们的内容都是"foo",应该是“相等”,但是==操作符并不涉及到对象内容的比较。
对象内容的比较,正是equals方法做的事。
看一下Object对象的equals方法是如何实现的:
boolean equ......