Heim > Java > javaLernprogramm > Hauptteil

Tutorial zur Springboot-Projekterstellung (IntelliJIDEA, Springboot 2.0 + Mybatis)

不言
Freigeben: 2019-03-08 15:44:08
nach vorne
4823 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit dem Tutorial zur Springboot-Projekterstellung (IntelliJIDEA, Springboot 2.0 + Mybatis). Ich hoffe, dass es für Sie hilfreich ist. .

Umgebung:

JDK8+Windows10

SchritteNeues Modul –>Spring Initializr –>nächster

1

2.

3. Überprüfen Sie Web auf Web. Sie können SQL deaktivieren und später hinzufügen, wenn MyBatis aktiviert ist, wird ein Fehler wie die Eigenschaft „sqlSessionFactory“ oder „sqlSessionTemplate“ gemeldet . Ich habe hier nachgeschaut, um diesen Fehler später zu beheben

Nach der Auswahl gehen Sie einfach zum nächsten Schritt bis zum Ende

Die automatisch generierte POM-Datei sieht wie folgt aus

<?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>
Nach dem Login kopieren

## Verzeichnisstruktur

Da es keine Konfigurationsdatenbank und keine Dateien gibt, ist die Anwendung leer und der Standardport ist 8080

Wir müssen ignorieren die Datenbankkonfiguration beim Start

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

Dann verwenden Sie Postman, um darauf zuzugreifen und anzuzeigen, dass das Projekt normal ist

4. Konfigurieren Sie die Datenbankanwendung.yml-Datei

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的字段会没有的情况
Nach dem Login kopieren
这时候 com.mysql.jdbc.Driver 标红 说明mysql架包找不到
Nach dem Login kopieren

Entfernen Sie runtime, was bedeutet, dass dies nicht der Fall ist wird zur Laufzeit benötigt, wird aber tatsächlich benötigt. Ändern Sie einfach den

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
Nach dem Login kopieren

in die Standardversion

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
Nach dem Login kopieren

und dann kehrt der DriverClassName zum Normalzustand zurück

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

UserController
Nach dem Login kopieren
@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;
    }
}
Nach dem Login kopieren
UserService
Nach dem Login kopieren
public interface UserService {
    List<Map<String, Object>> userQueryAll();
}
Nach dem Login kopieren
UserserviceImpl
Nach dem Login kopieren

UserMapper

@Service
public class UserserviceImpl  implements UserService {
    @Resource
    UserMapper userDao;
    @Override
    public List<Map<String, Object>> userQueryAll() {
        return userDao.userQueryAll();
    }
}
Nach dem Login kopieren

UserMapper.xml

@Mapper
public interface UserMapper {
    List<Map<String, Object>> userQueryAll();
}
Nach dem Login kopieren
<?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>
Nach dem Login kopieren
DemoApplication
Nach dem Login kopieren

Okay,

Der nächste Schritt besteht darin,

5 Startup

Hinweis: Falls nicht, zu starten Ausschließen = {DataSourceAutoConfiguration.class} nach Abhängigkeitsinjektion entfernt,

Der folgende Fehler wird beim Start gemeldet:

Verursacht durch: java.lang.IllegalArgumentException: Eigenschaft 'sqlSessionFactory' oder 'sqlSessionTemplate' sind erforderlich

Fehlergrund 1:

@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);
    }

}
Nach dem Login kopieren

Fehlergrund 2,

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

Lösung 1: Entfernen Sieexclude = {DataSourceAutoConfiguration.class}, und Sie können normal starten

Lösung 2: Verwenden Sie andere Verbindungspools, z. B. den Alibaba Druid-Verbindungspool

dataSource.type 使用默认的连接池导致的
Nach dem Login kopieren

, und ändern Sie dann spring.dataSource.type=com.alibaba.druid.pool.DruidDataSource

in application.yml ohne zu löschenexclude = {DataSourceAutoConfiguration.class} , tatsächlich ist es von geringer Bedeutung und ein Fehler auf niedriger Ebene

6 Fahren Sie fort Zunächst

das Protokoll ist korrekt, und dann kann es beim Zugriff auf die Datenbank erscheinen

Ein solcher Fehler

org.apache.ibatis.binding.BindingException: Ungültige Bindung Anweisung (nicht gefunden): com.example.demo.dao.UserMapper.userQueryAll

Mögliche Fehlerursache 1 Die ID von select in der XML-Datei

Lösung: Code zum Erstellen der pom.xml-Datei hinzufügen

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.13</version>
</dependency>
Nach dem Login kopieren

Neu starten: Erfolgreich

Die endgültige pom.xml-Datei ist wie folgt folgt

<resources>
<resource>
    <directory>src/main/java</directory>
    <includes>
        <include>**/*.xml</include>
    </includes>
    <filtering>false</filtering>
</resource>
</resources>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonTutorial zur Springboot-Projekterstellung (IntelliJIDEA, Springboot 2.0 + Mybatis). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage