Maison > Java > javaDidacticiel > Tutoriel de création de projet Springboot (IntelliJIDEA, springboot 2.0 +mybatis)

Tutoriel de création de projet Springboot (IntelliJIDEA, springboot 2.0 +mybatis)

不言
Libérer: 2019-03-08 15:44:08
avant
4855 Les gens l'ont consulté

Le contenu de cet article concerne le tutoriel de création de projet springboot (IntelliJIDEA, springboot 2.0 +mybatis). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. .

Environnement :

JDK8+windows10

ÉtapesNouveau module —>Spring Initializr—>suivant

1

2.

3. Vérifiez web pour le web, vous pouvez décocher sql et l'ajouter plus tard, si MyBatis est coché, une erreur comme la propriété 'sqlSessionFactory' ou 'sqlSessionTemplate' est requise sera signalée . J'ai vérifié ici pour résoudre cette erreur plus tard

Après la sélection, passez simplement à l'étape suivante jusqu'à la fin

Le fichier pom généré automatiquement est le suivant

<?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 http://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.0.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</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-jdbc</artifactId>
        </dependency>
        <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.0.0</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </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>
Copier après la connexion

## Structure du répertoire

Comme il n'y a pas de base de données de configuration ni de fichiers, l'application est vide et le port par défaut est 8080

Nous avons besoin pour l'ignorer au démarrage Configuration de la base de données

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

Utilisez ensuite Postman pour y accéder, en indiquant que le projet est normal

4. Configurez le fichier application.yml de la base de données

server:
  port: 8080
  tomcat:
    uri-encoding: UTF-8
  servlet:
    context-path: /
spring:
  dataSource:
    url: jdbc:mysql://localhost:3306/db-test?useUnicode=true&characterEncoding=utf8&tinyInt1isBit=false
    username: root
    password: 123456
    driverClassName: com.mysql.jdbc.Driver
mybatis:
  mapper-locations: classpath:com/example/demo/mapper/*Mapper.xml #注意:一定要对应mapper映射xml文件的所在路径
  type-aliases-package: com.example.demo.model # 注意:对应实体类的路径
  configuration:
    call-setters-on-nulls: true # 解决使用map类型接收查询结果的时候为null的字段会没有的情况
Copier après la connexion
这时候 com.mysql.jdbc.Driver 标红 说明mysql架包找不到
Copier après la connexion

Supprimez runtime

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
Copier après la connexion

Changez-le simplement par la version par défaut

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
Copier après la connexion

Ensuite, driverClassName revient à la normale

导入 service dao xml (这里没有使用实体类返回,使用的是map返回,所以表我们可以随意自建)

UserController
Copier après la connexion
@Controller
@RequestMapping("/usersDemo")
public class UserController {
    private static Logger log = LoggerFactory.getLogger(UserController.class);
    @Resource
    UserService userService;

    @ResponseBody
    @RequestMapping(value = "/test", produces = "application/json;charset=UTF-8", method = {RequestMethod.POST, RequestMethod.GET})
    public List<Map<String, Object>> test(){
        log.info("进入了test方法!");
        List<Map<String,Object>> list=userService.userQueryAll();
        return list;
    }
}
Copier après la connexion
UserService
Copier après la connexion
public interface UserService {
    List<Map<String, Object>> userQueryAll();
}
Copier après la connexion
UserserviceImpl
Copier après la connexion
@Service
public class UserserviceImpl  implements UserService {
    @Resource
    UserMapper userDao;
    @Override
    public List<Map<String, Object>> userQueryAll() {
        return userDao.userQueryAll();
    }
}
Copier après la connexion

UserMapper

@Mapper
public interface UserMapper {
    List<Map<String, Object>> userQueryAll();
}
Copier après la connexion

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="com.example.demo.dao.UserMapper">
    <select id="userQueryAll" parameterType="Map" resultType="Map">
        SELECT * FROM `users`
    </select>
</mapper>
Copier après la connexion
DemoApplication
Copier après la connexion
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@MapperScan("com.example.demo.dao")
@ComponentScan(basePackages = {"com.example.demo.*"})
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}
Copier après la connexion

D'accord,

accepter L'étape suivante consiste à démarrer

5 Démarrage

Remarque : Si exclure = {DataSourceAutoConfiguration.class}

n'est pas supprimé après l'injection de dépendances, ce qui suit une erreur sera signalée au démarrage :

Causée par : java.lang.IllegalArgumentException : la propriété 'sqlSessionFactory' ou 'sqlSessionTemplate' est requise

Raison d'erreur 1 :

很多人说 创建项目的时候勾选了mybatis导致
  实际上是这个架包的原因
如果不要的话也不能使用mybatis了 
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.0.0</version>
</dependency>
Copier après la connexion

Raison d'erreur 2,

dataSource.type 使用默认的连接池导致的
Copier après la connexion

Solution 1 : Supprimez l'exclusion = {DataSourceAutoConfiguration.class} et il démarrera normalement

Solution 2 : Utiliser d'autres pools de connexions, tel que le pool de connexions Ali Druid

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.13</version>
</dependency>
Copier après la connexion

Puis modifiez spring.dataSource.type=com.alibaba.druid.pool.DruidDataSource

dans application.yml sans supprimer exclure = {DataSourceAutoConfiguration.class }, ce qui n'a en fait pas beaucoup de sens, c'est une erreur de bas niveau

6 Continuez à démarrer, le log

est correct, et puis

comme ceci peut apparaître lors de l'accès à la base de données Erreur

org.apache.ibatis.binding.BindingException : instruction liée non valide (introuvable) : com.example.demo.dao.UserMapper .userQueryAll

Raisons possibles de l'erreur 1 L'identifiant de select dans mapper.xml est mal écrit

Solution : Vérifiez le code

<. 🎜>Cause possible de l'erreur 2. Le programme ne compile pas le fichier XML

Solution : Ajoutez du code à la construction du fichier pom.xml

<resources>
<resource>
    <directory>src/main/java</directory>
    <includes>
        <include>**/*.xml</include>
    </includes>
    <filtering>false</filtering>
</resource>
</resources>
Copier après la connexion
Recommencez :

Réussi

Pom final. Le fichier xml est le suivant

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal