推广普通话的故事,广州seo公司,1688官网网页版,白城学做网站项目场景#xff1a;
Apache James配置连接达梦数据库#xff0c;其他配置中不存在的数据库也可参考此方案。 配置步骤
1、把需要的jar包导入到James
把DmJdbcDriver18.jar复制到下面lib目录下
james-2.3.2\lib 2、 修改连接配置
james-2.3.2\apps\james\SAR-INF\confi…项目场景
Apache James配置连接达梦数据库其他配置中不存在的数据库也可参考此方案。 配置步骤
1、把需要的jar包导入到James
把DmJdbcDriver18.jar复制到下面lib目录下
james-2.3.2\lib 2、 修改连接配置
james-2.3.2\apps\james\SAR-INF\config.xml
users-storerepository nameLocalUsers classorg.apache.james.userrepository.JamesUsersJdbcRepository destinationURLdb://maildb/mail_userssqlFilefile://conf/sqlResources.xml/sqlFile/repository
/users-storedatabase-connectionsdata-source namemaildb classorg.apache.james.util.dbcp.JdbcDataSourcedriverdm.jdbc.driver.DmDriver/driverdburljdbc:dm://172.0.0.1:5236/test/dburlusertest/userpasswordtest_200/passwordmax50/max/data-source
/database-connections
3、 修改sql语句
james-2.3.2\apps\james\conf\sqlResources.xml
!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
--
!--Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --
!-- SQL Statements used by James for database access. --
sqlResources!--This section provided configuration to determine the determine thedatabase product which is being used for storage. Different databaseproducts may require different SQL syntax.The jdbc database connection is examined to see if it matches with theregular expressions specified in any of the defined matchers. The matchersare processed in the over provided here, with the first successful matchdefining the db value for this connection.This value is then used to choose between different definitions for variousnamed sql statements, defined below. If no match is found,the default sql statements are used.
--
dbMatchersdbMatcher dbmssql databaseProductNamemicrosoft sql server/dbMatcher dboracle databaseProductNameoracle.*/dbMatcher dbdm databaseProductNamedm.*/dbMatcher dbmysql databaseProductNamemy.*/dbMatcher dbderby databaseProductNamederby.*/dbMatcher dbpostgresql databaseProductNamepostgres.*/dbMatcher dbhsqldb databaseProductNamehsql.*/dbMatcher dbsapdb databaseProductNamesap.*/dbMatcher dbhypersonic databaseProductNameHypersonicSQL/dbMatcher dbdb2 databaseProductNamedb2.*/dbMatcher dbingres databaseProductNameingres.*/
/dbMatchers!--With the following section it is possible to associate several name/value pairsof options to a database product, identified by the db XML attribute name.An element without a db attribute, if used for an option name, will become a default value for such option.Each option may have a default default, i.e. a default that applies if no element with an emptydb attribute (default element) exists as said above;such default default must be documented for such option below.The order of the XML elements is meaningless.Here only getBody and getAttributes option names are set, but others could be used in the future.Option names:getBody - a string (case insensitive) telling which JDBC ResultSet method will be used toget the message body field for a database product.The default default value is useBytes..Values (case insensitive):useBytes - use getBytes(int).useBlob - use getBlob(int).getAttributes - a string (case insensitive) telling which JDBC ResultSet method will be used toget the message attributes field for a database product.The default default value is useBytes..Values (case insensitive):useBytes - use getBytes(int).useBlob - use getBlob(int).
--
dbOptionsdbOption namegetBody valueuseBytes/dbOption namegetAttributes valueuseBytes/dbOption dbmssql namegetBody valueuseBytes/dbOption dbmssql namegetAttributes valueuseBytes/dbOption dboracle namegetBody valueuseBlob/dbOption dboracle namegetAttributes valueuseBlob/dbOption dbdm namegetBody valueuseBlob/dbOption dbdm namegetAttributes valueuseBlob/dbOption dbmysql namegetBody valueuseBytes/dbOption dbmysql namegetAttributes valueuseBytes/dbOption dbderby namegetBody valueuseBytes/dbOption dbderby namegetAttributes valueuseBytes/dbOption dbpostgresql namegetBody valueuseBytes/dbOption dbpostgresql namegetAttributes valueuseBytes/dbOption dbsapdb namegetBody valueuseBytes/dbOption dbsapdb namegetAttributes valueuseBytes/dbOption dbhypersonic namegetBody valueuseBytes/dbOption dbhypersonic namegetAttributes valueuseBytes/dbOption dbhsqldb namegetBody valueuseBytes/dbOption dbhsqldb namegetAttributes valueuseBytes/dbOption dbdb2 namegetBody valueuseBlob/dbOption dbdb2 namegetAttributes valueuseBlob/dbOption dbingres namegetBody valueuseBytes/dbOption dbingres namegetAttributes valueuseBytes/
/dbOptions!-- SQL statements to use for various components. --
!-- --
!-- Parameter definitions ${param} are replaced with parameter values --
!-- read from the configuration file. --
!-- --
!-- If a named statement has a definition defined for the current database product, --
!-- then that statement is used. Otherwise the default statement is used. --!-- SQL statements for the JamesUsersJdbcRepository --
!-- --
!-- The JamesUsersJdbcRepository allows James to use a JDBC compliant database --
!-- to hold user related data. This includes aliases, forward addresses, --
!-- and password data. The last is stored as an irreversible hash. --
sqlDefs nameorg.apache.james.userrepository.JamesUsersJdbcRepositorysql nametableName${table}/sql!-- Statements used to retrieve all user information for a user from this repository. --sql nameselectSELECT username, pwdHash, pwdAlgorithm, useForwarding,forwardDestination, useAlias, aliasFROM ${table}ORDER BY username/sql!-- Statements used to get all user information for a user with a particular user name in a --!-- case-insensitive fashion from this repository. --sql nameselectByLowercaseNameSELECT username, pwdHash, pwdAlgorithm, useForwarding,forwardDestination, useAlias, aliasFROM ${table}WHERE lower(username) ?/sqlsql nameselectByLowercaseName dbmysqlSELECT username, pwdHash, pwdAlgorithm, useForwarding,forwardDestination, useAlias, aliasFROM ${table}WHERE username ?/sql!-- Statements used to insert a user into this repository. --sql nameinsertINSERT INTO ${table}(username, pwdHash, pwdAlgorithm, useForwarding, forwardDestination, useAlias, alias)VALUES (?,?,?,?,?,?,?)/sql!-- Statements used to update information for a user from this repository. --sql nameupdateUPDATE ${table} SETpwdHash ?, pwdAlgorithm ?, useForwarding ?, forwardDestination ?, useAlias ?, alias ?WHERE username ?/sql!-- Statements used to delete a user from this repository. --sql namedeleteDELETE FROM ${table} WHERE username ?/sql!-- Statements used to create the table associated with this class. --sql namecreateTable dbhypersonicCREATE CACHED TABLE ${table} (username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), useForwarding INTEGER, forwardDestination VARCHAR(255), useAlias INTEGER, alias VARCHAR(255), PRIMARY KEY(username))/sql!-- sql namecreateTableCREATE TABLE ${table} (username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), useForwarding SMALLINT, forwardDestination VARCHAR(255), useAlias SMALLINT, alias VARCHAR(255), PRIMARY KEY(username))/sql --sql namecreateTableselect 1 from dual/sql!-- An example of a database-specific sql statementsql namecreateTable dbmssqlCREATE TABLE ${table} (uniqueId UNIQUEIDENTIFIER, username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), useForwarding SMALLINT, forwardDestination VARCHAR(255), useAlias SMALLINT, alias VARCHAR(255), PRIMARY KEY(username))/sql--
/sqlDefs!-- SQL statements for the DefaultUsersJdbcRepository --
!-- --
!-- The DefaultUsersJdbcRepository allows James to use a JDBC compliant database --
!-- to hold user ids and password data. The password is stored as an irreversible hash. --
!-- Unlike the JamesUsersJdbcRepository, this repository implementation doesnt support --
!-- aliases or forwards. --
sqlDefs nameorg.apache.james.userrepository.DefaultUsersJdbcRepositorysql nametableName${table}/sql!-- Statements used to retrieve all user information for a user from this repository. --sql nameselectSELECT username, pwdHash, pwdAlgorithmFROM ${table}/sql!-- Statements used to insert a user into this repository. --sql nameinsertINSERT INTO ${table}(username, pwdHash, pwdAlgorithm)VALUES (?,?,?)/sql!-- Statements used to update information for a user from this repository. --sql nameupdateUPDATE ${table} SETpwdHash ?, pwdAlgorithm ?WHERE username ?/sql!-- Statements used to delete a user from this repository. --sql namedeleteDELETE FROM ${table} WHERE username ?/sql!-- Statements used to create the table associated with this class. --sql namecreateTable dbhypersonicCREATE CACHED TABLE ${table} (username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), PRIMARY KEY(username))/sqlsql namecreateTableCREATE TABLE ${table} (username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), PRIMARY KEY(username))/sql
/sqlDefs!-- SQL statements for the ListUsersJdbcRepository --
!-- --
!-- This class is used for basic list management. The database table can --
!-- be used to store subscriber data for mulitple lists. --
sqlDefs nameorg.apache.james.userrepository.ListUsersJdbcRepository!-- An example of defining default parameters within the definition file.This is used if no key parameter is specified in config. --parameters keyunknownList/sql nametableName${table}/sql!-- Statements used to retrieve all users on a particular list from this repository. --sql nameselectSELECT listSubscriberFROM ${table}WHERE listName ${key}/sql!-- Statements used to insert a user/list mapping into this repository. --sql nameinsertINSERT INTO ${table}(listSubscriber, listName)VALUES (?, ${key})/sql!-- Statements used to update a user/list mapping in this repository. --sql nameupdateUPDATE ${table} SETlistSubscriber ?WHERE listSubscriber ? AND listName ${key}/sql!-- Statements used to delete a user/list mapping from this repository. --sql namedeleteDELETE FROM ${table}WHERE listSubscriber ? AND listName ${key}/sql!-- Statements used to create the table associated with this class. --sql namecreateTable dbhypersonicCREATE CACHED TABLE ${table} (listName VARCHAR(64) NOT NULL, listSubscriber VARCHAR(255) NOT NULL, PRIMARY KEY(listName, listSubscriber))/sqlsql namecreateTableCREATE TABLE ${table} (listName VARCHAR(64) NOT NULL, listSubscriber VARCHAR(255) NOT NULL, PRIMARY KEY(listName, listSubscriber))/sql
/sqlDefs!-- SQL statements for the JdbcMailRepository --
sqlDefs nameorg.apache.james.mailrepository.JDBCMailRepository!-- Statements used to check whether a particular message exists in this repository. --sql namecheckMessageExistsSQLSELECT count(*) FROM ${table} WHERE message_name ? AND repository_name ?/sql!-- Statements used to update a message stored in this repository. --sql nameupdateMessageSQLUPDATE ${table} SET message_state ?, error_message ?, sender ?, recipients ?, remote_host ?, remote_addr ?, last_updated ? WHERE message_name ? AND repository_name ?/sql!-- Statements used to update the body of a message stored in this repository. --sql nameupdateMessageBodySQLUPDATE ${table} SET message_body ? WHERE message_name ? AND repository_name ?/sql!-- Statements used to update the attributes of a message stored in this repository. --sql nameupdateMessageAttributesSQLUPDATE ${table} SET message_attributes ? WHERE message_name ? AND repository_name ?/sql!-- Statements used to insert a message into this repository. --sql nameinsertMessageSQLINSERT INTO ${table} (message_name,repository_name, message_state, error_message, sender, recipients,remote_host, remote_addr, last_updated, message_body,message_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)/sql!-- Statements used to retrieve a message stored in this repository. --sql nameretrieveMessageSQLSELECT message_state, error_message, sender, recipients, remote_host, remote_addr, last_updated FROM ${table} WHERE message_name ? AND repository_name ?/sql!-- Statements used to retrieve the body of a message stored in this repository. --sql nameretrieveMessageBodySQLSELECT message_body FROM ${table} WHERE message_name ? AND repository_name ?/sql!-- Statements used to retrieve the attributes of a message stored in this repository. --sql nameretrieveMessageAttributesSQLSELECT message_attributes FROM ${table} WHERE message_name ? AND repository_name ?/sql!-- Statements used to retrieve the size of the body of a message stored in this repository. --!-- NOTE: This statement is optional and need not be implemented for a particular database to be supported. --sql nameretrieveMessageBodySizeSQL dbmssqlSELECT datalength(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbmysqlSELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbhypersonicSELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbhsqldbSELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbpostgresqlSELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dboracleSELECT dbms_lob.getlength(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbdmSELECT dbms_lob.getlength(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbdb2SELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbingresSELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbderbySELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sql!-- Statements used to delete a message stored in this repository. --sql nameremoveMessageSQLDELETE FROM ${table} WHERE message_name ? AND repository_name ?/sql!-- Statements used to list all messages stored in this repository. --sql namelistMessagesSQLSELECT message_name, message_state, last_updated FROM ${table} WHERE repository_name ? ORDER BY last_updated ASC/sql!-- Statements used to create the table associated with this class. --sql namecreateTable dbmysqlCREATE TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (100) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) NULL ,sender varchar (255) NULL ,recipients text NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body longblob NOT NULL ,message_attributes longblob NULL ,last_updated datetime NOT NULL,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbhypersonicCREATE CACHED TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (255) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) NULL ,sender varchar (255) NULL ,recipients varchar NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body varchar NOT NULL ,message_attributes varchar NULL ,last_updated timestamp NOT NULL,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbhsqldbCREATE CACHED TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (255) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) NULL ,sender varchar (255) NULL ,recipients varchar NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body varchar NOT NULL ,message_attributes varchar NULL ,last_updated timestamp NOT NULL,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbmssqlCREATE TABLE [${table}] ([message_name] [varchar] (200) NOT NULL,[repository_name] [varchar] (255) NOT NULL,[message_state] [varchar] (30) NOT NULL ,[error_message] [varchar] (1000) NULL ,[sender] [varchar] (255) NULL ,[recipients] [text] NOT NULL ,[remote_host] [varchar] (255) NOT NULL ,[remote_addr] [varchar] (20) NOT NULL ,[message_body] [image] NOT NULL ,[message_attributes] [image] NULL ,[last_updated] [datetime] NOT NULL,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dboracleCREATE TABLE ${table} (message_name varchar2(200) NOT NULL ,repository_name varchar2(255) NOT NULL ,message_state varchar2(30) NOT NULL ,error_message varchar2(200) NULL ,sender varchar2(255) ,recipients varchar2(1000) NOT NULL ,remote_host varchar2(100) NOT NULL ,remote_addr varchar2(20) NOT NULL ,message_body blob NOT NULL ,message_attributes blob NULL ,last_updated date NOT NULL ,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbdmCREATE TABLE ${table} (message_name varchar2(200) NOT NULL ,repository_name varchar2(255) NOT NULL ,message_state varchar2(30) NOT NULL ,error_message varchar2(200) NULL ,sender varchar2(255) ,recipients varchar2(1000) NOT NULL ,remote_host varchar2(100) NOT NULL ,remote_addr varchar2(20) NOT NULL ,message_body blob NOT NULL ,message_attributes blob NULL ,last_updated date NOT NULL ,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbpostgresqlCREATE TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (255) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) NULL ,sender varchar (255) NULL ,recipients text NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body bytea NOT NULL ,message_attributes bytea NULL ,last_updated timestamp NOT NULL,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbsapdbCREATE TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (200) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) NULL ,sender varchar (200) NULL ,recipients long NOT NULL ,remote_host varchar (100) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body long byte NOT NULL ,message_attributes long byte NULL ,last_updated date NOT NULL,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbdb2CREATE TABLE ${table} (message_name varchar(200) NOT NULL ,repository_name varchar(255) NOT NULL ,message_state varchar(30) NOT NULL ,error_message varchar(200) ,sender varchar(255) ,recipients varchar(1000) NOT NULL ,remote_host varchar(100) NOT NULL ,remote_addr varchar(20) NOT NULL ,message_body blob NOT NULL ,message_attributes blob ,last_updated timestamp NOT NULL ,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbingresCREATE TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (255) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) ,sender varchar (255) ,recipients LONG VARCHAR NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body LONG BYTE NOT NULL ,message_attributes LONG BYTE ,last_updated DATE NOT NULL)/sqlsql namecreateTable dbderbyCREATE TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (255) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) ,sender varchar (255) ,recipients long varchar NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body blob NOT NULL ,message_attributes blob ,last_updated timestamp NOT NULL,PRIMARY KEY (repository_name, message_name))/sql
/sqlDefs!-- SQL statements to support the JDBCSpoolRepository class --
!-- --
!-- The JDBCSpoolRepository allows James to use a JDBC compliant database --
!-- to hold messages that are on the spool. --
sqlDefs nameorg.apache.james.mailrepository.JDBCSpoolRepository!-- Statements used to check whether a particular message exists in this repository. --sql namecheckMessageExistsSQLSELECT count(*) FROM ${table} WHERE message_name ? AND repository_name ?/sql!-- Statements used to update a message stored in this repository. --sql nameupdateMessageSQLUPDATE ${table} SET message_state ?, error_message ?, sender ?, recipients ?, remote_host ?, remote_addr ?, last_updated ? WHERE message_name ? AND repository_name ?/sql!-- Statements used to update the body of a message stored in this repository. --sql nameupdateMessageBodySQLUPDATE ${table} SET message_body ? WHERE message_name ? AND repository_name ?/sql!-- Statements used to update the attributes of a message stored in this repository. --sql nameupdateMessageAttributesSQLUPDATE ${table} SET message_attributes ? WHERE message_name ? AND repository_name ?/sql!-- Statements used to insert a message into this repository. --sql nameinsertMessageSQLINSERT INTO ${table} (message_name,repository_name, message_state, error_message, sender, recipients,remote_host, remote_addr, last_updated, message_body,message_attributes) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)/sql!-- Statements used to retrieve a message stored in this repository. --sql nameretrieveMessageSQLSELECT message_state, error_message, sender, recipients, remote_host, remote_addr, last_updated FROM ${table} WHERE message_name ? AND repository_name ?/sql!-- Statements used to retrieve the body of a message stored in this repository. --sql nameretrieveMessageBodySQLSELECT message_body FROM ${table} WHERE message_name ? AND repository_name ?/sql!-- Statements used to retrieve the attributes of a message stored in this repository. --sql nameretrieveMessageAttributesSQLSELECT message_attributes FROM ${table} WHERE message_name ? AND repository_name ?/sql!-- Statements used to retrieve the size of the body of a message stored in this repository. --!-- NOTE: This statement is optional and need not be implemented for a particular database to be supported. --sql nameretrieveMessageBodySizeSQL dbmssqlSELECT datalength(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbmysqlSELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbhypersonicSELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbhsqldbSELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbpostgresqlSELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dboracleSELECT dbms_lob.getlength(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbdmSELECT dbms_lob.getlength(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbdb2SELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sqlsql nameretrieveMessageBodySizeSQL dbingresSELECT length(message_body) FROM ${table} WHERE message_name ? AND repository_name ?/sql!-- Statements used to delete a message stored in this repository. --sql nameremoveMessageSQLDELETE FROM ${table} WHERE message_name ? AND repository_name ?/sql!-- Statements used to list all messages stored in this repository. --sql namelistMessagesSQLSELECT message_name, message_state, last_updated, error_message FROM ${table} WHERE repository_name ? ORDER BY last_updated ASC/sql!-- Statements used to create the table associated with this class. --sql namecreateTable dbhypersonicCREATE TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (255) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) NULL ,sender varchar (255) NULL ,recipients varchar NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body varchar NOT NULL ,message_attributes varchar NULL ,last_updated timestamp NOT NULL,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbhsqldbCREATE CACHED TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (255) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) NULL ,sender varchar (255) NULL ,recipients varchar NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body varchar NOT NULL ,message_attributes varchar NULL ,last_updated timestamp NOT NULL,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbmysqlCREATE TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (100) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) NULL ,sender varchar (255) NULL ,recipients text NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body longblob NOT NULL ,message_attributes longblob NULL ,last_updated datetime NOT NULL,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbmssqlCREATE TABLE [${table}] ([message_name] [varchar] (200) NOT NULL,[repository_name] [varchar] (255) NOT NULL,[message_state] [varchar] (30) NOT NULL ,[error_message] [varchar] (1000) NULL ,[sender] [varchar] (255) NULL ,[recipients] [text] NOT NULL ,[remote_host] [varchar] (255) NOT NULL ,[remote_addr] [varchar] (20) NOT NULL ,[message_body] [image] NOT NULL ,[message_attributes] [image] NULL ,[last_updated] [datetime] NOT NULL,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dboracleCREATE TABLE ${table} (message_name varchar2(200) NOT NULL ,repository_name varchar2(255) NOT NULL ,message_state varchar2(30) NOT NULL ,error_message varchar2(200) NULL ,sender varchar2(255) NULL ,recipients varchar2(1000) NOT NULL ,remote_host varchar2(255) NOT NULL ,remote_addr varchar2(20) NOT NULL ,message_body blob NOT NULL ,message_attributes blob NULL ,last_updated date NOT NULL ,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbdmCREATE TABLE ${table} (message_name varchar2(200) NOT NULL ,repository_name varchar2(255) NOT NULL ,message_state varchar2(30) NOT NULL ,error_message varchar2(200) NULL ,sender varchar2(255) NULL ,recipients varchar2(1000) NOT NULL ,remote_host varchar2(255) NOT NULL ,remote_addr varchar2(20) NOT NULL ,message_body blob NOT NULL ,message_attributes blob NULL ,last_updated date NOT NULL ,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbpostgresqlCREATE TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (255) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) NULL ,sender varchar (255) NULL ,recipients text NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body bytea NOT NULL ,message_attributes bytea NULL ,last_updated timestamp NOT NULL,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbsapdbCREATE TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (255) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) NULL ,sender varchar (255) NULL ,recipients long NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body long byte NOT NULL ,message_attributes long byte NULL ,last_updated date NOT NULL,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbdb2CREATE TABLE ${table} (message_name varchar(200) NOT NULL ,repository_name varchar(255) NOT NULL ,message_state varchar(30) NOT NULL ,error_message varchar(200) ,sender varchar(255) ,recipients varchar(1000) NOT NULL ,remote_host varchar(100) NOT NULL ,remote_addr varchar(20) NOT NULL ,message_body blob NOT NULL ,message_attributes blob ,last_updated timestamp NOT NULL ,PRIMARY KEY (repository_name, message_name))/sqlsql namecreateTable dbingresCREATE TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (255) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) ,sender varchar (255) ,recipients LONG VARCHAR NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body LONG BYTE NOT NULL ,message_attributes LONG BYTE ,last_updated DATE NOT NULL)/sqlsql namecreateTable dbderbyCREATE TABLE ${table} (message_name varchar (200) NOT NULL,repository_name varchar (255) NOT NULL,message_state varchar (30) NOT NULL ,error_message varchar (200) ,sender varchar (255) ,recipients long varchar NOT NULL ,remote_host varchar (255) NOT NULL ,remote_addr varchar (20) NOT NULL ,message_body blob NOT NULL ,message_attributes blob ,last_updated timestamp NOT NULL,PRIMARY KEY (repository_name, message_name))/sql
/sqlDefs!-- SQL statements to support the BayesianAnalysis and the BayesianAnalysisFeeder mailets --
!-- --
sqlDefs nameorg.apache.james.util.JDBCBayesianAnalyzersql namehamTableNamebayesiananalysis_ham/sqlsql namespamTableNamebayesiananalysis_spam/sqlsql namemessageCountsTableNamebayesiananalysis_messagecounts/sql!-- Statements used to retrieve the message counts. --sql nameselectMessageCountsSELECT HAMCOUNT, SPAMCOUNT FROM bayesiananalysis_messagecounts/sql!-- Statements used to initialize the message counts. --sql nameinitializeMessageCountsINSERT INTO bayesiananalysis_messagecounts (HAMCOUNT, SPAMCOUNT) VALUES (0,0)/sql!-- Statements used to update the ham message counts. --sql nameupdateHamMessageCountsUPDATE bayesiananalysis_messagecounts SET HAMCOUNT(HAMCOUNT ?)/sql!-- Statements used to update the spam message counts. --sql nameupdateSpamMessageCountsUPDATE bayesiananalysis_messagecounts SET SPAMCOUNT(SPAMCOUNT ?)/sql!-- Statements used to retrieve the ham token counts. --sql nameselectHamTokensSELECT TOKEN, OCCURRENCES FROM bayesiananalysis_ham/sql!-- Statements used to retrieve the spam token counts. --sql nameselectSpamTokensSELECT TOKEN, OCCURRENCES FROM bayesiananalysis_spam/sql!-- Statements used to insert the ham token counts. --sql nameinsertHamTokenINSERT INTO bayesiananalysis_ham (TOKEN, OCCURRENCES) VALUES (?,?)/sql!-- Statements used to insert the spam token counts. --sql nameinsertSpamTokenINSERT INTO bayesiananalysis_spam (TOKEN, OCCURRENCES) VALUES (?,?)/sql!-- Statements used to update the ham token counts. --sql nameupdateHamTokenUPDATE bayesiananalysis_ham SET OCCURRENCES(OCCURRENCES ?) WHERE (TOKEN?)/sql!-- Statements used to update the spam token counts. --sql nameupdateSpamTokenUPDATE bayesiananalysis_spam SET OCCURRENCES(OCCURRENCES ?) WHERE (TOKEN?)/sql!-- Statements used to delete ham tokens. --sql namedeleteHamTokensDELETE FROM bayesiananalysis_ham/sql!-- Statements used to delete spam tokens. --sql namedeleteSpamTokensDELETE FROM bayesiananalysis_spam/sql!-- Statements used to delete message counts. --sql namedeleteMessageCountsDELETE FROM bayesiananalysis_messagecounts/sql!-- Statements used to create the ham table (the token field must be case sensitive). --sql namecreateHamTable dbmysqlCREATE TABLE bayesiananalysis_ham (token varchar(128) binary NOT NULL default ,occurrences int(11) NOT NULL default 0,PRIMARY KEY (token)) TYPEInnoDB/sqlsql namecreateHamTable dbmssqlCREATE TABLE [bayesiananalysis_ham] ([token] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL,[occurrences] [int] NOT NULL default (0),PRIMARY KEY (token))/sqlsql namecreateHamTable dbderbyCREATE TABLE bayesiananalysis_ham (token varchar(128) NOT NULL,occurrences INTEGER NOT NULL default 0,PRIMARY KEY (token))/sqlsql namecreateHamTable dbpostgresqlCREATE TABLE bayesiananalysis_ham (token varchar(128) NOT NULL,occurrences int NOT NULL default 0,PRIMARY KEY (token))/sql!-- Statements used to create the spam table (the token field must be case sensitive). --sql namecreateSpamTable dbmysqlCREATE TABLE bayesiananalysis_spam (token varchar(128) binary NOT NULL default ,occurrences int(11) NOT NULL default 0,PRIMARY KEY (token)) TYPEInnoDB/sqlsql namecreateSpamTable dbmssqlCREATE TABLE [bayesiananalysis_spam] ([token] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL,[occurrences] [int] NOT NULL default (0),PRIMARY KEY (token))/sqlsql namecreateSpamTable dbderbyCREATE TABLE bayesiananalysis_spam (token varchar (128) NOT NULL,occurrences INTEGER NOT NULL default 0,PRIMARY KEY (token))/sqlsql namecreateSpamTable dbpostgresqlCREATE TABLE bayesiananalysis_spam (token varchar (128) NOT NULL,occurrences int NOT NULL default 0,PRIMARY KEY (token))/sql!-- Statements used to create the message counts table. --sql namecreateMessageCountsTable dbmysqlCREATE TABLE bayesiananalysis_messagecounts (hamcount int(11) NOT NULL default 0,spamcount int(11) NOT NULL default 0) TYPEInnoDB/sqlsql namecreateMessageCountsTable dbmssqlCREATE TABLE [bayesiananalysis_messagecounts] ([hamcount] [int] NOT NULL default (0),[spamcount] [int] NOT NULL default (0))/sqlsql namecreateMessageCountsTable dbderbyCREATE TABLE bayesiananalysis_messagecounts (hamcount INTEGER NOT NULL default 0,spamcount INTEGER NOT NULL default 0)/sqlsql namecreateMessageCountsTable dbpostgresqlCREATE TABLE bayesiananalysis_messagecounts (hamcount int NOT NULL default 0,spamcount int NOT NULL default 0)/sql
/sqlDefs!-- SQL statements to support the WhiteListManager mailet and the IsInWhiteList matcher --
!-- --
sqlDefs nameWhiteListsql namewhiteListTableNamewhitelist/sql!-- Statements used to retrieve a single entry. --sql nameselectByPKSELECT localUser, localHost FROM whitelist where (localUser? AND localHost? AND remoteUser? AND remoteHost?)/sql!-- Statements used to all entries by sender address. --sql nameselectBySenderSELECT remoteUser, remoteHost FROM whitelist where (localUser? AND localHost?) ORDER BY remoteUser, remoteHost/sql!-- Statements used to insert an entry. --sql nameinsertINSERT INTO whitelist (localUser, localHost, remoteUser, remoteHost) VALUES (?,?,?,?)/sql!-- Statements used to delete an entry. --sql namedeleteByPKDELETE FROM whitelist where (localUser? AND localHost? AND remoteUser? AND remoteHost?)/sql!-- Statements used to create the whitelist table. --sql namecreateWhiteListTable dbhypersonicCREATE TABLE whitelist (localUser varchar (64) NOT NULL,localHost varchar (255) NOT NULL,remoteUser varchar (64) NOT NULL,remoteHost varchar (255) NOT NULL,PRIMARY KEY (localUser, localHost, remoteUser, remoteHost)) /sqlsql namecreateWhiteListTable dbhsqldbCREATE CACHED TABLE ${table} (CREATE TABLE whitelist (localUser varchar (64) NOT NULL,localHost varchar (255) NOT NULL,remoteUser varchar (64) NOT NULL,remoteHost varchar (255) NOT NULL,PRIMARY KEY (localUser, localHost, remoteUser, remoteHost)) /sqlsql namecreateWhiteListTable dbmysqlCREATE TABLE whitelist (localUser varchar (64) NOT NULL,localHost varchar (255) character set latin1 NOT NULL,remoteUser varchar (64) NOT NULL,remoteHost varchar (255) character set latin1 NOT NULL,PRIMARY KEY (localUser, localHost, remoteUser, remoteHost)) TYPEInnoDB/sqlsql namecreateWhiteListTable dbmssqlCREATE TABLE [whitelist] ([localUser] [varchar] (64) NOT NULL,[localHost] [varchar] (255) NOT NULL,[remoteUser] [varchar] (64) NOT NULL,[remoteHost] [varchar] (255) NOT NULL,PRIMARY KEY (localUser, localHost, remoteUser, remoteHost))/sqlsql namecreateWhiteListTable dboracleCREATE TABLE whitelist (localUser varchar (64) NOT NULL,localHost varchar (255) NOT NULL,remoteUser varchar (64) NOT NULL,remoteHost varchar (255) NOT NULL,PRIMARY KEY (localUser, localHost, remoteUser, remoteHost))/sqlsql namecreateWhiteListTable dbdmCREATE TABLE whitelist (localUser varchar (64) NOT NULL,localHost varchar (255) NOT NULL,remoteUser varchar (64) NOT NULL,remoteHost varchar (255) NOT NULL,PRIMARY KEY (localUser, localHost, remoteUser, remoteHost))/sqlsql namecreateWhiteListTable dbpostgresqlCREATE TABLE whitelist (localUser varchar (64) NOT NULL,localHost varchar (255) NOT NULL,remoteUser varchar (64) NOT NULL,remoteHost varchar (255) NOT NULL,PRIMARY KEY (localUser, localHost, remoteUser, remoteHost))/sqlsql namecreateWhiteListTable dbsapdbCREATE TABLE whitelist (localUser varchar (64) NOT NULL,localHost varchar (255) NOT NULL,remoteUser varchar (64) NOT NULL,remoteHost varchar (255) NOT NULL,PRIMARY KEY (localUser, localHost, remoteUser, remoteHost))/sqlsql namecreateWhiteListTable dbdb2CREATE TABLE whitelist (localUser varchar (64) NOT NULL,localHost varchar (255) NOT NULL,remoteUser varchar (64) NOT NULL,remoteHost varchar (255) NOT NULL,PRIMARY KEY (localUser, localHost, remoteUser, remoteHost))/sqlsql namecreateWhiteListTable dbingresCREATE TABLE whitelist (localUser varchar (64) NOT NULL,localHost varchar (255) NOT NULL,remoteUser varchar (64) NOT NULL,remoteHost varchar (255) NOT NULL,PRIMARY KEY (localUser, localHost, remoteUser, remoteHost))/sqlsql namecreateWhiteListTable dbderbyCREATE TABLE whitelist (localUser varchar (64) NOT NULL,localHost varchar (255) NOT NULL,remoteUser varchar (64) NOT NULL,remoteHost varchar (255) NOT NULL,PRIMARY KEY (localUser, localHost, remoteUser, remoteHost))/sql/sqlDefs/sqlResources 关键字dm其实就是复制一下oracle的sql然后有特殊语句就自己修改一下 启动报错
如果启动报错可以在james-2.3.2\apps\james\logs查看日志