Archive for the ‘Java’ Category

tomcat5.5.23中access连接池的配置方法

Thursday May 17, 2007

记录一下, 这里只给出server.xml的配置方法,其它的配置及测试代码在 这里

<logger className="org.apache.catalina.logger.FileLogger"
            directory="logs"  prefix="localhost_log." suffix=".txt"
            timestamp="true"/>
         <context docBase="cmmi" path="/cmmi" 
                 reloadable="true" crossContext="true">
	    <logger className="org.apache.catalina.logger.FileLogger"
                     prefix="localhost_lovehome_log." 
                     suffix=".txt" timestamp="true"/>
       <resource name="jdbc/access" auth="Container" 
              type="javax.sql.DataSource"
              maxActive="100" maxIdle="30" maxWait="10000"
              driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
              username="sa" password="12345"
              url="jdbc:odbc:work"
              defaultAutoCommit="true" removeAbondoned="true"
              removeAbondonedTimeout="60" logAbondoned="true"/>
        </context>

Add Comment »

一个简单的jsp分页实现

Thursday March 29, 2007

环境
xp + jdk1.5 + tomcat5.5.23 + eclipse3.2.2 + myeclipse5.1.1GA + sqlserver2000

使用连接池方式连接数据库,至于这方面的问题可参考 http://roamlog.cn/?p=39

写一个DBConnection.java封装对数据库的一些操作,实现SqlTestDS的getConnection()方法连接数据库

DBConnection.java

package database;
import java.sql.*;
public class DBConnection{
	private Connection conn = null;
	private Statement stmt = null;
	ResultSet rs = null;
	public ResultSet executeQuery(String sql) {
	try {
	     conn =SqlTestDS.getConnection();
             stmt=conn.createStatement
(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
			rs = stmt.executeQuery(sql);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return rs;
	}
	public void executeUpdate(String sql) {
		try {
			conn = SqlTestDS.getConnection();
			stmt =conn.createStatement
(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
			stmt.executeUpdate(sql);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public void closeStmt() {
		try {
			stmt.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public void closeConn() {
		try {
			conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Continue reading »

1 Comment »

笔记:tomcat5.5.23的连接池配置方法

Wednesday March 28, 2007

前些天我也写过一篇类似的文章,关于连接池配置的,今天我重新写过一篇,介绍不同的配置方法
环境搭建我就不多说了,我的环境是:

xp + jdk1.5 + tomcat5.5.23 + eclipse3.2.2 + myeclipse5.1.1GA + sqlserver2000

首先写个连接数据源的java类

SqlTestDS.java

package database;
import javax.sql.DataSource;
import javax.naming.*;
import java.sql.*;
public class SqlTestDS {
private static DataSource ds = null;
static {
init();
}
private static void init() {
try {
// 1、创建命名服务环境
Context ctx = new InitialContext();
if (ctx == null)
throw new Exception("No Context");
 
// 2、从JNDI中查询数据源对象
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/sqlserver");
 
} catch (Exception e) {
e.printStackTrace();
}
}
 
// 将构造函数定义为private权限是为了保证全局只有一个SqlTestDS实例
// 也就是实现了单例模式
private SqlTestDS() {
 
}
 
public static Connection getConnection() throws SQLException {
if (ds == null) {
throw new SQLException("数据源对象为空!");
} else {
// 3、从数据源中获取数据库连接
return ds.getConnection();
}
}
}

Continue reading »

Add Comment »

tomcat5.5.20的连接池配置方法

Tuesday February 27, 2007

配置server.xml,在< /host > 标签前加入

<context
       docBase="C:/eclipse/workspace/myweb/hello"
        path="/hello"
         reloadable="true"
<resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
	maxActive="100" maxIdle="30" maxWait="10000"
	driverClassName="com.mysql.jdbc.Driver"
	username="root" password="123456"
	url="jdbc:mysql://localhost/testmysql"
	defaultAutoCommit="true" removeAbondoned="true"
	removeAbondonedTimeout="60" logAbondoned="true"/>
</context>

配置web.xml

	<resource-ref>
		<res-ref-name>jdb/mysql</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>

1 Comment »

自动设置环境变量

Monday February 12, 2007

在ChinaJavaWorld看到的很简单的一个脚本,用于自动设置环境变量。
把代码拷贝,另存为javaEnv.bat。安装完Java 2 SDK之后,开一个命令行窗口,输入 javaEnv java2SDKDir (java2SDKDir是你的java的安装目录,不带路径最后的)并运行。 (注:一定要在javaEnv后边加上你的sdk的目录)

@echo off
IF EXIST %1\bin\java.exe (
   rem 如输入正确的 Java2SDK 安装目录,开始设置环境变量
   @setx JAVA_HOME %1
   @setx path %path%;%JAVA_HOME%\bin
   @setx classpath %classpath%;.
   @setx classpath %classpath%;%JAVA_HOME%lib	ools.jar
   @setx classpath %classpath%;%JAVA_HOME%libdt.jar
   @setx classpath %classpath%;%JAVA_HOME%jrelib
t.jar
   @echo on
   @echo Java 2 SDK 环境参数设置完毕,正常退出。
)  ELSE (
      IF "%1"=="" (
      rem 如没有提供安装目录,提示之后退出
      @echo on
      @echo 没有提供 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。
      ) ELSE (
        rem 如果提供非空的安装目录但没有binjava.exe,则指定的目录为错误的目录
        @echo on
        @echo 非法的 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。
      )
)

摘录至[weeker]

2 Comments »

Java学习笔记

Friday February 9, 2007

1. 构造器也可以声明为抛出检查型异常, throws子句位于参数列表之后,构造器的左花括号之前.如果有 throws 子句, 那么任何调用该构造器作为new表达式一部分的方法就都必须要么捕获这个声明的异常, 要么声明将这个异常抛出.

2. 方法中的所有参数都是”按值”传递的, 换句话说, 方法中参数变量的值是调用者所指派的引元之值的副本. 如果我们将一个 double 类型的引元传入方法, 那么无论传入的值是什么, 该方法的参数都是这个值的副本, 而且, 该方法对参数值的修改不会影响到调用这个方法的代码中的值. 例如:
Continue reading »

Add Comment »

How to Shoot Yourself in the Foot in Any Programming Language

Friday February 9, 2007


C
You shoot yourself in the foot.

C++
You accidentally create a dozen clones of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can’t tell which are bitwise copies and which are just pointing at others and saying, “That’s me, over there.”

JAVA
After importing java.awt.right.foot.* and java.awt.gun.right.hand.*, and writing the classes and methods of those classes needed, you’ve forgotten what the hell you’re doing.
Continue reading »

2 Comments »