Java天空

 

2006年9月16日

土办法解决 ubuntu wine 1.3 安装ies4linux 2.99.0.1

由于wine 1.3使用了winepath代替wineprefixcreate,所以安装ies4linux的时候,会提示wine版本太旧,wineprefixcreate有误。可以通过修改ies4linux 2.99.0.1/lib的functions.sh、install.sh来简单解决ie6的安装问题。

在install.sh 426行左右
    subsection $MSG_CREATING_PREFIX
        set_wine_prefix 
"$BASEDIR/ie1/"
       
wineprefixcreate &> /dev/null
        clean_tmp

改为:
    subsection $MSG_CREATING_PREFIX
        set_wine_prefix 
"$BASEDIR/ie1/"
       
winepath &> /dev/null
        clean_tmp

在functions.sh 242行左右
function create_wine_prefix {
    
if which wineprefixcreate &> /dev/null; then
        (
wineprefixcreate 2>&1 ) | debugPipe
    
else
        error $MSG_ERROR_NO_WINEPREFIXCREATE
    fi
}

改为:
function create_wine_prefix {
    
if which winepath &> /dev/null; then
        ( winepath 
2>&1 ) | debugPipe
    
else
        error $MSG_ERROR_NO_WINEPREFIXCREATE
    fi
}

保存后重新运行./ies4linux安装即可。

PS:因为没有需要,所以我安装的时候没有安装flash player。

posted @ 2010-09-09 20:15 YY 阅读(899) | 评论 (1)编辑 收藏

ubuntu 10.04 安装oracle 10g

(摘自Ubuntu中文论坛 作者:孙高勇)

http://wiki.ubuntu.org.cn/%E9%A6%96%E9%A1%B5/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%9C%8D%E5%8A%A1/Oracle%E6%9C%8D%E5%8A%A1%E4%B9%8B%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97

本文是在 ununtu linux 下 Oracle10g 的安装笔记。我假设您已经成功的安装并配置了Ubuntu Linux。并且安装好了 gcc, make, binutils, lesstif2, libc6, and rpm libaio1 awk rpm j2re 的运行环境,可通过 apt-get install 完成安装(ununtu 和 debian 的这种安装方式蛮方便的)。

  • 创建用户和组
    oracle 安装需要两个 unix 用户组和一个运行时的 oracle 用户。
#sudo addgroup oinstall
$sudo addgroup dba
$sudo addgroup nobody
$sudo useradd -m -s /bin/bash oracle

# 设置oracle用户密码
$sudo passwd oracle
$sudo gpasswd -a oracle oinstall
$sudo gpasswd -a oracle dba
$usermod -g nobody nobody
  • 创建目录
    有很多文档,建议您将 oracle 安装到一个独立的分区上面。比如:/opt。请您根据您的需要选择合适自己的安装目录。在本文档中,我们假设 Oracle 的安装目录为/opt/ora10。确保有至少 3.0G 的可用空间。
#mkdir -p /opt/ora10
#chown -R oracle:oinstall /opt/ora*
#chmod -R 775 /opt/ora*

您生成了 oracle 的运行时路径,并且授写权限给 oracle 用户,执行权限给 dba 组。

  • 设置内核参数
    • 修改 sysctl.conf
      添加如下的行到/etc/sysctl.conf 中:
# 这个最大内存要实现情况给,底下是给了3000M

kernel.shmmax = 3147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

注:shmmax(最大共享内存)是一个很重要参数,根据您的机器的内存来设定。如果您设置不合适的 话,在创建数据库到约 86%的时候就会挂掉。祝您好运。_

    • 修改 limits.conf
      添加下面的行到/etc/security/limits.conf 以修改你的资源限制:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
    • 让修改生效
      修改了以上文件后,您必须让其生效,您重启系统,或者切换到 root 用户下用以下的方式改变内核运行参数:
#sysctl -p
    • 创建程序链接
#ln -s /usr/bin/awk /bin/awk
#ln -s /usr/bin/rpm /bin/rpm
#ln -s /usr/bin/basename /bin/basename
  • 设置 Oracle 用户环境
    以 oracle 用户登录:
~$su oracle

修改~/.bash_profile (也有可能是.profile)文件,去掉下列三行的注释符,使.bashrc 文件生效:

#if [ -f ~/.bashrc ]; then
# . ~/.bashrc
#fi

ununtu 默认是没有注释的,debian 用户需要取消掉这个。
添加下列行到~/.bashrc:

# oracle 10g
export ORACLE_BASE=/opt/ora10
export ORACLE_HOME=/opt/ora10
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=compiere
export ORACLE_TERM=xterm
# Edit paths
export LD_LIBRARY_PATH=/usr/lib:/lib/:$LD_LIBRARY_PATH:/opt/ora10/lib:/opt/ora10/lib/stubs/
export PATH=/opt/ora10/bin:$PATH


我是将上面的内容保存到另一个文件中,.bash_oracle,然后在.bashrc 中使用 source.bash_oracle 进行调用 的。您可以根据您的好恶进行设置。您需要注意的是,ORACLE_BASE 和ORACLE_HOME 的设置一定得和您在前面创建的目录相符。 ORACLE_SID 是默认数据库的名称,在本文档中,我们假设默认的数据库名叫 compiere,如果您想用其他的名字,请您作相应的修改。

  • 执行安装
    • 交换分区的调整
      以 oracle 用户启动 X,进行安装。
      差点忘了,为了安装 Oracle 10g,oracle 推荐至少 512M 内存和至少 400M 交换空间。内存,好象不够关系也不大,但是交换分区呢,您还是大方一点吧。如果您的交换分区不够 400M,那么您还是先看看这一步吧。
重设交换分区可以使用如下操作:

shell# dd if=/dev/zero of=tmp_swap bs=1k count=900000
shell# chmod 600 tmp_swap
shell# mkswap tmp_swap
shell# swapon tmp_swap

完成安装以后,可以释放这个空间:

shell# swapoff tmp_swap
shell# rm tmp_swap

count 值是根据您需要调整的交换分区大小而定。
    • 安装前的准备
      终于可以安装了。我们假设下载的安装文件位于/home/sungaoyong/oracle 下,名称为 10201_database_linux32.zip 解压后。 创建一个文件 /etc/redhat-release:添加如下内容。
Red Hat Linux release 3.1 (drupal)

安装了的话, 这一步是也没有必要。

oracle 将会把系统认为是 redhat 3 了:)

  • java 中文的显示
    进入 java 的安装路径
$ cd /usr/lib/j2se/1.4/lib
$ sudo cp font.properties.zh_CN_UTF8.Sun font.properties

将最下面的一行改为如下:

filename.-misc-fzsongti-medium-r-normal--*-%d-*-*-p-*-iso10646- 1=/usr/share/fonts/VeraSansYuanTi/VeraSansYuanTi-Regular.ttf
appendedfontpath=/usr/share/fonts/VeraSansYuanTi

java 就支持中文显示了。以上这步,在java6中是无效的,因为java6的字体配置不是这样子的.

    • 运行 Installer
      进入 oracle 数据库解压的目录
./runInstaller -jreLoc /usr/lib/j2se/1.4/jre

指定 jre 的目的就是始安装界面可以显示中文,否则安装界面的中文都是小框框,不信试试,嘿嘿!接下的一般选择默认设置就可以了。

以上这步,如果你安装的是java6,那么还是请你用

export LANG=en_CN

比较好, 直接使用英文环境来安装, 因为在安装界面用上面所说的方法,确实是中文了,但到后面的数据库配置界面,又会重新变回小方块。所以还是推荐大家直接用英文环境来安装吧。

  • 启动数据库
    • 启动
$ sqlplus " scott/tiger as sysdba"

将出现如下连接数据库信息:

SQL*Plus: Release 10.1.0.2.0 - Production on 星期三 3 月 24 16:23:27 2004

Copyright (c) 1982, 2004, Oracle. All rights reserved.

连接到:

Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL>

表明登录数据库系统成功,运行 startup 命令启动数据库。

SQL> startup

ORACLE instance started.

Total System Global Area 336356520 bytes

Fixed Size 279720 bytes

Variable Size 268435456 bytes

Database Buffers 67108864 bytes

Redo Buffers 532480 bytes

Database mounted.

Database opened.

SQL>

表示数据库正常启动。

    • 关闭 Oracle10g 数据库
$ sqlplus "scott/tiger as sysdba" //以 sysdba 用户登录数据库

成功登录数据库系统后,运行 shudown 命令关闭数据库。

SQL> shutdown
    • 启动 Oracle10g 监听程序
      Oracle 的监听程序主要是为客户端的连接提供接口,在控制台窗口键入如下命令:
$ lsnrctl

将出现如下监听程序信息:

LSNRCTL for 32-bit Windows: Version 10.1.0.2.0 - Production on 24-3 月 -2004 16:59:51

Copyright (c) 1991, 2004, Oracle. All rights reserved.

欢迎来到 LSNRCTL, 请键入"help"以获得信息。

LSNRCTL>

表明登录监听程序控制台成功,运行 start 命令启动监听程序。

LSNRCTL> start

将出现监听程序的一系列启动和配置情况信息列表。信息行的最后一行是“The command completed successfully”字样时,监听程序启动成功。

    • 关闭 Oracle10g 监听程序
      运行 stop 命令关闭监听程序。
LSNRCTL> stop
  • 创建自启动脚本
    创建 oracledb 脚本到/etc/init.d/oracledb,内容如下
#!/bin/bash

#
# /etc/init.d/oracledb

#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_HOME=/opt/ora10
export ORACLE_SID=compiere
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbstart
touch /var/lock/oracle
su $ORA_OWNR -c $ORACLE_HOME/bin/emctl start dbconsole
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle
su $ORA_OWNR -c $ORACLE_HOME/bin/emctl stop dbconsole
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
***)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0

设置权限,放到启动脚本中去

#chmod 755 /etc/init.d/oracledb
#update-rc.d oracledb defaults 99
  • 使用企业管理器
    启动控制台
#emctl start dbconsole

访问数据库控制器http://localhost.localdomain:1158/em/ 要提供 sys/passwd as sysdba; 你要从一个客户端浏览器访问 em 数据库控制器,必须要运行 dbconsole 进程.安装之后,dbconsole 进程是自动会启动的.然后,如果这个集成没有启动,你可以向下面的命令行手工的启动它:

#cd $ORACLE_HOME/bin
#emctl start dbconsole

这样你就可以打开 web 浏览器,输入下面的 http://hostnameortnumber/em 来访问 em db control. host 那么是你的计算机的名字或地址.portnumber 是 em db control http 的端口号,这是在安装的时候指定的.默认的是 1158 ,你可以在$ORACLE_HOME/install/portlist.ini 文件中找到这个值.
如果实例启动了,EM 就会显示 db control 登录页.你必须使用授权访问 db control 的用户登录到数据库.一开始是 sys 用户,使用在安装的时候你确定的 sys 用户的密码.从 connect as 下拉框选 sysdba,然后点登录.这样就会出现 dbcontrol 的主页.这是同 Oracle 9i 的不同的。其它的大家共同学习吧!

posted @ 2010-07-13 10:19 YY 阅读(1728) | 评论 (1)编辑 收藏

ibatis eclipse plugin Abator配置使用简单说明

安装:
         eclipse自动安装url: http://ibatis.apache.org/tools/abator

配置:
         安装好后将在New菜单中看到一个新的文件类型Abator for iBATIS Configuration File,这个是Abator的配置文件,new一个并修改配置文件,配置样式如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE abatorConfiguration PUBLIC "-//Apache Software Foundation//DTD Abator for iBATIS Configuration 1.0//EN"
  "http://ibatis.apache.org/dtd/abator-config_1_0.dtd"
>

<abatorConfiguration>
  
<abatorContext generatorSet="Java5">    <!-- TODO: Add Database Connection Information -->
    
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
        connectionURL
="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
        userId
="user"
        password
="password">
      
<!-- 注意:以下的classPathEntry一定要设置,否则会出现Exception JDBC Driver的错误 -->
      
<classPathEntry location="D:/workspace/lib/ojdbc14_g.jar" />
    
</jdbcConnection>

    
<javaModelGenerator targetPackage="com.iamyy.test.ibatis.vo" targetProject="AbatorTest" />
    
<sqlMapGenerator targetPackage="com.iamyy.test.ibatis.dao" targetProject="AbatorTest" />
    
<daoGenerator type="IBATIS" targetPackage="com.iamyy.test.ibatis.dao" targetProject="AbatorTest" />

    
<table tableName="T_Role" domainObjectName="Role">
      
<generatedKey column="role_id" identity="true" sqlStatement="select s_role.nextval from dual"/>
      
<columnOverride column="role_id" property="id" javaType="java.lang.String" jdbcType="VARCHAR"/>
      
<columnOverride column="role_name" property="name" javaType="java.lang.String" jdbcType="VARCHAR" />
    
</table>

  
</abatorContext>
</abatorConfiguration>


   
abatorContext的一个属性generatorSet有3个选项Legacy、Java2、Java5,一般用Java5;

         Legacy:如果没有generatorSet属性的话,默认是Legacy。但并不推荐使用Legacy因为它在生成Example类(用于查询条件)的时候有很多限制,他将查询条件写在sqlMap配置文件中,将查询值写在Example中,这样就对修改产生一些困难。

         Java2和Java5:他们只支持iBATIS 2.20以上的版本。在以这个模式成生的Example文件中包含了查询条件和查询值。这样修改就方便多了,对于用join的select时的查询就更方 便了,自己可以定义查询条件,自由度高了很多(对于join的and查询可能还得自己修改一下Example代码)。对于or和and的应用Legacy 的限制就比较大了。

         <javaModelGenerator>、 <sqlMapGenerator>、 <daoGenerator>描述了个自生成的位置。<daoGenerator>中type属性则用来告诉abator生成的DAO是用于iBATIS还是SPRING等容器。

         <table>告诉abator生成那个table的sqlMap。

         <generatedKey>来告诉abator那些列需要自动返回值(当插入的时候可以返回插入记录的主键,这对有外键的数据库极其有用)identity默认为false,则在sqlMap配置文件中<selectKey>的位置在sql命令前面,所以identity应该改为true。根据数据库类型的不同sqlStatement属性取值也不同。


运行:

         右键单击配置文件,点击Generate iBatis Artifacts,生成文件。

         ps: 如果<daoGenerator>中type属性是ibatis的话,由于Abator生成的DAOImpl文件继承自com.ibatis.dao.client.template.SqlMapDaoTemplate,在ibatis ver. 2.3.0.677中会有错误提示,需酌情修改。
         ps的ps: 不建议使用自动生成的Example去操作数据,一是因为Example中生成的方法有拼写SQL之嫌不符合OO思想,二是拼写后SQL效率有待进一步考证,没仔细看,但至少看到not in语句,如果要使用的话至少要进行一些修改。(^-^)个人愚见。
         
         参考:Abator document: http://ibatis.apache.org/docs/tools/abator/
                       iBATIS的Eclipse插件Abator使用方法

posted @ 2007-08-19 19:09 YY 阅读(6320) | 评论 (2)编辑 收藏

ibatis操作oracle数据库时,空值(null)异常的不完全解决方法

ibatis操作oracle数据库时,如果出现空值,ibatis不是插入NULL,而是出现异常,异常信息大致如下:

Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in [someSqlMapFile.xml].  
--- The error occurred while applying a parameter map.  
--- Check the insertUser-InlineParameterMap.  
--- Check the parameter mapping for the '[someProperty]' property.  
--- Cause: java.sql.SQLException: 无效的列类型
    at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:
91)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:
447)
    at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:
82)
    at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:
59)


如果你先插入空值,必须告诉IBatis当该字段出现NULL值该用什么值来替代,方法有2种,如下:

方法一(parameterClass):
1 INSERT INTO TEST(ID, NAME, PASSWD) VALUES (#id#,#name#, #passwd:VARCHAR:NULL#)

支持的类型在 java.sql.Types 中列示出来了
注意:DATA 类型默认不能为NULL

方法二(parameterMap):
使用这个方法时,首先应保证你的Oracle jdbc driver是10G以上版本,不然也是白搭。

 1 <parameterMap id="insert-person-paraMap" class="com.unmi.Person" >
 2     <parameter property="id"/>
 3     <parameter property="name"/>
 4     <parameter property="passwd" jdbcType="VARCHAR"/>
 5 </parameterMap>
 6     
 7 <!-- 插入一条Person对应的记录到数据库中 -->
 8 <insert id="insertPerson" parameterMap="insert-person-paraMap">
 9     INSERT INTO PERSON (ID, NAME, PASSWD) VALUES (?,?,?)
10 </insert>
11 

参考:http://www.blogjava.net/fatbear/archive/2007/06/07/122607.html 
            iBatis 应用程序向 Oralce 数据表字段插入 NULL 值
            作者:肥熊熊

posted @ 2007-08-16 16:18 YY 阅读(4266) | 评论 (1)编辑 收藏

Delphi 7使用DBExpress中的SQLConnection连接SQLSERVER数据库出错原因及解决

安装完Delphi 7后,使用DBExpress中的SQLConnection连接MS SQLSERVER时,如果数据库的sa用户没有设置密码的话,会提示出错。这是因为缺少一个补丁程序,可以去网上搜索:dbExpress Driver Patch1,下载这个补丁并安装,问题应该可以解决。
ps:如果Delphi是安装在除C盘外其它盘符,使用SQLConnection会找不到数据库驱动信息,需要修改注册表,将安装过补丁后的C:\Program Files\Common FIles\Borland*改成你自己的盘符。

    有问题可以跟我联系:yy-man@163.com

 

posted @ 2006-09-16 17:17 YY 阅读(2036) | 评论 (0)编辑 收藏

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

友情链接

搜索

最新评论

阅读排行榜

评论排行榜