mybatis、pom、logback、log4j等基本配置文件

mybatis、pom、logback等基本配置文件


一、mybatis-config.xml


DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <typeAliases>
        <package name="com.it.pojo"/>
    typeAliases>


    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">


                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="1234"/>
            dataSource>
        environment>
    environments>
    <mappers>




        <package name="com.it.mapper"/>
    mappers>
configuration>

二、pom.xml



<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0modelVersion>

  <groupId>org.examplegroupId>
  <artifactId>d2_maven_mybatisartifactId>
  <version>1.0-SNAPSHOTversion>
  <packaging>warpackaging>

  <dependencies>

    <dependency>
      <groupId>mysqlgroupId>
      <artifactId>mysql-connector-javaartifactId>
      <version>5.1.46version>
    dependency>

    <dependency>
      <groupId>com.alibabagroupId>
      <artifactId>druidartifactId>
      <version>1.1.12version>
    dependency>


      <dependency>
          <groupId>junitgroupId>
          <artifactId>junitartifactId>
          <version>4.13version>
          <scope>testscope>
      dependency>


      <dependency>
          <groupId>org.mybatisgroupId>
          <artifactId>mybatisartifactId>
          <version>3.5.5version>
      dependency>

      
      <dependency>
          <groupId>org.slf4jgroupId>
          <artifactId>slf4j-apiartifactId>
          <version>1.7.20version>
      dependency>
      
      <dependency>
          <groupId>ch.qos.logbackgroupId>
          <artifactId>logback-classicartifactId>
          <version>1.2.3version>
      dependency>
      
      <dependency>
          <groupId>ch.qos.logbackgroupId>
          <artifactId>logback-coreartifactId>
          <version>1.2.3version>
      dependency>


  <dependency>
    <groupId>javax.servletgroupId>
    <artifactId>javax.servlet-apiartifactId>
    <version>3.1.0version>
    <scope>providedscope>
  dependency>


  <dependency>
    <groupId>jstlgroupId>
    <artifactId>jstlartifactId>
    <version>1.2version>
  dependency>
  <dependency>
    <groupId>taglibsgroupId>
    <artifactId>standardartifactId>
    <version>1.1.2version>
  dependency>

  dependencies>
  

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.mavengroupId>
        <artifactId>tomcat7-maven-pluginartifactId>
        <version>2.2version>
      plugin>plugins>
  build>
  
    
<build>
    <resources>
        <resource>
            <directory>src/main/resourcesdirectory>
        resource>
    resources>
build>

project>

三、logback.xml


<configuration>
    
    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%level] %blue(%d{HH:mm:ss.SSS}) %cyan([%thread]) %boldGreen(%logger{15}) - %msg %npattern>
        encoder>
    appender>

    <logger name="com.itheima" level="DEBUG" additivity="false">
        <appender-ref ref="Console"/>
    logger>


    
    <root level="DEBUG">
        <appender-ref ref="Console"/>
    root>
configuration>

四、BrandMapper.xml


DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.it.mapper.BrandMapper">

mapper>

五、BrandMapper


```xml

DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.it.mapper.BrandMapper">



    <resultMap id="brandResultMap" type="brand">
        <result column="brand_name" property="brandName"/>
        <result column="company_name" property="companyName"/>
    resultMap>

    <select id="selectAll" resultMap="brandResultMap">
        select  *
        from tb_brand;
    select>

mapper>

六、JDBC数据库连接工具类 (c3p0)

mybatis、pom、logback、log4j等基本配置文件_第1张图片

①:pom.xml

<dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>8.0.28version>
        dependency>

        <dependency>
            <groupId>commons-dbutilsgroupId>
            <artifactId>commons-dbutilsartifactId>
            <version>1.6version>
        dependency>

        <dependency>
            <groupId>c3p0groupId>
            <artifactId>c3p0artifactId>
            <version>0.9.1.2version>
        dependency>

        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>druidartifactId>
            <version>1.1.12version>
        dependency>

        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.13version>
            <scope>testscope>
        dependency>
 
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>javax.servlet-apiartifactId>
            <version>3.1.0version>
            <scope>providedscope>
        dependency>
        <dependency>
            <groupId>org.junit.jupitergroupId>
            <artifactId>junit-jupiterartifactId>
            <version>RELEASEversion>
            <scope>compilescope>
        dependency>


        
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>jstlartifactId>
            <version>1.2version>
        dependency>
        
        <dependency>
            <groupId>taglibsgroupId>
            <artifactId>standardartifactId>
            <version>1.1.2version>
        dependency>

②:c3p0-config.xml


<c3p0-config>
    <named-config name="helloc3p0">
        
        <property name="driverClass">com.mysql.cj.jdbc.Driverproperty>
        <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/db_bookmall?serverTimezone=GMTproperty>
        <property name="user">rootproperty>
        <property name="password">rootproperty>
        

        
        <property name="minPoolSize" value="5"/>
        
        <property name="maxPoolSize" value="500"/>
        
        <property name="initialPoolSize" value="10"/>
        
        <property name="maxIdleTime" value="60"/>
        
        <property name="acquireIncrement" value="5"/>
        
        <property name="maxStatements" value="0"/>
        
        <property name="idleConnectionTestPeriod" value="60"/>
        
        <property name="acquireRetryAttempts" value="30"/>
        
        <property name="breakAfterAcquireFailure" value="false"/>
        
        <property name="testConnectionOnCheckout" value="false"/>
    named-config>
c3p0-config>

③:jdbc.properties

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/db_jsp?serverTimezone=GMT
user=root
password=root

④:JDBCUtils

package com.example.d6_bookmall.util;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;

public class JDBCUtils {

    private static DataSource ds = new ComboPooledDataSource("helloc3p0");

    public static  Connection getConnectionFroC3p0() throws SQLException {
        DataSource ds = new ComboPooledDataSource("helloc3p0");
        return ds.getConnection();
    }

    public static Connection getConnection() {
        try {
            Properties pros = new Properties();
            pros.load(JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properties"));
            String driverClassName = pros.getProperty("driverClassName");
            String url = pros.getProperty("url");
            String user = pros.getProperty("user");
            String password = pros.getProperty("password");

            // ①:加载驱动
            // 反射的作用是保证Driver被加载
            Class.forName(driverClassName);

            // ②:获取连接
            return DriverManager.getConnection(url, user, password);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return null;
    }

    //  关闭连接工具类
    public static void close(Connection connection, PreparedStatement ps){
        if (ps != null){
            try {
                ps.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }

        if (connection != null){
            try {
                connection.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

}

七、JDBC数据库连接工具类 (Druid)

①:pom.xml

  • druid

  • apache commons dbutil

  • 导入依赖坐标: mysql驱动、druid、apache commons dbutil



  <dependencies>
      <dependency>
      <groupId>javax.servletgroupId>
      <artifactId>javax.servlet-apiartifactId>
      <version>3.1.0version>
      <scope>providedscope>
    dependency>

      <dependency>
          <groupId>mysqlgroupId>
          <artifactId>mysql-connector-javaartifactId>
          <version>8.0.28version>
      dependency>

      <dependency>
          <groupId>commons-dbutilsgroupId>
          <artifactId>commons-dbutilsartifactId>
          <version>1.6version>
      dependency>

      <dependency>
          <groupId>c3p0groupId>
          <artifactId>c3p0artifactId>
          <version>0.9.1.2version>
      dependency>

      <dependency>
          <groupId>com.alibabagroupId>
          <artifactId>druidartifactId>
          <version>1.1.12version>
      dependency>

      <dependency>
          <groupId>junitgroupId>
          <artifactId>junitartifactId>
          <version>4.13version>
          <scope>testscope>
      dependency>








      <dependency>
          <groupId>org.junit.jupitergroupId>
          <artifactId>junit-jupiterartifactId>
          <version>RELEASEversion>
          <scope>compilescope>
      dependency>

      
      
      <dependency>
          <groupId>javax.servletgroupId>
          <artifactId>jstlartifactId>
          <version>1.2version>
      dependency>
      
      <dependency>
          <groupId>taglibsgroupId>
          <artifactId>standardartifactId>
          <version>1.1.2version>
      dependency>

      <dependency>
          <groupId>com.google.code.gsongroupId>
          <artifactId>gsonartifactId>
          <version>2.8.5version>
      dependency>

  dependencies>


②:druid.properties

  • 在resources包中创建druid.properties配置文件,并完成参数的配置:

mybatis、pom、logback、log4j等基本配置文件_第2张图片

driverClassName=com.mysql.cj.jdbc.Driver
#URL连接数据库的URL,其中travel(以下面例子来说)为连接的数据库,后面的参数可不改但不删
url=jdbc:mysql://localhost:3306/db_mtl?serverTimezone=GMT&useSSL=false&allowPublicKeyRetrieval=true
characterEncoding=utf-8
#安装mysql时候设置的用户与密码
username=root
password=root
#初始化物理连接的个数
initialSize=5
#最大连接池数量
maxActive=10
#获取连接时最大等待时间
maxWait=3000
#用来检测连接是否有效的sql
validationQuery=SELECT 1
#保证安全性!
testWhileIdle=true

③:DruidUtils

  • 在utils包中创建Druid的工具类
    mybatis、pom、logback、log4j等基本配置文件_第3张图片
package com.example.d9_mtl.utils;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

public class DruidUtils {

    // 定义Druid数据库连接池对象
    private static DruidDataSource druidDataSource;

    /**
     * 初始化数据库连接池
     */
    static {
        InputStream inputStream = DruidUtils.class.getResourceAsStream("druid.properties");
        Properties pros = new Properties();
        try {
            pros.load(inputStream);
            druidDataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(pros);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    /**
     * 返回 DataSource 数据库连接池对象
     * @return
     */
    public static DataSource getDataSource(){
        return druidDataSource;
    }


    /**
     * 从连接池中获取获取数据库连接
     * @return
     */
    public static Connection getConnection(){
        Connection connection = null;
        try {
            connection = druidDataSource.getConnection();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return connection;
    }
}

④:MyBatisUtil(SqlSession工具类)

public class MyBatisUtil {
    private static SqlSessionFactory factory;
    private static ThreadLocal<SqlSession> local = new ThreadLocal<SqlSession>();

    static {
        try {
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            factory = builder.build(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static SqlSessionFactory getSqlSessionFactory(){
        return factory;
    }

    public static SqlSession getSession(boolean isAutoCommit) {
        SqlSession sqlSession = local.get();
        if (sqlSession == null){
            sqlSession = factory.openSession(isAutoCommit);
            local.set(sqlSession);
        }
      return sqlSession;
    }
    public static SqlSession getSession(){
        return getSession(false);
    }

    public static <T>T getMapper(Class<T> clazz) {
        SqlSession session = getSession(true);
        return session.getMapper(clazz);
    }
}
mybatis、pom、logback、log4j等基本配置文件_第4张图片

八、log4j配置文件模版

1.坐标

<dependency>
    <groupId>log4jgroupId>
    <artifactId>log4jartifactId>
    <version>1.2.17version>
dependency>
  1. 新建log4j.properties文件

注意:该文件必须存放在main/java/resources目录下,放在其他目录下是无效的。

①: log4j.properties

方案一

# Global logging configuration
# 设置日志输出级别以及输出目的地,可以设置多个输出目的地,开发环境下,日志级别要设置成DEBUG或者ERROR
# 前面写日志级别,逗号后面写输出目的地:我自己下面设置的目的地相对应,以逗号分开
# log4j.rootLogger = [level],appenderName1,appenderName2,…
log4j.rootLogger=DEBUG,CONSOLE,LOGFILE

#### 控制台输出 ####
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# 输出到控制台
log4j.appender.CONSOLE.Target = System.out
# 指定控制台输出日志级别
log4j.appender.CONSOLE.Threshold = DEBUG
# 默认值是 true, 表示是否立即输出
log4j.appender.CONSOLE.ImmediateFlush = true
# 设置编码方式
log4j.appender.CONSOLE.Encoding = UTF-8
# 日志输出布局
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
# 如果日志输出布局为PatternLayout 自定义级别,需要使用ConversionPattern指定输出格式
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p (%c:%L) - %m%n



#### 输出错误信息到文件 ####
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
# 指定输出文件路径
#log4j.appender.LOGFILE.File =F://Intellij idea/logs/error.log
log4j.appender.LOGFILE.File =./logs/error.log 

#日志输出到文件,默认为true
log4j.appender.LOGFILE.Append = true
# 指定输出日志级别
log4j.appender.LOGFILE.Threshold = ERROR
# 是否立即输出,默认值是 true,
log4j.appender.LOGFILE.ImmediateFlush = true
# 设置编码方式
log4j.appender.LOGFILE.Encoding = UTF-8
# 日志输出布局
log4j.appender.LOGFILE.layout = org.apache.log4j.PatternLayout
# 如果日志输出布局为PatternLayout 自定义级别,需要使用ConversionPattern指定输出格式
log4j.appender.LOGFILE.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

方案二

{.brush:xml;toolbar: .true; .auto-links: .false;}
log4j.rootLogger=DEBUG, INFO, ERROR
# 输出控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%p]%d{yyyy-MM-dd HH:mm:ss} %l -  %m%n

### 输出INFO到日志文件 ###
log4j.appender.INFO = org.apache.log4j.DailyRollingFileAppender
log4j.appender.INFO.File = /data/log/messagePush/messagePush_info.log
#log4j.appender.INFO.File = D:/work/projects/message/trunk/baoxian-message-push/log/messagePush_info.log
log4j.appender.INFO.Append = true
log4j.appender.INFO.Threshold = INFO
log4j.appender.INFO.Encoding=UTF-8
log4j.appender.INFO.layout = org.apache.log4j.PatternLayout
log4j.appender.INFO.layout.ConversionPattern = [%p] %d{yyyy-MM-dd HH:mm:ss} %l - %m%n

### 输出ERROR到日志文件 ###
log4j.appender.ERROR = org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERROR.File = /data/log/messagePush/messagePush_error.log
#log4j.appender.ERROR.File = D:/work/projects/message/trunk/baoxian-message-push/log/messagePush_error.log
log4j.appender.ERROR.Append = true
log4j.appender.ERROR.Threshold = ERROR
log4j.appender.ERROR.Encoding=UTF-8
log4j.appender.ERROR.layout = org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.ConversionPattern = [%p] %d{yyyy-MM-dd HH:mm:ss} %l - %m%n

②: log4j.xml

{.brush:xml;toolbar: .true; .auto-links: .false;}

DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="debug-out" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="/data/log/openfire/debug.log" />
        <param name="MaxFileSize" value="1024KB"/>
        <param name="MaxBackupIndex" value="5"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy.MM.dd HH:mm:ss} %c - %m%n" />
        layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMax" value="debug" />
            <param name="AcceptOnMatch" value="true" />
        filter>
    appender>

    <appender name="info-out" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="/data/log/openfire/info.log" />
        <param name="MaxFileSize" value="1024KB"/>
        <param name="MaxBackupIndex" value="5"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy.MM.dd HH:mm:ss} %c - %m%n" />
        layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMax" value="info" />
            <param name="LevelMin" value="info" />
            <param name="AcceptOnMatch" value="true" />
        filter>
    appender>

    <appender name="warn-out" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="/data/log/openfire/warn.log" />
        <param name="MaxFileSize" value="1024KB"/>
        <param name="MaxBackupIndex" value="5"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy.MM.dd HH:mm:ss} %c - %m%n" />
        layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMax" value="warn" />
            <param name="LevelMin" value="warn" />
            <param name="AcceptOnMatch" value="true" />
        filter>
    appender>

    <appender name="error-out" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="/data/log/openfire/error.log" />
        <param name="MaxFileSize" value="1024KB"/>
        <param name="MaxBackupIndex" value="5"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy.MM.dd HH:mm:ss} %c - %m%n" />
        layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="error" />
            <param name="AcceptOnMatch" value="true" />
        filter>
    appender>

    
    <logger name="org.eclipse.jetty">
        <level value="warn" />
    logger>

     <root>
        <level value="info" />
        <appender-ref ref="debug-out" />
        <appender-ref ref="info-out" />
        <appender-ref ref="warn-out" />
        <appender-ref ref="error-out" />
    root>

log4j:configuration>

你可能感兴趣的:(Java,xml,java基本配置文件,mybatis-config)