tomcat embedded + sqlite

tomcat5 embed 直接解压就可以用了,5.0.x 用jdk1.4,5.5.x用jkd1.5,不过启动要靠java 程序(它实际上是一些 jar 包),也就是你可以把它导入web项目里,这个web项目就包含了服务器,启动时设置项目的路径就可以了


sqlite 文件很小,就一个(几百K),也需要手动或程序启动


启动tomcat embed 的类如下:
  
  
import org.apache.catalina.Context;
import org.apache.catalina.Engine;
import org.apache.catalina.Host;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.connector.Connector;
import org.apache.catalina.startup.Embedded;
  
public class Run {  
  
    private static Embedded tomcat = null;  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        initEmbedded();  
        initShutdownHook();  
        startTomcat();  
    }  
  
    private static void startTomcat(){  
        try {  
            tomcat.start();  
        } catch (LifecycleException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }  
    private static void initShutdownHook(){  
        Runtime.getRuntime().addShutdownHook(new Thread(){  
            public void run(){  
                try {  
                    tomcat.stop();  
                } catch (LifecycleException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
            }  
        });  
    }  
    private static void initEmbedded() {  
        tomcat = new Embedded();  
        tomcat.setCatalinaHome("D:\\apache-tomcat-5.5.28-embed");  //tomcat embed 路径
          
        Engine engine = tomcat.createEngine();  
        engine.setName("MyEngine");  
  
        Host host = tomcat.createHost("localhost", "D:\\apache-tomcat-5.5.28-embed\\webapps");  // web站点根目录
        Context myContext = tomcat.createContext("/test", "E:\\newworkspace\\Fbote");  //工程目录(要编译好的,我是用eclipse编译好的)
          
        host.addChild(myContext);  
        engine.addChild(host);  
        engine.setDefaultHost("localhost");  
        tomcat.addEngine(engine);  
        Connector connector = tomcat.createConnector("localhost", 8080, false);  //端口
        tomcat.addConnector(connector);  
    }  
  
}  




sqlite 使用很简单,(测试时在windows)下测试:

解压 -> cmd -> cd 所在目录:
sqlite3.exe Mydb.db
create table user(id integer primary key,name varchar(222));
insert into user(1,'elmer');
.schema

(此时就建好了Mydb 数据库和 user 表,并添加了一条数据)
select * from user 

就会出现
1|elmer



jsp 连接时用:
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" language="java" import="java.sql.*"%>
<%
request.setCharacterEncoding("utf-8");
String body = request.getParameter("body");

try {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:/d:/test.db");
Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);

String sql = "INSERT INTO ttable(id, name) VALUES('1', '" + body + "')";
stmt.executeUpdate(sql);

stmt.close();
conn.close();
} catch(Exception e) {
out.println(e.getMessage());
return;
}
%>


如果是用连接池可以在struts-config.xml中陪置如下:
<data-sources>
          <data-source key="org.apache.struts.action.DATA_SOURCE"
           type="org.apache.commons.dbcp.BasicDataSource">
           <set-property property="autoCommit" value="true" />
           <set-property property="description"  value="sqlite Data Source" />
           <set-property property="driverClassName" value="org.sqlite.JDBC" />
           <set-property property="maxCount" value="100" />
           <set-property property="minCount" value="20" />
           <set-property property="maxWait" value="1000" />
           <set-property property="url"
            value="jdbc:sqlite:/D:/sqlite/fbote.db" />
          </data-source>
        </data-sources>





上面为测试通过的,下面是其他一些关于 tomcat embed 的例了,没测试过

另请参考: http://www.iteye.com/topic/8820

private Embedded createTomcat(String path);  
{  
  Embedded tomcat = new Embedded();;  
  
  tomcat.setCatalinaHome(path);;  
  
  Engine engine = tomcat.createEngine();;  
  engine.setName("EspServer");;  
  
  Host host = tomcat.createHost("localhost", tomcat.getCatalinaHome(); + "/webapps");;  
  
  engine.addChild(host);;  
  engine.setDefaultHost(host.getName(););;  
  
  Context ctxtRoot = tomcat.createContext("", host.getAppBase(); + "/ROOT");;  
  ctxtRoot.setPrivileged(true);;  
  
  host.addChild(ctxtRoot);;  
  
  String espPath = ConfigManager.getProperty("ESP_ROOTDIR");;  
  
  if(espPath == null || !new File(espPath);.exists(););  
  {  
    espPath = host.getAppBase(); + "/esp";  
  
    if(!new File(espPath);.exists(););  
    {  
      System.err.println("You should set ESP_ROOTDIR in esp.config.");;  
  
      return null;  
    }  
  }  
  
  Context ctxtEsp = tomcat.createContext("/esp", espPath);;  
  
  host.addChild(ctxtEsp);;  
  
  tomcat.addEngine(engine);;  
  tomcat.setDebug(Logger.WARNING);;  
  
  try  
  {  
    tomcat.addConnector(tomcat.createConnector(  
        InetAddress.getByName("127.0.0.1");, 8080, false););;  
  }  
  catch (UnknownHostException e);  
  {  
    System.err.println("Bind tomcat server to 127.0.0.1:8080 failed.");;  
  
    e.printStackTrace();;  
  
    tomcat = null;  
  }  
  
  return tomcat;  
}  



import java.net.InetAddress;  
  
import org.apache.catalina.Context;  
import org.apache.catalina.Engine;  
import org.apache.catalina.Host;  
import org.apache.catalina.connector.Connector;  
import org.apache.catalina.deploy.ContextResource;  
import org.apache.catalina.deploy.NamingResources;  
import org.apache.catalina.startup.Embedded;  
  
public class EmbededTomcat {  
  
    public static void main(String[] args) throws Exception {  
        Embedded embedded = new Embedded();  
        Engine engine = embedded.createEngine();  
        engine.setDefaultHost("localhost");  
        Host host = embedded.createHost("localhost", "");  
        engine.addChild(host);  
        // Create the ROOT context  
        Context context = embedded  
                .createContext("/test", "D:\\workspace\\mypro\\webapp");  
        /*数据源配置 
        NamingResources name = new NamingResources(); 
        ContextResource resource = new ContextResource(); 
        resource.setName("jdbc/jfw"); 
        resource.setAuth("Container"); 
        resource.setType("javax.sql.DataSource"); 
        resource.setProperty("factory", 
                "org.apache.commons.dbcp.BasicDataSourceFactory"); 
        resource.setProperty("maxActive", "20"); 
        resource.setProperty("maxIdle", "10"); 
        resource.setProperty("maxWait", "100000"); 
        resource.setProperty("username", "epms"); 
        resource.setProperty("password", "nci"); 
        resource.setProperty("driverClassName", 
                "oracle.jdbc.driver.OracleDriver"); 
        resource.setProperty("url", 
                "jdbc:oracle:thin:@10.147.218.162:1521:pmis2"); 
        // resource.setProperty("url", 
        // "jdbc:oracle:thin:@192.168.131.100:1521:epms"); 
 
        name.addResource(resource); 
        // System.out.println(resource.getName()); 
        // System.out.println(resource.getAuth()); 
        // System.out.println(resource.getType()); 
        // System.out.println(resource.getProperty("url")); 
        context.setNamingResources(name); 
         */  
        host.addChild(context);  
        embedded.addEngine(engine);  
        Connector connector = embedded.createConnector((InetAddress) null,  
                8080, false);  
        embedded.addConnector(connector);  
        embedded.start();  
    }  
  
}   

package com.javayou.tomcat.embed;
import java.io.File;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.apache.catalina.Context;
import org.apache.catalina.Engine;
import org.apache.catalina.Host;
import org.apache.catalina.Logger;
import org.apache.catalina.startup.Embedded;
/**
 * @author Liang.xf 2004-12-19
 * 嵌入式Tomcat使用样例
 * www.javayou.com
 */
public class TomcatService {
 public static void main(String[] args) {
  //设置Tomcat的工作目录,并启动Tomcat Server
  String path = "e:\\tomcat-embed";
  Embedded tc = createTomcat(path);
  try {
   tc.start();
   System.out.println("---------- Tomcat Server start over. ------------");
  } catch (Exception e) {
   e.printStackTrace();
  }  
 }
 
 private static Embedded createTomcat(String path) {
     //创建嵌入式Tomcat Server的实例
  Embedded tomcat = new Embedded();
        //设置Tomcat的工作目录
  tomcat.setCatalinaHome(path);
        //产生Tomcat引擎
  Engine engine = tomcat.createEngine();
  engine.setName("JavayouServer");
  //创建Host,设置Host的工作目录
  Host host = tomcat.createHost("localhost", tomcat.getCatalinaHome()
    + "/webapps");
        //把Host加入Engine
  engine.addChild(host);
  engine.setDefaultHost(host.getName());
  
  String javayouPath = host.getAppBase() + "/javayou";
  if (!new File(javayouPath).exists()) {
   System.err.println("请检查Javayou应用的目录以及相关资源是否存在.");
   return null;
  }
  //创建Javayou的Context,并加入Host中
  Context ctxtJavayou = tomcat.createContext("/javayou", javayouPath);
  host.addChild(ctxtJavayou);
  
  tomcat.addEngine(engine);
  tomcat.setDebug(Logger.WARNING);
  try {
      //Tomcat加入Connector,监听本地(127.0.0.1)的访问
   tomcat.addConnector(tomcat.createConnector(InetAddress
     .getByName("127.0.0.1"), 8080, false));
  } catch (UnknownHostException e) {
   System.err.println("绑定Tomcat Server到127.0.0.1:8080失败,
请检查端口是否被占用.");
   e.printStackTrace();
   tomcat = null;
  }
  return tomcat;
 }
}


你可能感兴趣的:(apache,oracle,tomcat,sqlite,SQL Server)