最近由于要做一个全文检索的项目,客户要求单机版,不联网,不安装数据库的情况下使用web进行查询检索功能等,于是采用了mysql(mysql-noinstall-5.1.6-alpha-win32)+jdk(j1.6.0_45)+tomcat6(apache-tomcat-6.0.33)。此处mysql是非安装版,jdk也并未安装。 主要有两个技术点,一个是如何启动Tomcat,startup.bat时找到jdk。二是,如何启动非安装版的msql服务。
废话不多说,先解决第一个问题。
一、tomcat与jdk的问题
先将jdk从安装过的文件夹下复制过来,直接拷到Tomcat的根目录下,修改startup.bat。
在set "CURRENT_DIR=%cd%"和if not "%CATALINA_HOME%" == "" goto gotHome之间,加上
set JAVA_HOME=%CURRENT_DIR%/jdk1.6.0_45
if exist "%JAVA_HOME%" goto gogoTomcat
cd ..
set JAVA_HOME=%cd%/jdk1.6.0_45
cd %CURRENT_DIR%
:gogoTomcat
如果事先startup.bat文件没有改过的话应该在line 25,26。此时再启动startup.bat就OK了。
二、非安装版mysql的配置问题
下载地址http://download.mysql.cn/download_file/zip/5.1/mysql-noinstall-5.1.6-alpha-win32.zip,下载下来解压后直接放到E盘根目录下建立mysql文件夹。
1、然后再mysql下面建立my.ini文件,将如下代码复制保存,注意路径。
# set basedir to your installation path
basedir=e:/mysql
# set datadir to the location of your data directory
datadir=e:/mysql/data
# set character set
default-character-set=gbk
# set character collation
default-collation=gbk_chinese_ci
2. 然后再建立一个批处理文件mysql.bat放在mysql根目录下,启动mysql服务,批处理文件代码如下:
@echo off
if not exist data\%computername%.pid goto startsvr
net stop MySQL
bin\mysqld-nt.exe --remove MySQL
:startsvr
echo MySQL服务正在启动.....
bin\mysqld-nt.exe --install MySQL --defaults-file="%cd%\my.ini"
net start MySQL
pause
保存后,点击mysql.bat,数据库服务启动。
3. 此刻需检查mysql是否部署成功。
进入命令行,在mysql->bin下面键入mysql -u root -p,此刻出现Enter password:,点击回车,之后输入show databases;注意此处不要丢失分号。
+---------------------+
| Database |
+---------------------+
| information_schema |
| cluster_replication |
| login |
| mysql |
| test |
+---------------------+
一般在data下都会有mysql 和test两个库。此刻说明数据库安装成功。
4.然后建立自己需要的数据库,可以在命令行,也可以用工具SQLyog建立数据库,和数据表。
三、测试
在eclipse中新建dynamic web project 进行测试,需要引入mysql-connector-java-5.1.18.jar包。随便在WebContent文件夹下,建一个jsp文件,并用jdbs链接mysql,jsp代码如下:
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<html>
<%@ page import=" java.sql.ResultSet"%>
<%@ page import=" java.sql.DriverManager"%>
<%@ page import=" java.sql.Connection"%>
<%@ page import=" java.sql.Statement"%>
<%
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/login"; //login是数据库名称
String user = "root";
String password = "";
Connection conn = null;
// 加载属性文件
// Class.forName加载驱动
Class.forName(driver);
// DriverManager获得连接
conn = DriverManager.getConnection(url,user, password);
if(!conn.isClosed())
{ System.out.println("Succeeded connecting to the Database!");
// statement用来执行SQL语句
Statement statement = conn.createStatement();
// 要执行的SQL语句
String sql = "select * from user where name = 'qcy'";
// 结果集
ResultSet rs = statement.executeQuery(sql);
// 选择sname这列数据
// password = rs.getString("password");
while(rs.next())
{
password = rs.getString("password");
}
System.out.println(password);
rs.close();
}
conn.close();
%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<div>111111111
<input type="text" name="phone" value=<%=password%>></div>
</body>
</html>
然后将WebContent文件拷入事先配置好的tomcat->webapp下。在浏览器输入地址即可。另外需要注意的是要将mysql-connector-java-5.1.18.jar包放入tomcat,lib下,这样才会顺利通过。
以上代码测试通过,如有疑惑,请留言,大家共同探讨,谢谢。