收藏一些常用的配置文件
mybatis 的总配置文件
常用于配置缓存,数据库信息以及需要加载的映射文件
FileName: conf.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 所有的配置信息写在这个标签中 -->
<configuration>
<!-- 引人动态文件 -->
<properties resource="db.properties" />
<!-- 设置全局参数-->
<settings>
<!-- true: 开启二级缓存 false: 关闭二级缓存; 再具体的Mapper.xml 中需要通过<cache/>标签声明-->
<setting name="cacheEnabled" value="false" />
<!-- 开启日志, 并指定使用的具体日志 -->
<setting name="logImpl" value="LOG4J"/>
<!-- 开启延迟加载 -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- 关闭立即加载 -->
<!-- 下面的配置没错, 但是运行就报 Error creating lazy proxy. Cause: java.lang.NullPointerException
的异常, 看了网上的解决方案是将 MyBatis的jar包更新到3.5.1
aggressive: 积极的, 好斗的
-->
<setting name="aggressiveLazyLoading" value="false"/>
<!-- 配置全局的NULL, 在遇到数据库(oracle)不能解析时, 就使用NULL -->
<setting name="jdbcTypeForNull" value="NULL"/>
</settings>
<!-- 设置单个/多个别名 Aliases:别名 -->
<typeAliases>
<!-- 单个别名
<typeAlias type="xyz.xmcs.Entity.Student" alias="Student" /> -->
<!-- 批量设置别名 -->
<package name="xyz.xmcs.Entity" />
</typeAliases>
<!-- 配置类型转换器: JDBC类型和JAVA类型之间的转换
<typeHandlers> -->
<!-- 指定转换器的全类名, 并且说明java 和 jdbc 转换的类型
<typeHandler handler="xyz.xmcs.converter.BooleanAndIntConverter" javaType="Boolean" jdbcType="INTEGER"/>
</typeHandlers> -->
<!-- 配置插件: 在这里配置自定义的插件 -->
<plugins>
<!-- PageHelper 分页查询插件 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor"/>
</plugins>
<!-- 该标签中可配置数据库信息, 如连接oracle, mysql 等 -->
<environments default="devMySQL">
<!-- MySQL 数据库: 可运行 -->
<environment id="devMySQL">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 配置数据库信息; 可以直接在value中写死, 也可以将值以kv对的形式写在properties文件中,
以类似于EL表法是的方式动态引入(需要先加入 properties标签, 引入properties文件)-->
<property name="driver" value="${mysql.driver}"/>
<property name="url" value="${mysql.url}"/>
<property name="username" value="${mysql.username}"/>
<property name="password" value="${mysql.password}"/>
</dataSource>
</environment>
<!-- MySQL 数据库: 测试 -->
<environment id="testMySQL">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 配置数据库信息; 可以直接在value中写死, 也可以将值以kv对的形式写在properties文件中,
以类似于EL表法是的方式动态引入(需要先加入 properties标签, 引入properties文件)-->
<property name="driver" value="${mysqlTest.driver}"/>
<property name="url" value="${mysqlTest.url}"/>
<property name="username" value="${mysqlTest.username}"/>
<property name="password" value="${mysqlTest.password}"/>
</dataSource>
</environment>
</environments>
<!-- 配置数据库支持类: 大小写必能乱写 -->
<databaseIdProvider type="DB_VENDOR">
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<!--<property name="SQL Server" value=""/>-->
</databaseIdProvider>
<mappers>
<!-- 加载映射文件
<mapper resource="xyz/xmcs/Entity/personMapper.xml"/> -->
<!-- 这种是批量引入mapper; 可以将 xyz.xmcs.mapper包中的注解接口(即接口中的方法上带注解)和xml全部一次性引入-->
<package name="xyz.xmcs.Mapper"/>
<!-- 这是使用注解的方式, 并单独引入; 不推荐使用
<mapper class="xyz.xmcs.Mapper.StudentMapper"/>-->
<!--
<mapper resource="xyz/xmcs/Mapper/studentMapper.xml"/>
<mapper resource="xyz/xmcs/Mapper/studentCardMapper.xml"/>
<mapper resource="xyz/xmcs/Mapper/studentClassMapper.xml"/> -->
</mappers>
</configuration>
JavaBean映射文件配置信息
MyBatis 是实现数据库表和JavaBean的映射关系, 这种映射关系就体现就是每一个JavaBeanMapper.xml
FileName: UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="xyz.xmcs.dao.UserMapper">
<resultMap id="UserBaseMap" type="User">
<id property="user_id" column="user_id"/>
<result property="username" column="username"/>
<result property="telephone" column="telephone"/>
<result property="email" column="email"/>
<result property="password" column="password"/>
<result property="is_admin" column="is_admin"/>
</resultMap>
<!--增加用户-->
<insert id="addUser" parameterType="User">
insert into
user (user_id, username, telephone, email, password, is_admin)
values (#{user_id},#{username},#{telephone},#{email},#{password},#{is_admin})
</insert>
<!--删除用户-->
<delete id="deleteUserByName" parameterType="String" >
delete from user where username=#{username}
</delete>
<!--修改用户信息-->
<update id="updateUserByUserId" parameterType="User" >
update user
<trim prefix="set" suffixOverrides=",">
<if test="username != mull and username != ''">
username = #{username},
</if>
<if test="telephone != null and telephone != ''">
telephone = #{telephone},
</if>
<if test="email != null and email != ''">
email = #{email},
</if>
<if test="password != null and password != ''">
password = #{password},
</if>
<if test="is_admin != null">
is_admin = #{is_admin},
</if>
</trim>
where user_id = #{user_id}
</update>
<!--以用户名查询用户所有信息-->
<select id="queryUserByName" parameterType="String" resultMap="UserBaseMap">
select user_id, username, telephone, email, password, is_admin
from user
where username = #{username}
</select>
<!--查询全部用户-->
<select id="queryAllUsers" resultMap="UserBaseMap">
select user_id, username, telephone, email, password, is_admin
from user
</select>
<!--查询用户数量-->
<select id="getTotalCount" resultType="int">
select count(1) from user
</select>
</mapper>
配置连接数据库的配置文件
通常连接数据库的信息写在db.properties中,使用时通过Properties类直接load加载就可以使用
FileName: db.properties
# mysql 测试数据库
mysqlTest.driver=com.mysql.cj.jdbc.Driver
mysqlTest.url=jdbc:mysql://127.0.0.1:3306/JB?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&noAccessToProcedureBodies=true
mysqlTest.username=root
mysqlTest.password=root
# MySQL 可运行数据库
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://127.0.0.1:3306/servletblog?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&noAccessToProcedureBodies=true
mysql.username=root
mysql.password=root
# 刘增辉 mybatis 从入门到精通 数据库链接信息
b.driver=com.mysql.cj.jdbc.Driver
b.url=jdbc:mysql://127.0.0.1:3306/mybatis?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&noAccessToProcedureBodies=true
b.username=root
b.password=root
C3P0数据库连接池配置文件
FileName:c3p0-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<c3p0-config>
<!-- 默认 -->
<default-config>
<!-- 如果要深究某个xml中可以设置那些属性, 就找相关类的属性, 或者setter()方法 -->
<property name="user">root</property>
<property name="password">123456</property>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/servletBlog?useSSL=false&serverTimezone=UTC</property>
<property name="checkoutTimeout">50000</property>
</default-config>
<!-- 自定义 -->
<named-config name="jefxff">
<property name="user">root</property>
<property name="password">123456</property>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/servletBlog?useSSL=false&serverTimezone=UTC</property>
<property name="checkoutTimeout">50000</property>
<property name="maxPoolSize">8</property>
<!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize">2</property>
<!-- 连接池中保留的最小连接数,默认为:3-->
<property name="minPoolSize">2</property>
<!--连接池中保留的最大连接数。默认值: 15 -->
<property name="maxPoolSize">15</property>
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。默认值: 3 -->
<property name="acquireIncrement">2</property>
<!--定义在从数据库获取新连接失败后重复尝试的次数。默认值: 30 ;小于等于0表示无限次-->
<property name="acquireRetryAttempts">0</property>
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">0</property>
<!--maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。默认值: 0 -->
<property name="maxStatementsPerConnection">0</property>
<!--最大空闲时间,指定的时间内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime">30</property>
<!--c3p0全局的PreparedStatements缓存的大小。如果maxStatements与maxStatementsPerConnection均为0,则缓存不生效,只要有一个不为0,则语句的缓存就能生效。如果默认值: 0-->
<property name="maxStatements">0</property>
<property name="unreturnedConnectionTimeout">25</property>
</named-config>
</c3p0-config>
Log4J 配置文件
第三方日志 log4j
FileName: log4j.properties
### 设置Logger输出级别和输出目的地 ###
log4j.rootLogger=ERROR, Console
#### Console 日志输出到控制台 ####
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
## 带时间的输出形式
# log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.appender.Console.layout.ConversionPattern=%5p [%t] - %m%n
## MyBatis 日志配置, Resources目录下的Mapper包
log4j.logger.xyz.xmcs.Mapper=TRACE
## MyBatis 编码
log4j.appender.Console.encoding=UTF-8
#### File 日志输出到文件; 需要再 rootLogger 后面增加: , File
#log4j.appender.File = org.apache.log4j.FileAppender
#log4j.appender.File.File = D://File//Java//JAVA_WEB//Log4J_Log
#log4j.appender.File.layout = org.apache.log4j.PatternLayout
#log4j.appender.File.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
Tomcat8 web.xml 全配置
FileName: web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- 整个配置文件的根标签 -->
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 指定web站台中小图标和大图标的路径 -->
<icon>
<small-icon></small-icon>
<large-icon></large-icon>
</icon>
<!-- 标注了该web项目的名字 -->
<display-name>Test</display-name>
<!-- 对应用做出描述 -->
<description>Servlet web.xml v1.0</description>
<!-- 这里配置的是整个项目的初始化参数; 设定web应用的环境参数(context) -->
<context-param>
<!-- 设定Context名称 -->
<param-name>companyName</param-name>
<!-- 设定Context名称的值 -->
<param-value>FM</param-value>
</context-param>
<context-param>
<param-name>authorName</param-name>
<param-value>jeff</param-value>
</context-param>
<!-- 用来设定web应用的过滤器 -->
<filter>
<!-- 定义Filter的名称 -->
<filter-name>Encoding</filter-name>
<!-- 定义Filter的类名称 -->
<filter-class>xyz.xmcs.Servlet.MyServletFilter</filter-class>
<!-- 初始化参数 -->
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<!-- 用来和一个或对各Servlet或者JSP页面关联 -->
<filter-mapping>
<!-- 定义Filter的名称 -->
<filter-name>Encoding</filter-name>
<!-- Filter所对应的RUL -->
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Listener元素用来定义Listener接口 -->
<listener>
<!-- 定义Listener的类名称 -->
<listener-class>xyz.xmcs.Servlet.MyServletListener</listener-class>
</listener>
<!-- 定义了首页文件,也就是用户直接输入域名时跳转的页面(如http://localhost:8080/) -->
<welcome-file-list>
<welcome-file>form</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 用来声明一个 Servlet 的数据 -->
<servlet>
<!-- 指定 Servlet 的名称 -->
<servlet-name>MyServlet</servlet-name>
<!-- 指定 Servlet 的全限定内名称 -->
<servlet-class>xyz.xmcs.Servlet.MyServlet</servlet-class>
<!-- 指定web网站中某个JSP网页的完整路径 -->
<!--<jsp-file>/index.jsp</jsp-file>-->
<!-- 定义这个Servlet初始化参数,在servlet类中通过ServletConfig对象传入init函数,通过- getInitParamenter(String name)方法访问初始化参数 -->
<init-param>
<param-name>DRIVER</param-name>
<param-value>com.mysql.cj.jdbc.Driver</param-value>
</init-param>
<init-param>
<param-name>URL</param-name>
<param-value>jdbc:mysql://localhost:3306/myDatabase</param-value>
</init-param>
<init-param>
<param-name>USERNAME</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>PASSWORD</param-name>
<param-value>root</param-value>
</init-param>
<!-- 指定当Web应用启动时,装载Servlet的次序 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 定义servlet所对应的URL -->
<servlet-mapping>
<!-- 指定servlet的名称 -->
<servlet-name>MyServlet</servlet-name>
<!-- 指定servlet所对应的URL -->
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
<!-- 定义这个web站台所有session的有效期限.单位为分钟 -->
<session-config>
<!-- 有效期限, 单位为秒 -->
<session-timeout>30</session-timeout>
</session-config>
<!-- 定义某一个扩展名和某一MIME Type做对映. -->
<mime-mapping>
<!-- 扩展名称 -->
<extension>doc</extension>
<!-- MIME格式. -->
<mime-type>application/vnd.ms-word</mime-type>
</mime-mapping>
<!-- 返回特定状态码时或者特定类型的异常被抛出时, 能够指定将要显示的页面 -->
<error-page>
<!-- 错误代码 -->
<error-code>404</error-code>
<!-- 对应的页面 -->
<location>/404page.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/404page.html</location>
</error-page>
<error-page>
<!-- 错误代码 -->
<exception-type>java.lang.Exception</exception-type>
<!-- 对应的页面 -->
<location>/exception.jsp</location>
</error-page>
<!-- 主要用来设定JSP的相关配置 -->
<jsp-config>
<!-- 用来设定JSP网页用到的Tag Library路径 -->
<!--<taglib>-->
<!-- 定义TLD文件的URI,JSP网页的taglib指令可以经由这个URI存取到TLD文件 -->
<!--<taglib-uri>Taglib</taglib-uri>-->
<!-- LD文件对应Web站台的存放位置 -->
<!--<taglib-location>/WEB-INF/</taglib-location>-->
<!--</taglib>-->
<jsp-property-group>
<!-- 此设定的说明 -->
<description>
Special property group for JSP Configuration JSP example.
</description>
<!-- 此设定的名称 -->
<display-name>JSPConfiguration</display-name>
<!-- 设定值所影响的范围,如:/CH2 或者/*.jsp -->
<url-pattern>/*</url-pattern>
<!-- 若为true,表示不支持EL语法. -->
<el-ignored>true</el-ignored>
<!-- 设定JSP网页的编码 -->
<page-encoding>GB2312</page-encoding>
<!-- 若为true表示不支持<%scription%>语法. -->
<scripting-invalid>true</scripting-invalid>
</jsp-property-group>
</jsp-config>
<!-- 声明一个与资源相关的一个管理对象 -->
<resource-env-ref>
<!-- 资源的名称 -->
<resource-env-ref-name>jdbc/mssql</resource-env-ref-name>
<!-- 查找资源时返回的资源类名 -->
<resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>
<!-- 声明一个资源工厂使用的外部资源 -->
<resource-ref>
<!-- 资源说明 -->
<description>JNDI JDBC DataSource</description>
<!-- 资源名称 -->
<res-ref-name>jdbc/data</res-ref-name>
<!-- 资源种类 -->
<res-type>javax.sql.DataSource</res-type>
<!-- 资源由Application或Container来许可 -->
<res-auth>Container</res-auth>
</resource-ref>
</web-app>