当前位置: 首页 > news >正文

Apache James配置连接达梦数据库

项目场景:

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-store><repository name="LocalUsers" class="org.apache.james.userrepository.JamesUsersJdbcRepository" destinationURL="db://maildb/mail_users"><sqlFile>file://conf/sqlResources.xml</sqlFile></repository>
</users-store><database-connections><data-source name="maildb" class="org.apache.james.util.dbcp.JdbcDataSource"><driver>dm.jdbc.driver.DmDriver</driver><dburl>jdbc:dm://172.0.0.1:5236/test</dburl><user>test</user><password>test_200</password><max>50</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.
-->
<dbMatchers><dbMatcher db="mssql" databaseProductName="microsoft sql server"/><dbMatcher db="oracle" databaseProductName="oracle.*"/><dbMatcher db="dm" databaseProductName="dm.*"/><dbMatcher db="mysql" databaseProductName="my.*"/><dbMatcher db="derby" databaseProductName="derby.*"/><dbMatcher db="postgresql" databaseProductName="postgres.*"/><dbMatcher db="hsqldb" databaseProductName="hsql.*"/><dbMatcher db="sapdb" databaseProductName="sap.*"/><dbMatcher db="hypersonic" databaseProductName="HypersonicSQL"/><dbMatcher db="db2" databaseProductName="db2.*"/><dbMatcher db="ingres" databaseProductName="ingres.*"/>
</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 empty"db" 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).
-->
<dbOptions><dbOption name="getBody" value="useBytes"/><dbOption name="getAttributes" value="useBytes"/><dbOption db="mssql" name="getBody" value="useBytes"/><dbOption db="mssql" name="getAttributes" value="useBytes"/><dbOption db="oracle" name="getBody" value="useBlob"/><dbOption db="oracle" name="getAttributes" value="useBlob"/><dbOption db="dm" name="getBody" value="useBlob"/><dbOption db="dm" name="getAttributes" value="useBlob"/><dbOption db="mysql" name="getBody" value="useBytes"/><dbOption db="mysql" name="getAttributes" value="useBytes"/><dbOption db="derby" name="getBody" value="useBytes"/><dbOption db="derby" name="getAttributes" value="useBytes"/><dbOption db="postgresql" name="getBody" value="useBytes"/><dbOption db="postgresql" name="getAttributes" value="useBytes"/><dbOption db="sapdb" name="getBody" value="useBytes"/><dbOption db="sapdb" name="getAttributes" value="useBytes"/><dbOption db="hypersonic" name="getBody" value="useBytes"/><dbOption db="hypersonic" name="getAttributes" value="useBytes"/><dbOption db="hsqldb" name="getBody" value="useBytes"/><dbOption db="hsqldb" name="getAttributes" value="useBytes"/><dbOption db="db2" name="getBody" value="useBlob"/><dbOption db="db2" name="getAttributes" value="useBlob"/><dbOption db="ingres" name="getBody" value="useBytes"/><dbOption db="ingres" name="getAttributes" value="useBytes"/>
</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 name="org.apache.james.userrepository.JamesUsersJdbcRepository"><sql name="tableName">${table}</sql><!-- Statements used to retrieve all user information for a user from this repository. --><sql name="select">SELECT 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 name="selectByLowercaseName">SELECT username, pwdHash, pwdAlgorithm, useForwarding,forwardDestination, useAlias, aliasFROM ${table}WHERE lower(username) = ?</sql><sql name="selectByLowercaseName" db="mysql">SELECT username, pwdHash, pwdAlgorithm, useForwarding,forwardDestination, useAlias, aliasFROM ${table}WHERE username = ?</sql><!-- Statements used to insert a user into this repository. --><sql name="insert">INSERT INTO ${table}(username, pwdHash, pwdAlgorithm, useForwarding, forwardDestination, useAlias, alias)VALUES (?,?,?,?,?,?,?)</sql><!-- Statements used to update information for a user from this repository. --><sql name="update">UPDATE ${table} SETpwdHash = ?, pwdAlgorithm = ?, useForwarding = ?, forwardDestination = ?, useAlias = ?, alias = ?WHERE username = ?</sql><!-- Statements used to delete a user from this repository. --><sql name="delete">DELETE FROM ${table} WHERE username = ?</sql><!-- Statements used to create the table associated with this class. --><sql name="createTable" db="hypersonic">CREATE 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 name="createTable">CREATE 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 name="createTable">select 1 from dual</sql><!-- An example of a database-specific sql statement<sql name="createTable" db="mssql">CREATE 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 doesn't support -->
<!-- aliases or forwards. -->
<sqlDefs name="org.apache.james.userrepository.DefaultUsersJdbcRepository"><sql name="tableName">${table}</sql><!-- Statements used to retrieve all user information for a user from this repository. --><sql name="select">SELECT username, pwdHash, pwdAlgorithmFROM ${table}</sql><!-- Statements used to insert a user into this repository. --><sql name="insert">INSERT INTO ${table}(username, pwdHash, pwdAlgorithm)VALUES (?,?,?)</sql><!-- Statements used to update information for a user from this repository. --><sql name="update">UPDATE ${table} SETpwdHash = ?, pwdAlgorithm = ?WHERE username = ?</sql><!-- Statements used to delete a user from this repository. --><sql name="delete">DELETE FROM ${table} WHERE username = ?</sql><!-- Statements used to create the table associated with this class. --><sql name="createTable" db="hypersonic">CREATE CACHED TABLE ${table} (username VARCHAR(64) NOT NULL, pwdHash VARCHAR(50), pwdAlgorithm VARCHAR(20), PRIMARY KEY(username))</sql><sql name="createTable">CREATE 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 name="org.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 key="unknownList"/><sql name="tableName">${table}</sql><!-- Statements used to retrieve all users on a particular list from this repository. --><sql name="select">SELECT listSubscriberFROM ${table}WHERE listName = '${key}'</sql><!-- Statements used to insert a user/list mapping into this repository. --><sql name="insert">INSERT INTO ${table}(listSubscriber, listName)VALUES (?, '${key}')</sql><!-- Statements used to update a user/list mapping in this repository. --><sql name="update">UPDATE ${table} SETlistSubscriber = ?WHERE listSubscriber = ? AND listName = '${key}'</sql><!-- Statements used to delete a user/list mapping from this repository. --><sql name="delete">DELETE FROM ${table}WHERE listSubscriber = ? AND listName = '${key}'</sql><!-- Statements used to create the table associated with this class. --><sql name="createTable" db="hypersonic">CREATE CACHED TABLE ${table} (listName VARCHAR(64) NOT NULL, listSubscriber VARCHAR(255) NOT NULL, PRIMARY KEY(listName, listSubscriber))</sql><sql name="createTable">CREATE TABLE ${table} (listName VARCHAR(64) NOT NULL, listSubscriber VARCHAR(255) NOT NULL, PRIMARY KEY(listName, listSubscriber))</sql>
</sqlDefs><!-- SQL statements for the JdbcMailRepository  -->
<sqlDefs name="org.apache.james.mailrepository.JDBCMailRepository"><!-- Statements used to check whether a particular message exists in this repository. --><sql name="checkMessageExistsSQL">SELECT count(*) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><!-- Statements used to update a message stored in this repository. --><sql name="updateMessageSQL">UPDATE ${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 name="updateMessageBodySQL">UPDATE ${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 name="updateMessageAttributesSQL">UPDATE ${table} SET message_attributes = ? WHERE message_name = ? AND repository_name = ?</sql><!-- Statements used to insert a message into this repository. --><sql name="insertMessageSQL">INSERT 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 name="retrieveMessageSQL">SELECT 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 name="retrieveMessageBodySQL">SELECT 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 name="retrieveMessageAttributesSQL">SELECT 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 name="retrieveMessageBodySizeSQL" db="mssql">SELECT datalength(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="mysql">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="hypersonic">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="hsqldb">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="postgresql">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="oracle">SELECT dbms_lob.getlength(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="dm">SELECT dbms_lob.getlength(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="db2">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="ingres">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="derby">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><!-- Statements used to delete a message stored in this repository. --><sql name="removeMessageSQL">DELETE FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><!-- Statements used to list all messages stored in this repository. --><sql name="listMessagesSQL">SELECT 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 name="createTable" db="mysql">CREATE 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))</sql><sql name="createTable" db="hypersonic">CREATE 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))</sql><sql name="createTable" db="hsqldb">CREATE 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))</sql><sql name="createTable" db="mssql">CREATE 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))</sql><sql name="createTable" db="oracle">CREATE 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))</sql><sql name="createTable" db="dm">CREATE 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))</sql><sql name="createTable" db="postgresql">CREATE 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))</sql><sql name="createTable" db="sapdb">CREATE 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))</sql><sql name="createTable" db="db2">CREATE 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))</sql><sql name="createTable" db="ingres">CREATE 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)</sql><sql name="createTable" db="derby">CREATE 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 name="org.apache.james.mailrepository.JDBCSpoolRepository"><!-- Statements used to check whether a particular message exists in this repository. --><sql name="checkMessageExistsSQL">SELECT count(*) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><!-- Statements used to update a message stored in this repository. --><sql name="updateMessageSQL">UPDATE ${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 name="updateMessageBodySQL">UPDATE ${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 name="updateMessageAttributesSQL">UPDATE ${table} SET message_attributes = ? WHERE message_name = ? AND repository_name = ?</sql><!-- Statements used to insert a message into this repository. --><sql name="insertMessageSQL">INSERT 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 name="retrieveMessageSQL">SELECT 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 name="retrieveMessageBodySQL">SELECT 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 name="retrieveMessageAttributesSQL">SELECT 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 name="retrieveMessageBodySizeSQL" db="mssql">SELECT datalength(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="mysql">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="hypersonic">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="hsqldb">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="postgresql">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="oracle">SELECT dbms_lob.getlength(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="dm">SELECT dbms_lob.getlength(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="db2">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><sql name="retrieveMessageBodySizeSQL" db="ingres">SELECT length(message_body) FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><!-- Statements used to delete a message stored in this repository. --><sql name="removeMessageSQL">DELETE FROM ${table} WHERE message_name = ? AND repository_name = ?</sql><!-- Statements used to list all messages stored in this repository. --><sql name="listMessagesSQL">SELECT 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 name="createTable" db="hypersonic">CREATE 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))</sql><sql name="createTable" db="hsqldb">CREATE 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))</sql><sql name="createTable" db="mysql">CREATE 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))</sql><sql name="createTable" db="mssql">CREATE 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))</sql><sql name="createTable" db="oracle">CREATE 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))</sql><sql name="createTable" db="dm">CREATE 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))</sql><sql name="createTable" db="postgresql">CREATE 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))</sql><sql name="createTable" db="sapdb">CREATE 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))</sql><sql name="createTable" db="db2">CREATE 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))</sql><sql name="createTable" db="ingres">CREATE 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)</sql><sql name="createTable" db="derby">CREATE 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 name="org.apache.james.util.JDBCBayesianAnalyzer"><sql name="hamTableName">bayesiananalysis_ham</sql><sql name="spamTableName">bayesiananalysis_spam</sql><sql name="messageCountsTableName">bayesiananalysis_messagecounts</sql><!-- Statements used to retrieve the message counts. --><sql name="selectMessageCounts">SELECT HAMCOUNT, SPAMCOUNT FROM bayesiananalysis_messagecounts</sql><!-- Statements used to initialize the message counts. --><sql name="initializeMessageCounts">INSERT INTO bayesiananalysis_messagecounts (HAMCOUNT, SPAMCOUNT) VALUES (0,0)</sql><!-- Statements used to update the ham message counts. --><sql name="updateHamMessageCounts">UPDATE bayesiananalysis_messagecounts SET HAMCOUNT=(HAMCOUNT + ?)</sql><!-- Statements used to update the spam message counts. --><sql name="updateSpamMessageCounts">UPDATE bayesiananalysis_messagecounts SET SPAMCOUNT=(SPAMCOUNT + ?)</sql><!-- Statements used to retrieve the ham token counts. --><sql name="selectHamTokens">SELECT TOKEN, OCCURRENCES FROM bayesiananalysis_ham</sql><!-- Statements used to retrieve the spam token counts. --><sql name="selectSpamTokens">SELECT TOKEN, OCCURRENCES FROM bayesiananalysis_spam</sql><!-- Statements used to insert the ham token counts. --><sql name="insertHamToken">INSERT INTO bayesiananalysis_ham (TOKEN, OCCURRENCES) VALUES (?,?)</sql><!-- Statements used to insert the spam token counts. --><sql name="insertSpamToken">INSERT INTO bayesiananalysis_spam (TOKEN, OCCURRENCES) VALUES (?,?)</sql><!-- Statements used to update the ham token counts. --><sql name="updateHamToken">UPDATE bayesiananalysis_ham SET OCCURRENCES=(OCCURRENCES + ?) WHERE (TOKEN=?)</sql><!-- Statements used to update the spam token counts. --><sql name="updateSpamToken">UPDATE bayesiananalysis_spam SET OCCURRENCES=(OCCURRENCES + ?) WHERE (TOKEN=?)</sql><!-- Statements used to delete ham tokens. --><sql name="deleteHamTokens">DELETE FROM bayesiananalysis_ham</sql><!-- Statements used to delete spam tokens. --><sql name="deleteSpamTokens">DELETE FROM bayesiananalysis_spam</sql><!-- Statements used to delete message counts. --><sql name="deleteMessageCounts">DELETE FROM bayesiananalysis_messagecounts</sql><!-- Statements used to create the "ham" table (the 'token' field must be case sensitive). --><sql name="createHamTable" db="mysql">CREATE TABLE bayesiananalysis_ham (token varchar(128) binary NOT NULL default '',occurrences int(11) NOT NULL default '0',PRIMARY KEY (token)) TYPE=InnoDB</sql><sql name="createHamTable" db="mssql">CREATE TABLE [bayesiananalysis_ham] ([token] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL,[occurrences] [int] NOT NULL default (0),PRIMARY KEY (token))</sql><sql name="createHamTable" db="derby">CREATE TABLE bayesiananalysis_ham (token varchar(128) NOT NULL,occurrences INTEGER NOT NULL default 0,PRIMARY KEY (token))</sql><sql name="createHamTable" db="postgresql">CREATE 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 name="createSpamTable" db="mysql">CREATE TABLE bayesiananalysis_spam (token varchar(128) binary NOT NULL default '',occurrences int(11) NOT NULL default '0',PRIMARY KEY (token)) TYPE=InnoDB</sql><sql name="createSpamTable" db="mssql">CREATE TABLE [bayesiananalysis_spam] ([token] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL,[occurrences] [int] NOT NULL default (0),PRIMARY KEY (token))</sql><sql name="createSpamTable" db="derby">CREATE TABLE bayesiananalysis_spam (token varchar (128) NOT NULL,occurrences INTEGER  NOT NULL default 0,PRIMARY KEY (token))</sql><sql name="createSpamTable" db="postgresql">CREATE 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 name="createMessageCountsTable" db="mysql">CREATE TABLE bayesiananalysis_messagecounts (hamcount int(11) NOT NULL default '0',spamcount int(11) NOT NULL default '0') TYPE=InnoDB</sql><sql name="createMessageCountsTable" db="mssql">CREATE TABLE [bayesiananalysis_messagecounts] ([hamcount] [int] NOT NULL default (0),[spamcount] [int] NOT NULL default (0))</sql><sql name="createMessageCountsTable" db="derby">CREATE TABLE bayesiananalysis_messagecounts (hamcount INTEGER NOT NULL default 0,spamcount INTEGER  NOT NULL default 0)</sql><sql name="createMessageCountsTable" db="postgresql">CREATE 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 name="WhiteList"><sql name="whiteListTableName">whitelist</sql><!-- Statements used to retrieve a single entry. --><sql name="selectByPK">SELECT localUser, localHost FROM whitelist where (localUser=? AND localHost=? AND remoteUser=? AND remoteHost=?)</sql><!-- Statements used to all entries by sender address. --><sql name="selectBySender">SELECT remoteUser, remoteHost FROM whitelist where (localUser=? AND localHost=?) ORDER BY remoteUser, remoteHost</sql><!-- Statements used to insert an entry. --><sql name="insert">INSERT INTO whitelist (localUser, localHost, remoteUser, remoteHost) VALUES (?,?,?,?)</sql><!-- Statements used to delete an entry. --><sql name="deleteByPK">DELETE FROM whitelist where (localUser=? AND localHost=? AND remoteUser=? AND remoteHost=?)</sql><!-- Statements used to create the "whitelist" table. --><sql name="createWhiteListTable" db="hypersonic">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))    </sql><sql name="createWhiteListTable" db="hsqldb">CREATE 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))    </sql><sql name="createWhiteListTable" db="mysql">CREATE 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)) TYPE=InnoDB</sql><sql name="createWhiteListTable" db="mssql">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))</sql><sql name="createWhiteListTable" db="oracle">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))</sql><sql name="createWhiteListTable" db="dm">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))</sql><sql name="createWhiteListTable" db="postgresql">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))</sql><sql name="createWhiteListTable" db="sapdb">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))</sql><sql name="createWhiteListTable" db="db2">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))</sql><sql name="createWhiteListTable" db="ingres">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))</sql><sql name="createWhiteListTable" db="derby">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))</sql></sqlDefs></sqlResources>

 关键字dm,其实就是复制一下oracle的sql,然后有特殊语句就自己修改一下


启动报错:

如果启动报错,可以在james-2.3.2\apps\james\logs查看日志

相关文章:

Apache James配置连接达梦数据库

项目场景&#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…...

Java实现栈

一、栈Stack 1.1 概念 一种特殊的线性表&#xff0c;只允许在固定的一段进行插入和删除元素操作。进行数据的插入和删除操作的一段称为栈顶&#xff0c;另一端称为栈低。栈中的元素遵循后进先出 LIFO(Last In First Out)的原则。 进栈 出栈 举例&#xff1a;在word中&#xf…...

数据结构—栈

栈 概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#xff1a;栈…...

服务设计原则介绍

在Java或任何软件开发中&#xff0c;设计服务时遵循一些核心原则是非常重要的&#xff0c;这些原则不仅有助于构建高质量、可维护的软件系统&#xff0c;还能提高系统的可扩展性和可重用性。以下是一些关键的服务设计原则&#xff1a; 单一职责原则&#xff08;SingleResponsib…...

【Qualcomm】高通SNPE框架的使用 | 原始模型转换为量化的DLC文件 | 在Android的DSP端运行模型

目录 ① 激活snpe环境 ② 设置环境变量 ③ 模型转换 ④ run 首先&#xff0c;默认SNPE工具已经下载并且Setup相关工作均已完成。同时&#xff0c;拥有原始模型文件&#xff0c;本文使用的模型文件为SNPE 框架示例的inception_v3_2016_08_28_frozen.pb文件。image_file_list…...

爬虫的流程

爬虫的流程 获取网页提取信息保存数据自动化程序能爬怎样的数据 获取网页 获取网页就是获取网页的源代码&#xff0c;源代码里包含了网页的部分有用信息&#xff0c;所以只要把源代码获取下来&#xff0c;就可以从中提取想要的信息浏览器访问网页的本质&#xff1a;浏览器向服…...

Git之如何删除Untracked文件(六十八)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…...

k8s集群自动化管理

项目地址 https://github.com/TimeBye/kubeadm-ha准备安装包 # 离线安装环境 curl -LO https://oss.choerodon.com.cn/kubeadm-ha/kubeadm-ha-base-amd64.tar # 集群运行所需的镜像 curl -LO https://oss.choerodon.com.cn/kubeadm-ha/kubernetes-1.30.2-images-amd64.tgz # …...

yum库 docker的小白安装教程(附部分问题及其解决方案)

yum库 首先我们安装yum 首先在控制台执行下列语句 首先切换到root用户&#xff0c;假如已经是了就不用打下面的语句 su root #使用国内的镜像&#xff0c;不执行直接安装yum是国外的&#xff0c;那个有问题 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.al…...

python如何实现日期加减

首先通过import datetime&#xff0c;导入日期处理库。 然后把日期转化成datetime标准格式&#xff0c;使用datetime.datetime.strptime()方法将字符串格式的时间转化为标准格式。 其中"%Y/%m/%d %H:%M:%S"为time字符串的时间格式&#xff1a;Y为年&#xff0c;m为月…...

springboot实战学习笔记(4)(Spring Validation参数校验框架、全局异常处理器)

接着上篇博客学习。上篇博客是已经基本完成用户模块的注册接口的开发。springboot实战学习笔记&#xff08;3&#xff09;(Lombok插件、postman测试工具、MD5加密算法、post请求、接口文档、注解、如何在IDEA中设置层级显示包结构、显示接口中的方法)-CSDN博客本篇博客主要是关…...

网络七层协议

网络七层协议&#xff0c;也称为OSI&#xff08;Open Systems Interconnection&#xff09;参考模型&#xff0c;是由国际标准化组织&#xff08;ISO&#xff09;提出的一种网络通信的协议分层模型。该模型将网络通信过程划分为七个层次&#xff0c;从下到上依次为物理层、数据…...

从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之一:生产环境与目标服务器详情

从 Oracle 集群到单节点环境&#xff08;详细记录一次数据迁移过程&#xff09;之一&#xff1a;生产环境与目标服务器详情 目录 从 Oracle 集群到单节点环境&#xff08;详细记录一次数据迁移过程&#xff09;之一&#xff1a;生产环境与目标服务器详情一、操作系统环境二、Or…...

【软件测试】详解测试中常用的几种测试方法

目录 一、集成测试二、 系统测试三、验收测试四、回归测试 总结 一、集成测试 术语 集成测试是继组件测试之后的又一个层次。集成测试假定交给这个层次的测试对象已经经过了组件测试&#xff0c;并且任何组件内部的缺陷都已经尽可能地被纠正。 集成 开发人员、测试人员和专…...

开始学习深度学习-前言

作为一个外行&#xff0c;想学习一下深度学习。有些理解可能会很幼稚&#xff0c;特此记录一下。 深度学习&#xff0c;看起来高大上&#xff0c;其实用到的数学知识&#xff0c;也不是多高深&#xff0c;都是基本的数字。如果有不理解的&#xff0c;可以问一下chatGPT&#xf…...

Liveweb视频汇聚平台支持GB28181转RTMP、HLS、RTSP、FLV格式播放方案

GB28181协议凭借其在安防流媒体行业独有的大统一地位&#xff0c;目前已经在各种安防项目上使用。雪亮工程、幼儿园监控、智慧工地、物流监控等等项目上目前都需要接入安防摄像头或平台进行直播、回放。而GB28181协议作为国家推荐标准&#xff0c;目前基本所有厂家的安防摄像头…...

详解c++:new和delete

文章目录 前言一、new和mallocnew的用法&#xff08;爽点&#xff09;自动构造 delete和freedelete的用法&#xff08;爽点&#xff09; 提醒 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 在C中&#xff0c;new 和 delete 是两个非常重要的操作符&am…...

【深度学习】(5)--搭建卷积神经网络

文章目录 搭建卷积神经网络一、数据预处理1. 下载数据集2. 创建DataLoader&#xff08;数据加载器&#xff09; 二、搭建神经网络三、训练数据四、优化模型 总结 搭建卷积神经网络 一、数据预处理 1. 下载数据集 在PyTorch中&#xff0c;有许多封装了很多与图像相关的模型、…...

边学英语边学 Java|Synchronization in java

Why use Java Synchronization? Java Synchronization is used to make sure by some synchronization method that only one thread can access the resource at a given point in time. Java 同步用于确保通过某种同步方法&#xff0c;在给定的时间点只有一个线程可以访问资…...

k8s StorageClass 存储类

文章目录 一、概述1、StorageClass 对象定义2、StorageClass YAML 示例 二、StorageClass 字段1、provisioner&#xff08;存储制备器&#xff09;1.1、内置制备器1.2、第三方制备器 2、reclaimPolicy&#xff08;回收策略&#xff09;3、allowVolumeExpansion&#xff08;允许…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...