配置模板

一些常用的配置模板合集。主要是为了方便的粘贴到文件中。如有必要,可以考虑做成模板的方式,自动渲染。

pom.xml

maven构建的文件。

maven

查询地址 https://mvnrepository.com/search?q=

包含构建的资源

一般如xml跟java代码在一起,需要指名文件的依赖:

springboot构建时,如下:

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*</include>
            </includes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

配置说明:

1、包含java代码中的所有的xml文件。

2、包含资源resource目录下的所有文件。如果不包含,打包的时候,还真不会添加进去。

3、spring-boot-maven-plugin这个貌似是springboot项目的专属。

Spring

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
</beans>

最简模板:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

在使用的过程中,如果缺少,alt + enter 会自动插入。如 p命令空间。

xmlns:p="http://www.springframework.org/schema/p"

Mybatis

jdbc配置

jdbc:mysql://10.172.26.15:3403/git?useSSL=false&useUnicode=true&characterEncoding=utf8

依赖

mybatis-config.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>
    <!--定义别名,这样mapper.xml就可以直接写别名了-->
    <typeAliases>
        <package name="cn.chaofml.demo3.model"/>
    </typeAliases>
    <!--   配置环境-->
    <environments default="development">
        <!--配置mysql的环境-->
        <environment id="development">
            <!--配置事务的类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置连接池-->
            <dataSource type="POOLED">
                <!--配置连接数据库的4个基本信息-->
                <!--com.mysql.cj.jdbc.Driver-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!--useUnicode=true&    &需要转义  &amp; -->
                <property name="url" value="jdbc:mysql://10.172.26.15:3403/git?useUnicode=true&amp;characterEncoding=utf8"/>
                <property name="username" value="username"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>

    <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
    <mappers>
        <package name="cn.chaofml.demo3.mapper"/>
    </mappers>
</configuration>

配置说明:

mappers

指定配置文件的地址,几种种形式,

<package name="cn.chaofml.demo3.mapper"/>

<!--从类的路径开始写-->
<mapper resource="mapping/User.xml"/>
<!--从绝对地址开始写-->
<mapper url="/path/to/User.xml"/>

使用文件,保存连接信息

<properties resource="db.properties"/>

其他还有很多配置。

xml转义

xml里面不能有&符号,故以下五个都需要转义。

< < 小于
> > 大于
& & 和号
' 省略号
" 引号

上面的符号,不能出现在内容区域,需要进行转义,避免跟xml的标记出现冲突。

mapper

<?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="cn.chaofml.demo3.mapper.UserMapper">
    <select id="getUserById" resultType="cn.chaofml.demo3.model.User">
        select * from user where id=#{id}
    </select>

    <select id="getAllUser" resultType="cn.chaofml.demo3.model.User">
        select * from user;
    </select>

    <select id="getAllUser2" resultType="user">
        select * from user;
    </select>
</mapper>

配置说明:

mapper namespace指定名字空间,跟包名一致,如果跟java配置文件在一起,则需要。

User.java

package cn.chaofml.demo3.mapper;

import cn.chaofml.demo3.model.User;

import java.util.List;

public interface UserMapper {
    User getUserById(Integer id);
    List<User> getAllUser();
    List<User> getAllUser2();
}

SqlSessionFactoryUtils

快捷方式获取工厂方法。

package cn.chaofml.demo3.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;

public class SqlSessionFactoryUtils {
    private static SqlSessionFactory FACTORY = null;

    public static SqlSessionFactory getInstance(){
        if(FACTORY == null){
            try{
                FACTORY = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
            }catch (IOException e){
                e.printStackTrace();
            }
        }
        return FACTORY;
    }
}

使用

SqlSessionFactory factory = SqlSessionFactoryUtils.getInstance();
SqlSession sqlSession = factory.openSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
System.out.println(mapper.getUserById(10));

spingboot

web + mybatis配置

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cn.chaofml.simpleboot</groupId>
    <artifactId>demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo1</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

配置 application.properties :

spring.datasource.url=jdbc:mysql://1.1.1.1:3403/db?useUnicode=true&characterEncoding=utf8
spring.datasource.password=user
spring.datasource.username=password
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#spring.datasource.hikari.connection-timeout=1000
#spring.datasource.hikari.idle-timeout=60000
#spring.datasource.hikari.maximum-pool-size=100

依赖说明:使用mybatis后,依然需要提供mysql的驱动,然后是,数据库连接池工具,如果不提供,则项目无法启动。

常用配置

https://www.cnblogs.com/newbest/p/9975151.html

log

依赖

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.32</version>
</dependency>

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.32</version>
    <!--<scope>test</scope>-->
</dependency>

log4j.properties

log4j.rootLogger=DEBUG,stdout
log4j.logger.org.mybatis=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n

报错

SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

如下,注释掉,因为其说明在test模式下,才可用。按如下注释掉即可。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.32</version>
    <!--<scope>test</scope>-->
</dependency>

log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).
log4j:WARN Please initialize the log4j system properly.

最后发现:

log4j.properties的内容清空了。重新按上面配置即可。