配置模板
一些常用的配置模板合集。主要是为了方便的粘贴到文件中。如有必要,可以考虑做成模板的方式,自动渲染。
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& &需要转义 & -->
<property name="url" value="jdbc:mysql://10.172.26.15:3403/git?useUnicode=true&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的内容清空了。重新按上面配置即可。