- 先下载适合自己系统的即时客户端,可通过下面的地址下载。
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
- 直接解压到你想要存放的目录中,如:D:\Java\instantclient_10_2
- 编辑环境变量:
TNS_ADMIN 设置为 D:\Java\instantclient_10_2
ORACLE_HOME 设置为 D:\Java\instantclient_10_2
- 编辑连接配置文件 tnsnames.ora,该文件需要自行在即时客户端目录(C:\instantclient_11_2)中创建。在该文件内输入如下内容:
MYDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.250)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MYDB)
)
)
MYDB:是数据库实例名
192.168.3.259:是数据库的 IP 地址
1521:是数据库的端口
- 然后你就可以使用 PLSQL Developer 和 TOAD 这类软件来管理 Oracle 数据库了。
下面根据自己的实际情况配置PL/SQL:在首选项(perference)里面设置Oracle主目录名(Oracle_home)和OIC库(OCI Library),我的设置是Oracle_home=D:\Java\instantclient_10_2,OCI Library=D:\Java\instantclient_10_2\oci.dll。
posted @
2010-08-26 17:01 CoderDream 阅读(728) |
评论 (0) |
编辑 收藏
摘要: 视频名称:
[A218]JAVA反射机制与动态代理.exe
[A219]JAVA反射机制与动态代理续一.exe
[A220]JAVA反射机制与动态代理续二.exe
主讲教师:风中叶
Java 语言的反射机制
在Java运行时环境中,对于任意一个类,可以知道这个类有哪些属性和方法。对于任意一个对象,可以调用它的任意一个方法。
这种动态获取类的信息以及动态调用对象的方法的功能...
阅读全文
posted @
2010-08-25 16:12 CoderDream 阅读(2276) |
评论 (0) |
编辑 收藏
有时候我们会碰到需要设置代理,然后通过svn获取源代码,下面我们来看一下如何设置;
1、找到 C:\Documents and Settings\your userName\Application Data\Subversion 这个目录下的servers文件,用任意一个文本编辑器打开,找到类似于如下的文字:
[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
#http-proxy-host = proxy2.some-domain-name.com
#http-proxy-port = 9000
# http-proxy-username = defaultusername
将
#http-proxy-host
#http-proxy-port
这两行前面的#号去掉,并将=号右边的值分别改为你的代理服务器地址和端口号即可。
2、设置Eclipse/MyEclipse,确认SVN的客户端是SVNKit:
这样,就可以在Eclipse/MyEclipse中通过代理使用SVN了。
posted @
2010-03-05 15:29 CoderDream 阅读(3792) |
评论 (2) |
编辑 收藏
我们在软件开发中,经常需要以表格的方式展现批量数据,如统计分析等等。
这里介绍一个Flash的表格生成工具--FusionCharts,它是一个收费软件,不过如果不是用于商业用途,只是用于,可以到网上下载破解版,csdn上面就有,如果想商业,购买应该也不贵。
下面我们来看一个最简单的例子:
这个软件生成表格的模式是:数据(XML文件或文件流)+模板。
1、XML数据:
<chart caption='Monthly Sales Summary' subcaption='For the year 2006' xAxisName='Month' yAxisName='Sales' numberPrefix='$'>
<set label='January' value='17400' />
<set label='February' value='19800' />
<set label='March' value='21800' />
<set label='April' value='23800' />
<set label='May' value='29600' />
<set label='June' value='27600' />
<set label='July' value='31800' />
<set label='August' value='39700' />
<set label='September' value='37800' />
<set label='October' value='21900' />
<set label='November' value='32900' />
<set label='December' value='39800' />
</chart>
2、将所有需要用到的模板拷贝到固定的位置。
3、在html中指定数据位置和模板名称:
<html>
<head>
<title>My First FusionCharts</title>
</head>
<body bgcolor="#ffffff">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="900" height="300" id="Column3D" >
<param name="movie" value="../FusionCharts/Column3D.swf" />
<param name="FlashVars" value="&dataURL=Data.xml">
<param name="quality" value="high" />
<embed src="../FusionCharts/Column3D.swf" flashVars="&dataURL=Data.xml" quality="high" width="900" height="300" name="Column3D" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>
4、运行结果:
posted @
2010-02-03 11:16 CoderDream 阅读(1075) |
评论 (0) |
编辑 收藏
1、FCKeditor源代码分析(一 )----------fckeditor.js的中文注释分析(原创)
http://blog.csdn.net/nileader/archive/2009/10/21/4710559.aspx
2、
Developers GuideJavaScript
http://docs.cksource.com/FCKeditor_2.x/Developers_Guide/Integration/JavaScript
3、网络营销实战密码——策略.技巧.案例
http://product.dangdang.com/product.aspx?product_id=20449076
posted @
2009-10-23 16:00 CoderDream 阅读(402) |
评论 (0) |
编辑 收藏
1、安装
Oracle 版本:Oracle Database 10g Release 2 (10.2.0.1)
下载地址:
http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201winsoft.html
安装设置:
1)这里的全局数据库名即为你创建的数据库名,以后在访问数据,创建“本地Net服务名”时用到;
2)数据库口令在登录和创建“本地Net服务名”等地方会用到。
2、创建“本地Net服务名”
1)通过【程序】-》【Oracle - OraDb10g_home1】-》【配置和移植工具】-》【Net Configuration Assistant】,运行“网络配置助手”工具:
2)选择“本地 Net 服务名配置”:
3)这里的“Net 服务名”我们输入安装数据库时的“全局数据库名”:
4)主机名我们输入本机的IP地址:
5)测试数据库连接,用户名/密码为:System/数据库口令(安装时输入的“数据库口令”):
默认的用户名/密码错误:
更改登录,输入正确的用户名/密码:
测试成功:
3、PLSQL Developer 连接测试
输入正确的用户名/口令:
成功登陆:
4、创建表空间
打开sqlplus工具:
sqlplus /nolog
连接数据库:
conn /as sysdba
创建表空间:
create tablespace camds datafile 'D:\oracle\product\10.2.0\oradata\camds\camds.dbf' size 200m autoextend on next 10m maxsize unlimited;
5、创建新用户
运行“P/L SQL Developer”工具,以DBA(用户名:System)的身份登录:
1)新建“User(用户):
2)设置用户名、口令、默认表空间(使用上面新建的表空间)和临时表空间:
3)设置角色权限:
4)设置”系统权限“:
5)点击应用后,【应用】按钮变灰,新用户创建成功:
6)新用户登录测试:
输入新用户的“用户名/口令”:
新用户“testcamds”成功登陆:
6、导入导出数据库
先运行cmd命令,进入命令行模式,转到下面的目录:D:"oracle"product"10.2.0"db_1"BIN【该目录下有exp.exe文件】
1)导入
命令语法:
imp userid / pwd @sid file = path / file fromuser = testcamds touser = userid
命令实例:
imp testcamds / 123 @camds file = c:"testcamds fromuser = testcamds touser = testcamds
导入结果:
2)导出:
命令语法:
exp userid / pwd @sid file = path / file owner = userid
命令实例:
exp testcamds / 123 @camdsora file = c:"testcamds owner = testcamds
导入结果:
posted @
2009-10-18 20:13 CoderDream 阅读(20332) |
评论 (1) |
编辑 收藏
1
、Java通过XML Schema校验XML
http://lavasoft.blog.51cto.com/62575/97597
posted @
2009-08-27 09:50 CoderDream 阅读(379) |
评论 (0) |
编辑 收藏
1、实例不能启动!
症状:“计算机管理”-》“服务和应用程序”-》“服务”-》“OracleOraDb10g_camdsTNSListener”的启动类型为“自动”,但是状态为空(已停止),手工启动,状态变为“已启动”,1~5秒后状态变回“已停止”,数据库不能正常使用;
解决方法:【开始】-》【程序】-》【Oracle - OraDb10g_camds】-》【Configuration and Migration Tools】-》【Net Configuration Assistant】,重新配置一下刚才的【监听程序配置】,然后刷新服务就可以看到服务正常“自动”启动了。
posted @
2009-06-25 09:15 CoderDream 阅读(507) |
评论 (0) |
编辑 收藏
由于Spring AOP实现了AOP联盟约定的接口,而Spring框架并不提供该接口的源代码,我在网上搜索了一下相关资料,整理如下:
1、官方网站:
http://sourceforge.net/projects/aopalliance/
2、源代码:
http://coderdream.javaeye.com/topics/download/322bb187-64b3-3f4f-9ac2-fdc0ef4d0033
3、在线文档:
http://aopalliance.sourceforge.net/doc/index.html
posted @
2009-04-04 22:31 CoderDream 阅读(3439) |
评论 (0) |
编辑 收藏
最近,myeclipse 发布了最新的7.1版,其中blue版提供了对RAD 6.X的支持:
本版本的最引人注目之处莫过于对WSAD5.1、RAD 6.X和7.X项目的加强支持, 包括促进WSAD/RAD用户在MyEclipse Blue 和RAD环境下提高项目质量, . 全面有效执行任务的特性。此外,那些希望能将自己的项目完全移植到 MyEclipse Blue 版本的朋友们,可以通过使用MyEclipse Blue 7.1中的简单向导来实现了。 同时,新项目也能够完全支持已有的开发和服务器工具。
下载地址为:
A:普通版:
http://downloads.myeclipseide.com/downloads/products/eworkbench/7.0/myeclipse-7.1-win32.exe
B:Blue版
http://downloads4.myeclipseide.com/downloads/products/eworkbench/7.0-Blue/myeclipse-blue-7.1-win32.exe
其中普通版可以直接用迅雷下载,但是blue却连不上。
尝试了多种方式,终于找到了下载方法,不过速度很慢,而且很不稳定:
使用的软件
1、OperaTor-2.5
这是一个附带代理的浏览器软件;
2、eMule V1.1.3
常用的电驴软件;
下面我们来看看如何下载:
【步骤1】:打开OperaTor,程序打开后,会发现托盘区有一个蓝色图标,上面有一个字母“P";
【步骤2】:将鼠标移到该图标,点击右键,依次选择【Edit】-》【Main configuration】
【步骤3】:在打开的config.txt文件中,我们可以看到,本地代理的端口为:9050,
【步骤4】:设置电驴的代理服务器,这里的服务器类型选”Socks 4a“:
【步骤5】:最后,点击电驴的”新建“按钮,将”blue版“的地址拷贝过来就可以下载了:
不过通过代理方式下载的速度很慢,有时候还会断线,这时候只需要重新打开上面软件就可以了。
posted @
2009-03-16 22:04 CoderDream 阅读(2664) |
评论 (0) |
编辑 收藏
启动服务:
1、首先建立一个新的“服务器”
在“Servers”面板空白处点击右键,依次选择【New】-》【Server】:
2、选择新服务器的类型
服务器主机名默认为:localhost,类型为:Oracle WebLogic Server v10.3:
3、选择域的文件路径:
这里选择WebLogic安装路径下的base_domain
注:我们安装WebLogic后有两个domain,分别为:base_domain和test_domain,其实还可以自己创建自定义的domain,点击面板中链接进入新建向导。
4、启动服务器
选择新建的服务器,点击右键,选中【Start】即可,通过控制台(Console)面板即可看到启动信息:
5、出现错误警告
提示:
The domain edit lock is owned by another session - this
deployment operation requires exclusive access to the edit lock and
hence cannot proceed.
You can release the lock in Administration Console by first disabling
"Automatically Acquire Lock and Activate Changes" in Preference,
then clicking the Release Configuration button.
解决方法:
1、进入WebLogic控制台:
链接:http://localhost:7001/console/
2、进入参数(Preferences)面板:
3、将自动锁定和激活勾选去掉:
4、点击页面左上角的【Release Configuration】,使刚才的设置生效:
posted @
2009-03-10 14:58 CoderDream 阅读(1627) |
评论 (0) |
编辑 收藏
01、
Java中的易混问题收集
02、
Java程序的加密和反加密
03、
JAVA JSP
servlet取路径问题总结....
04、
[转载]社会生存的75条忠告----胜读十年书(转载)
05、
【转载}08年Java开发者最迫切的五个期望
06、
【转载】给研究起步者的忠告 !
07、
[转载]Glassfish介绍
08、
民间偏方大全(总有你需要的时候)(转载)
09、
【转载】25条人生建议
10、
【转载】让你的生活和人生有所改变的45个方法
11、
【转载】Java程序员面试宝典
12、
【转载】sql 面试中的问题
13、
【转载】面试进行曲之技术面试(项目经验)
14、
【转载】一家公司的面试题
15、
【转载】面试杂谈
16、
[转载]一条sql 数据库去除重复记录
17、
【转载】如何快速面试筛选,找到合适的人
18、
【原创】动态生成日历
19、
[原创]日期时间处理实用类
20、
[原创]八皇后回溯版
21、
[原创]java.util.Comparator使用示例
22、
【转载】一个IT强人的奋斗历程
23、
【转载】Javeline的八年之期,走出象牙塔的纸象
24、
【转载】职业生涯几句话
25、
【整理】八皇后回溯版
26、
【转载】2007年值得去思考的N大软件技术
27、
【转载】2008年值得学习的五种Java技术
28、
【转载】实战 JDK 6.0 自带web service
29、
【转载】Linux学习系列之J2EE(JAVA EE)配置指南
30、
【转载】招聘的吹牛体系
31、
【转载】经典论坛回复收集
32、
【转帖】什么是MIS
33、
【转载】如何去做你讨厌做的事情?
34、
【转载】在windowsXP系统中卸载oracle9i
35、
【原创】泛型动态数组类
36、
【原创】数目字计数器,可多次添加整形数,累计0-9各个数字出现了多少次
37、
【原创】输出一万以内(1-9999)整数的中文大写形式
38、
【原创】求两字符串的公共子串
posted @
2008-10-27 19:57 CoderDream 阅读(289) |
评论 (0) |
编辑 收藏
1、
SQL注入攻击及其防范浅谈
posted @
2008-10-14 16:35 CoderDream 阅读(268) |
评论 (0) |
编辑 收藏
在开发过程中使用模态窗口(window.showModelessDialog())时,由于模态窗口默认方式是有页面缓存的,也就是说如果你改变了模态窗口的内容,但是窗口内的内容不会更新,其实只要在<head>标签中加入下面三行代码禁用页面缓存即可:
<META HTTP-EQUIV='pragma' CONTENT='no-cache'>
<META HTTP-EQUIV='Cache-Control' CONTENT='no-cache, must-revalidate'>
<META HTTP-EQUIV='expires' CONTENT='0'>
posted @
2008-09-09 17:55 CoderDream 阅读(846) |
评论 (0) |
编辑 收藏
摘要: 需求:
对XML中的特定内容进行排序:
原始XML:
<?xml version="1.0" encoding="UTF-8"?>
<hostgateway>
<header>
&nb...
阅读全文
posted @
2008-08-20 15:14 CoderDream 阅读(945) |
评论 (0) |
编辑 收藏
Comparable & Comparator 都是用来实现集合中的排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。
一、Comparator
强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays.sort。
接口方法:
/**
* @return o1小于、等于或大于o2,分别返回负整数、零或正整数。
*/
int compare(Object o1, Object o2);
二、Comparable
强行对实现它的每个类的对象进行整体排序,实现此接口的对象列表(和数组)可以通过Collections.sort或Arrays.sort进行自动排序。
接口方法:
/**
* @return 该对象小于、等于或大于指定对象o,分别返回负整数、零或正整数。
*/
int compareTo(Object o);
三、Comparator和Comparable的区别
一个类实现了Camparable接口则表明这个类的对象之间是可以相互比较的,这个类对象组成的集合就可以直接使用sort方法排序。
Comparator可以看成一种算法的实现,将算法和数据分离,Comparator也可以在下面两种环境下使用:
1、类的设计师没有考虑到比较问题而没有实现Comparable,可以通过Comparator来实现排序而不必改变对象本身
2、可以使用多种排序标准,比如升序、降序等。
完整代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortObject {
public static void main(String[] args) {
sortByComparable();
sortByComparator();
}
/**
* 通过Comparable排序
*/
public static void sortByComparable() {
List list = new ArrayList();
list.add(new Person("Coder", 1));
list.add(new Person("King", 3));
list.add(new Person("Dream", 2));
list.add(new Person("Baby", 4));
System.out.println("--- Sort Before ---");
printPerson(list);
Collections.sort(list);
System.out.println("--- After Sorted ---");
printPerson(list);
}
/**
* 通过Comparator排序
*/
public static void sortByComparator() {
List list = new ArrayList();
list.add(new Person("Coder", 1));
list.add(new Person("King", 3));
list.add(new Person("Dream", 2));
list.add(new Person("Baby", 4));
System.out.println("--- Sort Before ---");
printPerson(list);
Collections.sort(list, new PersonComparator());
System.out.println("--- After Sorted ---");
printPerson(list);
}
/**
* 打印List
*
* @param list
*/
public static void printPerson(List list) {
int size = list.size();
Person p = null;
for (int i = 0; i < size; i++) {
p = (Person) list.get(i);
System.out.println(p.getName() + ":" + p.getId());
}
}
}
class Person implements Comparable {
public String name;
public int id;
public Person() {
}
public Person(String name, int id) {
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int compareTo(Object o) {
Person p = (Person) o;
return this.getName().compareTo(p.getName());
}
}
class PersonComparator implements Comparator {
public int compare(Object o1, Object o2) {
Person p1 = (Person) o1;
Person p2 = (Person) o2;
return p1.name.compareTo(p2.name);
}
}
输出结果:
--- Sort Before ---
Coder:1
King:3
Dream:2
Baby:4
--- After Sorted ---
Baby:4
Coder:1
Dream:2
King:3
--- Sort Before ---
Coder:1
King:3
Dream:2
Baby:4
--- After Sorted ---
Baby:4
Coder:1
Dream:2
King:3
参考:
1、
Comparator和Comparable在排序中的应用
2、
java中对于复杂对象排序的模型及其实现 [转]
posted @
2008-08-20 11:37 CoderDream 阅读(346) |
评论 (0) |
编辑 收藏
|
WebSphere V6 专题 |
作为 WebSphere 软件平台的基础,WebSphere® Application Server V6.0 是业内首选的基于 Java 的应用程序平台,集成了动态电子商务世界的企业数据和事务。每个可用配置都提供了丰富的应用程序部署环境和应用程序服务,这些服务提供了增强的事务管理性能,同时还具备 WebSphere 产品家族的共同特性,包括安全性、性能、可用性、连接性和可伸缩性。
>>更多产品信息
posted @
2008-06-19 10:04 CoderDream 阅读(324) |
评论 (0) |
编辑 收藏
目标:将形如(tppabs="js_3.htm#window 窗口对象")之类的问题替换成新的文字。
规则:以(tppabs=")开头,(")结尾,中间有任意个字符
Java:^tppabs=".*"$
EditPlus(替换时注意选择"正则表达式"):^tppabs=".*" 如果末尾加美元符号($),则不行!
Eclipse的正则表达式插件:Regular Expression Tester
Eclipse Regular Expression Tester
Features
- Test and search for regular expression
- Matches are colorized, for an easy visual clue
- Support for pattern flags (e.g. Pattern.DOTALL)
- LiveEval evaluates your regular expression while you are typing it, gives feedback on possible errors and shows any matches automatically
- LiveEval is supported for changes of the regular expression, the search text and the pattern flags
- 4 distinct match modes:
- Find a sequence of characters
- Match a complete text
- Split text
- Replace every occurence of the regex with a different string
Replacing supports back references ($1,$2,...)
- LiveEval for match mode changes
- Context sensitive "Regular Expression Assist"
- Selective evaluation of expressions
- Bracket Matching
- Generation of string literals based on the regexp, e.g. "\(x\)" becomes "\\(x\\)"
- De-escape patterns in your code, e.g. \\(x\\) becomes \(x\)
- Improved "Clear Menu", choose which parts of the view you would like to get cleared every time you press the clear button
- Easy movement through matches: Choose "Previous Match" or "Next Match" and cycle through all matches found.
- Polished and accessible user interface, everything is reachable via keyboard
Download the plugin
- Unzip it to ECLIPSE_HOME
- Restart Eclipse
- In Eclipse, choose Window > Show View > Other > RegEx Tester
- Configure it in Window > Preferences > RegEx Tester
If you like RegEx Tester, please rate it at
eclipse-plugins.info.
The plugin requires a 1.4 JRE/JDK and Eclipse 3.0 or later.
There is an old (sorry) user guide which can
also be found here.
posted @
2008-06-18 15:08 CoderDream 阅读(494) |
评论 (0) |
编辑 收藏
效果:
左边链接(包括锚点)、右边显示
文件清单1:
<!-- ------------------------------ -->
<!-- 文件范例:index.html -->
<!-- 文件说明:框架集 -->
<!-- ------------------------------ -->
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML;CHARSET=UTF-8">
<TITLE>框架集</TITLE>
</HEAD>
<FRAMESET COLS="30%,70%">
<FRAME SRC=menu.html Scrolling="No">
<FRAME SRC=1.html Name="right">
</FRAMESET>
</HTML>
说明:
1、<meta>标签放在<title>之前可以让IE自动选择字符集,如UTF-8;
2、第二个frame的name为“right”,这个值会在menu.html中用到;
文件清单2:
<!-- ------------------------------ -->
<!-- 文件范例:menu.html -->
<!-- 文件说明:左侧框架 -->
<!-- ------------------------------ -->
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML;CHARSET=UTF-8">
<TITLE>左侧框架</TITLE>
</HEAD>
<BODY>
<A href="1.HTML" Target="right">《商业周刊》:iPhone2.0带来的鲶鱼效应</A><P>
1、<A href="1.HTML#a1" Target="right">无线运营商的日子更不好过</A><P>
2、<A href="1.HTML#a2" Target="right">手机制造厂商们将更烦恼</A><P>
3、<A href="1.HTML#a3" Target="right">iPhone带来的冲击会持续多久?</A><P>
<A href="2.HTML" Target="right">Fireworks MX</A><P>
<A href="3.HTML" Target="right">Flash MX</A><P>
</BODY>
</HTML>
说明:
1、注意,这里<A>标签的target都为index.html中定义的"right"
文件清单3:
<!-- ------------------------------ -->
<!-- 文件范例:1.html -->
<!-- 文件说明:右侧框架一 -->
<!-- ------------------------------ -->
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML;CHARSET=UTF-8">
<TITLE>右侧框架一</TITLE>
<Style Type="text/css">
<!--
.abc {
font-weight: bold;
font-size: 18px;
}
-->
</Style>
</HEAD>
<BODY>
<H1><A name=aTitle>《商业周刊》:iPhone2.0带来的鲶鱼效应</A></H1>
ugmbbc发布于 2008-06-17 08:26:20|2998 次阅读 字体:大 小 打印预览<BR><BR>
北京时间6月16日,《商业周刊》发表评论文章分析了iPhone2.0对无线运营商和手机制造商们带来的冲击,以下为其全文:
当苹果准备凭着3G版iPhone再次吹响战斗号角的时候,也是手机制造商和无线运营商们更加头疼的时候.苹果在手机市场中可谓旗开得胜,在iPhone 入市的第一年,苹果就从竞争对手RIM公司中抢过不少市场份额,而AT&T作为 iPhone唯一授权的运营商,也从其竞争对手Alltel和T-Mobile中吸引了不少用户.可以想象,一个更便宜、速度更快、功能更全的 iPhone将带来什么样的冲击.<BR><BR>
将在7月面市的新版iPhone,不仅售价不到200美元、升级到更快的网络,而且新增了很多吸引普通消费者以及商业用户的功能.
<A name=a1><p class=abc> 无线运营商的日子更不好过</p></A>
据业内人士说,为了对付iPhone带来的冲击,无线服务运营商们不得不提高对手机的补贴、提高营销预算并降低一些服务的价格,所有这一切意味着利润空间的缩减.面对iPhone的冲击,本来就已经处在政府监管日益增加以及直面Google竞争的无线运营商们的日子更不好过了.<BR><BR>
在过去的一年里,美国的无线运营商们已经在手机津贴上展开激烈竞争,通过增加对手机的补贴来获得长期无线服务合同.但现在AT&T以 iPhone为诱惑来吸引用户,对别的运营商来说,必须采取相应的措施来吸引用户,他们可能引进类iPhone的手机.但"大多数人要的是iPhone,就像他们喜欢iPod而不是其他MP3播放器一样",东北大学营销系教授Gloria Barczak说到,"人们要的是真正的iPhone".因此,要想让用户被吸引,必须得有别的优势,比如价格优势等.<BR><BR>
为了留住高端用户,运营商们需要加大业务推广的力度.据广告顾问公司TNS媒体情报的数据,运营商Verizon无线今年第一季度的广告支出增加了30%.<BR><BR>
Sprint Nextel同期的广告开支下降20%,主要是由于自身的财务问题,当看到用户不断流失的时候,Sprint Nextel应该会加大广告的投入."他们必须拿出能对抗iPhone诱惑的方案来,尽量发挥自己的长处",顾问公司TMNG的CEO Rich Nespola说到.<BR><BR>
另一种留住用户的方式是降低服务的价格.事实上,这是一个有效对付AT&T的办法.AT&T对提供iPhone的用户增加了服务的价格,以弥补高额的津贴费用."AT&T的对手们将在今年下半年继续加强价格优势,可能会有30%到40%的下降.当人们因为高油价开支增多的情况下,每月在无线服务上节省50美元也是很有吸引力的",Pali研究所的分析师Walter Piecyk说到,"因此,无线运营商的利润将从目前的40%下滑到30%".
<p class=abc><A name=a2> 手机制造厂商们将更烦恼</A></p>
手机制造厂商们也正在因为iPhone而大伤脑筋,尽管现在他们正受益于两位数增长的智能手机市场.当运营商们因iPhone而必须提高补贴的时候,他们会将压力转加到手机制造厂商头上,进而压低手机价格.何况,如果iPhone真像分析师们预期那样大卖的话,其他手机厂商的市场份额也会受到很大侵蚀.很久没推出拳头产品的摩托罗拉可能受创最重,三星、LG甚至诺基亚也会遭受冲击,NPD集团的主任分析师Ross Rubin说到,"高端、时尚机型将受冲击最大".<BR><BR>
还有,为了赶上iPhone的技术水平和图形表现能力,手机制造厂商们将不得不提高他们的软件研发成本.去年售出300万台触摸手机的 HTC,已经开发了一种特殊的3D菜单,该菜单表现力强劲,把通讯录做得就像在实际的纸制通讯录中翻找一样."我们希望能把用户的触摸体验提升到一个新的水平",HTC 首席营销官的John Wang说到.<BR><BR>
作为世界上最大手机制造商的诺基亚,在Ovi上投了大量资金,希望为它的智能手机建立一个集地图、游戏和照片共享于一身的Web服务平台,这次在iPhone的刺激下也在加紧推出新服务."我们将继续推出新服务",诺基亚美洲区副总裁Bill Plummer说到.
<p class=abc><A name=a3> iPhone带来的冲击会持续多久?</A></p>
iPhone带来的冲击将会持续多久?这个很难说.一个重量级手机的销售要达到顶峰需要几年的时间.摩托罗拉传奇的RAZR系列手机在2004年推出,直到2007年一季度才达到销售的顶峰,据NPD的数据,当时RAZR系列手机销售占全美手机销售的12%.<BR><BR>
虽然不好说那些别的智能手机和类iPhone的手机将会如何发展,但是"毕竟,重要的是,它们不是iPhone",Jupiter研究所分析师Neil Strother说到,"这不是在苹果堆里挑苹果".<BR><BR>
</BODY>
</HTML>
文件清单4:
<!-- ------------------------------ -->
<!-- 文件范例:2.html -->
<!-- 文件说明:右侧框架二 -->
<!-- ------------------------------ -->
<HTML>
<HEAD>
<TITLE>右侧框架二</TITLE>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML;CHARSET=UTF-8">
</HEAD>
<BODY>
<H1>Fireworks MX</H1>
Fireworks MX作为网页图像设计软件的代表,在继承了前期版本图形绘制、页面特效功能的同时,大大地发展了位图图像方面的处理功能,这无疑使这个软件有了向Photoshop挑战的更多资本,而其在网页设计方面的诸多应用,又无任何软件可与之媲美。与Dreamweaver MX的整合使其在专业网站图像设计过程中,扮演着不可或缺的角色。
</BODY>
</HTML>
文件清单5:
<!-- ------------------------------ -->
<!-- 文件范例:3.html -->
<!-- 文件说明:右侧框架三 -->
<!-- ------------------------------ -->
<HTML>
<HEAD>
<TITLE>右侧框架三</TITLE>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML;CHARSET=UTF-8">
</HEAD>
<BODY>
<H1>Flash MX</H1>
Flash MX作为网页矢量交互动画软件的代表,提供了图形绘制、动画制作和交互三大功能。掌握了这个软件的核心,也就有能力在网上冲浪的同时,充当一把闪客的角色。越来越多的个人、商业网站采用Flash技术制作广告Banner、动画片头、MTV、交互游戏,其广泛的应用为Flash的学习者提供了广阔的发展平台,学习Flash MX软件更是一个具有诱惑力的过程。
</BODY>
</HTML>
源代码
posted @
2008-06-18 11:47 CoderDream 阅读(801) |
评论 (3) |
编辑 收藏
大家好,网页设计思考栏目今天继续第八讲。我们上次讨论了首页设计的版面布局 和色彩的搭配,今天我们来谈谈字体。
●字体(Font)的设置是网页制作新手遇到的第一个难点。如何控制字体大小,如何取消 超链接字体的下划线是网友来信问得最多的。好,我们来彻底研究一下字体的各个方面:
○字符集的设定。
在查看html文件原代码时,我们经常可以在文件头<head>和</head>之间看到这么一句代码:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
这段代码的作用是什么呢?是否可以删除呢?
其实这是meta标签的设定语句,是给浏览器看的。它的作用就是告诉浏览器:这个HTML 文件是采用gb2312字符集制作的。当浏览器读到这一代码,便以gb2312字符集来解释和翻译 网页原代码,然后我们就可以看到正确的网页。所以这个meta语句是非常重要的,尽量不要 删除。
gb2312就是我们最熟悉的GB简体码,英文是iso-8859-1字符集。其它还有BIG5,UTF-8, Shift-JIS,EUC,KOI8-2等字符集,分别用于不同的字体显示。
○字体的使用。
在网页里,字体的定义语句是:<font face="Arial">显示文字</font> 其中Arial就是一种字体的名称。 默认的浏览器定义的标准字体是中文宋体和英文times new Roma字体。也就是说, 如果你没有设置任何字体,网页将以这两种标准字体显示。同时,着两种字体也可以在任 何操作系统和浏览器里正确显示。
windows另外自带了40多种英文字体和5种中文字体。这些字体,你也可以在网页里自由 使用和设置。凡是使用windows操作系统的浏览器都可以正确显示这些字体,但在其它操作 系统里,如unix 则不能完全正确显示。
如果你需要用一种特殊的字体来体现你的风格,那么如何让大家可以真正看到你的设计 页面呢?解决的办法是:用图片。
将需要用这种字体的地方用图片代替,以保证所有人看到的页面是同一效果。
○字体的样式(style)。
字体的样式有四种:正常体(regular),斜体(Italic),粗体(Bold),粗斜体(Bold Italic)。 设置方法很简单,阿捷就不多罗嗦了。
○字体的效果。
这里指通过html语言设定可以直接显示的效果,在html里的语句设定为: <span style="text-decoration: overline">显示文字</span>
其中,overline是指上划线效果。其它常用的效果还有:underline(下划线), uppercase(大写)等等。
○字体大小的控制。
字体大小的控制是本节的重点。
一般字体默认的大小是12pt(镑).用<font size="+1">语句可以将文字增大2pt。这种方法我们都已经掌握了。而现在网络上最流行的小中文字体大小为9pt,是如何设定的呢?有三种方法:
1.用"<span style="font-size:9pt">显示文字</span>"语句来设定。
显然这种方法非常麻烦,你必须为每段文字都设定大小。
2.用CSS层叠样式表。
CSS是DHTML的一个组成部分,它可以定义整个页面的字体显示风格和大小。是较为简便的方法。比如,这里需要设定整个页面文字大小为9 pt,只要将下面这段代码加入html代码的<head>和</head>之间:
<style type="text/css">
<--
body {FONT-SIZE: 9pt}
th {FONT-SIZE: 9pt}
td {FONT-SIZE: 9pt}
-->
</style>
其中FONT-SIZE:9pt指字体的大小为9镑
3.第二种方法已经简化了许多步骤,但是仍然不是最理想的方法,因为你必须在每个页面的head区都放置这么一段代码,扩大了文件的字节。另外这样的做法还有一个重大缺点,就是如果我需要修改整个站点的字体大小,就必须一页一页的改!
所以推荐给你最终也是目前最好的方法---外部摸板文件调用法。
“外部摸板调用”就是说你将css的设定作成一个单独的文件,在每个页面里都调用它。一旦你需要修改字体大小,只要修改一个.cs s文件,几百个页面就同时修改了。(这种方法类似子程序调用编写过程序的网友很容易理解
调用的具体方法如下:
(1)将上面的css代码copy成一个mycss.txt文件,然后修改后缀名为mycss.css
(2)在html文件的<head></head>之间插入<LINK href="mycss.css" rel=stylesheet type=text/css>, 语句调用mycss.css(注意有关路径的设置正确)OK!
○字体超链接样式的设定。
通常在网页的<body>中设置连接的颜色,如<body link="#FF00FF" vlink="#FF0000" alink="#008080"> 其中:
link -- Hyperlink(连接)的颜色
vlink-- visited Hyperlink(已访问过的连接)颜色
alink-- active Hyperlink (当前活动的连接)颜色 颜色用rgb的16进制码表示如红色是#FF0000。
同样用CSS可以更简便的设定网页超连接的样式,看下面这段代码:
<style type="text/css"> A:link {TEXT-DECORATION: none;COLOR: #0000FF} A:visited {TEXT-DECORATION: none;COLOR: #000000} A:active {TEXT-DECORATION: none;COLOR: #FF0000} A:hover {COLOR: #FF0000} </style>
将它插入html文件的head区就可以了。其中link设定的是有超链接的颜色;visited是访问过的超 链接颜色;active是鼠标移上去的颜色;hover是鼠标点击时的颜色。而"text-decoration:none"是指 取消超链接的下划线显示。
关于CSS的设定还有更多的用法和技巧,比如在同一页中设定不同的字体大小和超链接颜色,请学习有关CSS的专门知识(可以到阿捷的主页h ttp://pageone.yeah.net查阅)在这里我们不在冗述。
●上面已经介绍了字体在技术上的各个方面。有关字体的设计使用,目前还没有一个成熟的理论, 下面是几条网页设计中字体的使用原则,仅供参考:
1.不要使用超过3种以上的字体。字体太多则显得杂乱,没有主题。
2.不要用太大的字。因为版面是宝贵,有限的,粗陋的大字体不能带给访问者更多信息。
3.不要使用不停闪烁的文字。想让浏览者多停留一会儿的话,就不要使用闪烁的文字。
4.原则上标题的字体较正文大,颜色也应有所区别。
posted @
2008-06-18 09:42 CoderDream 阅读(374) |
评论 (0) |
编辑 收藏
在windows操作系统上使用IE作为浏览器时。常常会发生这样的问题:在浏览使用UTF-8编码的网页时,浏览器无法自动侦测(即没有设定“自动选择”编码格式时)该页面所用的编码。即使网页已经声明过编码格式:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
由此造成某些含有中文UTF-8编码的页面产生空白输出。
如果使用的是Mozilla、Mozilla 浏览器、Sarafi的浏览器这不会造成这个问题。这是由于IE解析网页编码时以HTML内的标签优先,而后才是HTTP header内的讯息;而mozilla系列的浏览器则刚刚相反。
由于UTF-8为3个字节表示一个汉字,而普通的GB2312或BIG5是两个。页面输出时,由于上述原因,使浏览器解析、输出<title></title>的内容时,如果在</title>前有奇数个全角字符时,IE把UTF-8当作两个字节解析时出现半个汉字的情况,这时该半个汉字会和</title>的<结合成一个乱码字,导致IE无法读完<title>部分,使整个页面为空百输出。而这个时候如果察看源文件的话,会发现实际上整个叶面全部已经输出了。
因此最简单的解决办法是在网页文件的<head></head>标签中一定要把字符定义
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
放在<title></title>之前。
posted @
2008-06-18 09:30 CoderDream 阅读(398) |
评论 (0) |
编辑 收藏
1、
如何使用Log4j?
2、
http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/log4j/log4j.html
3、
Log4j
http://my.so-net.net.tw/idealist/Java/Log4j.html
posted @
2008-06-13 17:56 CoderDream 阅读(397) |
评论 (0) |
编辑 收藏
摘要: 14.1 什么是JavaScript
14.1.1 JavaScript概念
JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言。
14.1.2 JavaScript特点
是一种脚本编写语言;
基于对象的语言;
简单性;
安全性;
动态性;
跨平台性
14.2 编写第一个JavaScript脚本
文件范例:1401.html
<!-- --...
阅读全文
posted @
2008-06-04 09:29 CoderDream 阅读(412) |
评论 (0) |
编辑 收藏
我们在开发的过程中,调试的时候经常要进入某些包,如果没有将这些包与对应的源文件文件夹或zip包对应,就会提示“Source not found”,但是现在很多jar文件都会有相应的源文件,如Struts、Spring等等。而且JavaEE的很多源文件可以通过Tomcat的源文件找到,我们把它打成zip包,注意要和jar文件夹对应,然后设置一下,以后新建Web Project的时候,就可以很方便的查看servlet文件夹下面的源代码了。
这是javaee.jar的设置画面,其他Struts等等设置类似。
posted @
2008-05-29 14:57 CoderDream 阅读(3141) |
评论 (0) |
编辑 收藏
出现这个问题后使用“清理”功能,如果还不行,就直接到上一级目录,再执行“清理”,然后再“更新”。
有时候如果看到某个包里面的文件夹没有SVN的标志,直接用“Ctrl+Delete”手工删除,然后“清理”,最后“更新”或“提交”。
网络摘抄1:
错误信息
Malformed file
svn: E:\svn\repository\conf\svnserve.conf:12: Option expected
原因:
配置文件12行开头有空格
错误信息
Attempted to lock an already-locked dir
svn: Working copy 'E:\integration\com.svn.practise' locked
原因:
需要用svn cleanup上次关闭时的锁定
网络摘抄2:
在eclipse里提交和更新文件是抱错。
Attempted to lock an already-locked dir
svn: Working copy 'F:\workspace\WebFrame\WebRoot\attach\prodrelation' locked
执行“清除”操作后,问题解决了。
很多操作,例如中断提交,都会进入这种工作拷贝的锁定状态。
网络摘抄3:
因为这两天频出这个现象,现在基本不怕这个问题了
我是这样解决的:
1 三令五申项目的组员必须先同步,合并,再提交
2 操作后经常地在父目录使用clean up命令
3 解决了locked问题后,还出现不能更新的现象时,就删除目录下的所有文件,包括.svn,再重新check out服务器同目录一次
4 总之,操作要规范,要强调组员每天开工时,先在ECLIPSE里同步,下班时,要提交(提交前,先在文件夹的右菜单中,选择小组>清除),保证每个人的机子里在开工前都是最新版本
老实讲,因为版本冲突,提交冲突,更新失败等等问题,耽误了好些时间,但我知道主要还是自身操作不熟练不规范的问题。我相信,只要坚持,大家包括我的组员一定都会喜欢上这个小海龟的
posted @
2008-05-27 09:51 CoderDream 阅读(108624) |
评论 (14) |
编辑 收藏
效果:
文件清单:
序号 |
文件名 |
1 |
ChangeLocaleAction.java |
2 |
ChangeLocaleForm.java |
3 |
struts-config.xml |
4 |
index.jsp |
5 |
application_en_US.properties |
6 |
application_zh_CN.properties |
7 |
application_zh_TW.properties |
清单1:
package com.coderdream.struts.action;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.Globals;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.coderdream.struts.form.ChangeLocaleForm;
public class ChangeLocaleAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
ChangeLocaleForm clForm = (ChangeLocaleForm)form;
String language = clForm.getLanguage();
if (language != null) {
Locale locale;
if (language.equalsIgnoreCase("en")) {
locale = Locale.US;
request.getSession().setAttribute(
Globals.LOCALE_KEY, locale);
} else if (language.equalsIgnoreCase("tw")) {
locale = Locale.TAIWAN;
request.getSession().setAttribute(
Globals.LOCALE_KEY, locale);
} else {
locale = Locale.CHINA;
request.getSession().setAttribute(
Globals.LOCALE_KEY, locale);
}
}
return mapping.findForward("success");
}
}
清单2:
package com.coderdream.struts.form;
import org.apache.struts.action.ActionForm;
/**
*
* description:
*
* @author
*
*/
public class ChangeLocaleForm extends ActionForm{
public ChangeLocaleForm() {
super();
}
private String language;
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
}
清单3:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans>
<form-bean name="ChangeLocaleForm"
type="com.coderdream.struts.form.ChangeLocaleForm" />
</form-beans>
<action-mappings>
<action name="ChangeLocaleForm" path="/ChangeLocale"
scope="request"
type="com.coderdream.struts.action.ChangeLocaleAction"
validate="false">
<forward name="success" path="/index.jsp" />
</action>
</action-mappings>
<message-resources key="application"
parameter="com.coderdream.struts.resources.application" />
</struts-config>
清单4:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@page import="org.apache.struts.Globals"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<html:html>
<head>
<title>多语言测试</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<script language="javascript">
function onLanguage(){
var language = document.getElementsByName("language")[0].value;
if(language!=null&&language!=""){
document.forms[0].submit();
}
}
</script>
<body>
<html:form action="ChangeLocale.do">
<html:select property="language" styleId="height:18"
onchange="onLanguage();">
<option value="" title="">
--
<bean:message bundle="application" key="global.select.language" />
--
</option>
<option value="en" title="English">
English
</option>
<option value="cn" title="简体中文">
简体中文
</option>
<option value="tw" title="繁體中文">
繁體中文
</option>
</html:select>
</html:form>
<br>
<br>
<br>
<bean:message bundle="application" key="global.select.test" />
<%=request.getSession().getAttribute(Globals.LOCALE_KEY)%>
</body>
</html:html>
清单5:
#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
global.select.language = Language
global.select.test = Test
清单6:
#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
#BizException
global.select.language = \u8BED\u8A00
global.select.test = \u6D4B\u8BD5
清单7:
#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
global.select.language = \u8A9E\u8A00
global.select.test = \u6E2C\u8A66
此功能的关键是在Action里面将页面传过来的language信息得到,然后根据信息设置Locale,然后将新的Locale放到Session中。
源代码:
点击下载
posted @
2008-05-14 18:20 CoderDream 阅读(1005) |
评论 (0) |
编辑 收藏
需求:用实线把各个面板圈起来,然后把面板的名字写在圈圈的左上角。
原始画面:
由于原来的程序使用的是AWT中的Panel,而这个控件我们没有设置titleBorder的方法。
现在将更新为Swing中的JPanel面板,代码分别为:
旧代码:
Panel pRoboCtrl=new Panel();
pRoboCtrl.setLayout(new GridLayout(5, 1, 2, 5));
// Robot控制面板的第一排,面板的标题
Panel pR1=new Panel();
pR1.setLayout(new GridLayout(1, 1, 2, 3));
//Row One
pR1.add(new Label("Robot Control",Label.CENTER));
新代码:
JPanel pRoboCtrl=new JPanel();
pRoboCtrl.setLayout(new GridLayout(4, 1, 2, 5));
Border titleBorder1=BorderFactory.createTitledBorder("Robot Control");
pRoboCtrl.setBorder(titleBorder1);
原来的处理方式是将一个Label放到Panel中,然后将这个Panel放到外层的Panel中,新方式是将外层Panel定义成JPanel,然后设置Border的值为BorderFactory产生的一个实例。
解决这个问题后,新问题又来了,两个JPanel中的内容不一样,上面多,下面少,但是现在面板却是一样大,要改成面板高度自动适应。
其实这只需要修改一行代码就可以了,代码如下:
旧代码:
CP.setLayout(new GridLayout(3, 1, 2, 5));
新代码:
CP.setLayout(new BoxLayout(CP, BoxLayout.Y_AXIS)); // 沿垂直方向布置组件
旧代码的处理方式是网格布局,新代码的方式是用BoxLayout布局管理器,它会按要求垂直或水平分布。
以下代码创建了一个JPanel容器,它采用垂直 BoxLayout,在这个容器中包含两个Button,这两个Button沿垂直方向分布,并且保持像素为 5 的固定垂直间隔。
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));// 沿垂直方向布置组件
panel.add(new JButton("Button1"));
panel.add(Box.createVerticalStrut(5));
panel.add(new JButton("Button2"));
源代码:
下载
posted @
2008-04-29 16:16 CoderDream 阅读(15589) |
评论 (2) |
编辑 收藏
1、下载
http://www.opensymphony.com/quartz/download.action
https://quartz.dev.java.net/files/documents/1267/43545/quartz-1.6.0.zip
2、
详细讲解Quartz如何从入门到精通
3、
用 Quartz 进行作业调度
posted @
2008-04-15 17:46 CoderDream 阅读(726) |
评论 (0) |
编辑 收藏
数据库和表
create table USERS
(
USERNAME VARCHAR2(20) not null,
PASSWORD VARCHAR2(20)
)
alter table USERS
add constraint U_PK primary key (USERNAME)
/**
* JdbcExample.java
*
* Provider: CoderDream's Studio
*
* History
* Date(DD/MM/YYYY) Author Description
* ----------------------------------------------------------------------------
* Apr 14, 2008 CoderDream Created
*/
package com.coderdream.jdbc.oracle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* @author XL
*
*/
public class JdbcExample {
private static Connection getConn() {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@10.5.15.117:1521:csi";
String username = "scott";
String password = "tiger";
Connection conn = null;
try {
Class.forName(driver);
// new oracle.jdbc.driver.OracleDriver();
conn = DriverManager.getConnection(url, username, password);
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
private static int insert(String username, String password) {
Connection conn = getConn();
int i = 0;
String sql = "insert into users (username,password) values(?,?)";
PreparedStatement pstmt;
try {
pstmt = conn.prepareStatement(sql);
// Statement stat = conn.createStatement();
pstmt.setString(1, username);
pstmt.setString(2, password);
i = pstmt.executeUpdate();
System.out.println("resutl: " + i);
pstmt.close();
conn.close();
}
catch (SQLException e) {
e.printStackTrace();
}
return i;
}
private static void query() {
Connection conn = getConn();
String sql = "select * from users";
PreparedStatement pstmt;
try {
pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println("name: " + rs.getString("username")
+ " \tpassword: " + rs.getString("password"));
}
rs.close();
pstmt.close();
conn.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
private static int update(String oldName, String newPass) {
Connection conn = getConn();
int i = 0;
String sql = "update users set password='" + newPass
+ "' where username='" + oldName + "'";
PreparedStatement pstmt;
try {
pstmt = conn.prepareStatement(sql);
i = pstmt.executeUpdate();
System.out.println("resutl: " + i);
pstmt.close();
conn.close();
}
catch (SQLException e) {
e.printStackTrace();
}
return i;
}
private static int delete(String username) {
Connection conn = getConn();
int i = 0;
String sql = "delete users where username='" + username + "'";
PreparedStatement pstmt;
try {
pstmt = conn.prepareStatement(sql);
i = pstmt.executeUpdate();
System.out.println("resutl: " + i);
pstmt.close();
conn.close();
}
catch (SQLException e) {
e.printStackTrace();
}
return i;
}
/**
* @param args
*/
public static void main(String[] args) {
insert("CDE", "123");
insert("CoderDream", "456");
query();
update("CoderDream", "456");
query();
delete("CoderDream");
query();
}
}
posted @
2008-04-14 17:55 CoderDream 阅读(7038) |
评论 (0) |
编辑 收藏
1、首先下载eclipse的Tomcat插件,文件名为:tomcatPluginV321.zip
下载:
地址
2、安装Tomcat插件,即将zip档解压,放入eclipse目录下的 plugins 文件夹中。
3、在项目上点右键,设置properties,在'Tomcat'下面设置'export to war settings'输入要导出的war文件路径和文件名,确定,返回项目。
4、在项目上点右键,选择tomcat project->Export to the war file sets in project properties
5、 进入C盘,可以看到csi.war文件正在生成,成功后会有提示框。这样就可以通过Tomcat插件导出WAR档了。
posted @
2008-04-08 13:43 CoderDream 阅读(3725) |
评论 (1) |
编辑 收藏
有关CVS权限设置参考
个人建议:如果各个项目独立,我还是建议每个项目一个库!
你的整体思路是正确的,步骤很清晰。
不过要注意cvs chacl -R default:n 的使用,此命令会把该模块的全部权限都去掉的。
另外建议 如果admini,pm 是管理员用户,可以在CVSROOT下建立超级用户admin文件,将这两个用户加入。
=====================================================================
那就按找你的思想设计权限
假设目录结构如下
project
|
|……pro1
| |_pro
| |_aa
|
|……Pro2
| |_pro
| |_bb
|
|_CVSROOT
权限要求
1.用户admini,pm 对project 整个目录有rcw的权限
2.用户h,y,w 对pro1\pro 整个目录有rcw的权限
3.用户y 对pro1\aa 整个目录有rcw的权限
4.用户h 对pro2 整个目录有rcw的权限
=====================================================================
权限设置步骤如下:
首先,建立一个组包含3个用户h,y,w。 group1:h,y,w
一.用户admini,pm 对project 目录有rcw的权限
选中模块roject设置权限:
cvs chacl -R default:n
cvs chacl -R admini:rcw
cvs chacl -R pm:rcw
cvs lsacl
二.用户h,y,w 对pro1\pro目录有rcw的权限
选中模块pro设置权限:
cvs chacl -R group1:rcw
cvs lsacl
三.用户y 对pro1\aa目录有rcw的权限
选中模块aa设置权限:
cvs chacl -R y:rcw
cvs lsacl
四.用户h 对pro2目录有rcw的权限
选中模块pro2:
cvs chacl -R h:rcw
cvs lsacl
结束!
C应该是check out/in
R:READ-只读权限;用户不能对文件进行修改操作;
A:ADD/RENAME/DELETE-用户可以对文件进行添加、删除和更名的操作;其中删除的操作支持从视图中删除文件连接,并没有彻底删除文件,配置库中依然保存文件及其日志信息;
C:CHECK IN/CHECK OUT-文件修改权限:用户可以将文件进行签出进行修改,并可以将修改后的文件签入到配置库中;
D:DESTROY-彻底删除权限;
1、
VSS和CVS的比较
2、
CVS使用手册
3、
一篇CVS权限管理手册
4、
CVS资料集中营
5、
CVS权限设置
posted @
2008-04-07 16:32 CoderDream 阅读(519) |
评论 (0) |
编辑 收藏
摘要: Struts连接数据库一般有直接JDBC和数据源两种方式,
1、JDBC:
在MySQL中创建数据库:
drop database if exists login;
create database login;
use login;
create table user(...
阅读全文
posted @
2008-03-26 13:47 CoderDream 阅读(3858) |
评论 (5) |
编辑 收藏