首页 > 编程语言 > 详细

springboot+mybtis+maven框架整合

时间:2019-08-22 13:51:35      阅读:233      评论:0      收藏:0      [点我收藏+]

现在好多公司都在使用springboot作为框架,闲暇时间自己也搭建了一个,搭建期间也遇到许多问题,搭建过程就与大伙分享一下。

一、创建SpingBoot工程

在这里使用idea创建springboot工程,因为idea里深度集成了对springboot项目的支持,你直接不停的next到最后,它就会帮你创建出一个springboot工程。

  1. 首先打开idea->Create New project->选择项目类型:这里选择spring initializr,然后next。

技术分享图片

 2.创建项目,填写项目名称

技术分享图片

3.选择项目依赖,也可pom引入,(idea版本不同,依赖名称可能有所改变),然后一路Next

技术分享图片

 

二.、配置pom.xml文件

 1.连接数据库需要mysql驱动,mybatis要用mybatis-spring-boot-starter,创建项目时已经引入过依赖

技术分享图片

2.创建项目pom文件自动生成信息

    <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.1.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>

 

三、配置application全局文件

创建springboot会在src->main->resource目录下生产空白文件application.properties文件,后缀名可修改为yml。

#指定跳转的前缀
spring.thymeleaf.prefix=classpath:/templates/
# 指定跳转页面的后缀
spring.mvc.view.suffix=.html
#加载静态资源
spring.mvc.static-path-pattern=/static/**

#jdbc连接        
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mysql?useUnicode = true&characterEncoding = utf-8&useSSL = false&serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=admin

#代表对应的entity所在路径
mybatis.typeAliasesPackage=com.app.entity.*
#代表Mapper所在的位置。
mybatis.mapper-locations=classpath*:/mapper/*.xml

 

四、配置maven仓库

1.配置maven的settings.xml文件

技术分享图片

技术分享图片

 

2.点击File->settings->Build,Execution,Deployment->Build Tools->Maven

技术分享图片

 3.如果pom文件version里出现红色,这是因为我们引入pom时,这些版本的jar在本地maven仓库还没有,而其它pom里的version没有显示红色,是因为之前的项目用到了这个版本,已经被下载到本地Maven仓库里了。
因此我们需要把本地没有的jar下载到本地仓库,右键pom.xml弹出菜单,选择Maven,弹出菜单选择reimport。

更新可能会有些小慢..

技术分享图片

红色已经消失后,可以在repository仓库中可以看到已下载版本(可以不用去看,只要pom红色消失就可以了...)

技术分享图片

 

五、运行测试

1.上面准备工作已经做完,我们就来测试下试试,在根目录创建一个controller的包,在包中创建一个Java类。

controller访问login.html页面

@Controller
@RequestMapping(value="/tes")
public class Test {

    @RequestMapping(value="/log")
    public String tests(){

        return  "login";
    }

} 

运行后访问地址发现报错404,找不到路径

 技术分享图片

我看了配置和访问路径都正确,原来如果需要使用templates,thyleaf模版,首先Spring boot项目pom文件里需要添加依赖,这样才能找到templates下面的*.html文件

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>  

引入依赖后,右键pom.xml弹出菜单,选择Maven,弹出菜单选择Reimport,再次访问http://localhost:8080/tes/log地址

技术分享图片

 

2.页面访问测试完成,下面可通过访问数据库查询用户数据,千万不要忘记该加的注解一定要加上。

1.entity层

package com.app.entity;

import java.io.Serializable;
public class User implements Serializable {
    private Integer id;
    private String name;
    private String password;
    public User() {}
    public User(int id, String name,String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    }
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name=‘" + name + ‘\‘‘ +
                ", password=‘" + password + ‘\‘‘ +
                ‘}‘;
    }
}

  

 2.controller层

package com.app.controller;
import com.app.entity.User;
import com.app.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(value="/tes")
public class Test {

    @Autowired
    private UserService userService;
    @RequestMapping(value="/log")
    public String tests(){

        return  "login";
    }
    @RequestMapping(value="/data")
    @ResponseBody
    public User test2(){

        return userService.findUser();
    }
}

3.service接口层

package com.app.service;

import com.app.entity.User;
public interface UserService {
    public User findUser();
}

4.service实现层  

package com.app.servierimpl;
import com.app.dao.UserDao;
import com.app.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.app.entity.User;

@Service
public class UserServiceImpl implements UserService {

@Autowired
private UserDao userDao;

    @Override
    public User findUser() {
        return userDao.findUser();
    }

}

5.dao接口层

package com.app.dao;

import com.app.entity.User;
import org.springframework.stereotype.Repository;

@Repository
public interface UserDao {
    public User findUser();
}

6.mapper层,在resources下创建mapper文件,在mapper里添加UserMapper.xml文件增加一个finduser的SQL查询语句。

技术分享图片

 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.app.dao.UserDao">
    <resultMap id="BaseResultMap" type="com.app.entity.User">
        <id column="id" jdbcType="INTEGER" property="id" />
        <result column="name" jdbcType="VARCHAR" property="name" />
        <result column="password" jdbcType="VARCHAR" property="password" />
    </resultMap>
    <sql id="BaseColumnList">
        id, name,password
    </sql>
    <select id="findUser" parameterType="java.lang.Integer" resultMap="BaseResultMap">
        select
        <include refid="BaseColumnList" />
        from test
    </select>
</mapper>

  

找到启动类SpringboottestApplication运行后发现报错org.springframework.beans.factory.UnsatisfiedDependencyException,提示没有扫描到mapper包,那是mapper需要手动在启动类中加入:

package com.app;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
@MapperScan("com.app.dao")
public class SpringboottestApplication {

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

}

技术分享图片

加入后在浏览器输入http://localhost:8080/tes/data,再次运行结果后成功

技术分享图片

 

 

 

 

  

 

 

 

 

 

 

 

 

springboot+mybtis+maven框架整合

原文:https://www.cnblogs.com/zh01/p/11386924.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!