springboot实现快速整合mybatis+mysql

springboot如今火爆的程度大有将传统的ssm比下去的势头,究其原因,还是springboot被越来越多的公司使用,其简洁的配置,优秀的封装性,便捷的全注解开发,同时由于和越来越多的其他框架进行了无缝对接和支持,使得springboot被众多的开发者接收和使用。

个人认为springboot其中一个最吸引人的地方在于它的配置相比传统的ssm,ssh等框架上,省去了大量的而且容易出错xml配置,虽然其底层原理大体相同,但确实在项目框架搭建之初能节省大量人力和时间啊,下面将对平时使用最多的ssm框架,用springboot的方式进行整合,以备参考和使用。

项目结构很简单,分为4个包,entity,dao,service,controller,另外一个启动类app

根据个人习惯不同,可以对自己的包结构命名,有一点是,application.properties必须放置在resources目录下,springboot的app启动后会去读取该配置文件。

1)pom.xml文件中主要的依赖包如下:
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
    <relativePath />
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>

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

    <!-- mybatis 与 spring boot 2.x的整合包 -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.2</version>
    </dependency>

    <!--mysql JDBC驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.39</version>
    </dependency>

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

    <!--OKHttp Http 客户端 -->
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>3.10.0</version>
    </dependency>

    <!-- GSON的序列化与反序列化工具包 -->
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.3</version>
    </dependency>

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.3</version>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-logging-juli</artifactId>
        <version>8.0.33</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>

</dependencies>

使用springboot最好把版本号添加上去,不同的版本最依赖的jar包不相同,容易引起项目跑不起来等各种奇葩的问题,建议使用1.5.9或2.x的,前者是发行生产版的,后者是比较新的版本,兼容性较好,不用的包不要过多依赖

2)有人喜欢用yml的配置文件的形式,依据个人习惯而定,application.properties的配置文件如下:

#端口号可以自己指定
server.port=8082
#数据库连接,还可以指定编码格式
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root

#mybatis配置,这是个人实际工作中的配置习惯,有人喜欢在app的启动类上面添加mapperLocations的扫描包注解,
#但是那样对新手容易忘记,下面的方式可以较好的实现与数据库表到实体类之间的驼峰转换
mybatis.type-aliases-package=com.acong.entity
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

#配置log日志
logging.level.com.acong.dao= debug
logging.file=d:/logs/bsbdj.log

#将themilef的默认缓存禁用,热加载生效
spring.thymeleaf.cache=false

#启用分页插件,酌情添加
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true

3)在entity包下新建一个实体bean,TUser,与数据库的表t_user对应,代码如下,
public class TUser {

    private int id;
    private String loginacct;
    private String username;
    private String userpswd;
    private String email;
    private String createtime;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getLoginacct() {
        return loginacct;
    }
    public void setLoginacct(String loginacct) {
        this.loginacct = loginacct;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getUserpswd() {
        return userpswd;
    }
    public void setUserpswd(String userpswd) {
        this.userpswd = userpswd;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getCreatetime() {
        return createtime;
    }
    public void setCreatetime(String createtime) {
        this.createtime = createtime;
    }

}

4)建一个接口,如果采用app添加注解扫描包的形式,此处的@Mapper注解可以省去,但如果是配置文件中指定的话,注解在此处必须加上,否则启动报错
@Mapper
public interface UserDao {

    List<TUser> queryAll();

}

5)创建一个service,如果你喜欢使用面向接口的方式编程,也可以先定接口,再进行实现即可,依据个人习惯而定,同样,此处需要添加注解@Service,
@Service
public class UserService {

    @Autowired
    private UserDao userDao;

    public List<TUser> queryAll() {
        return userDao.queryAll();
    }
}

6)创建一个controller,作为测试使用,一般来说,springboot框架搭建完毕,需要做3方面的测试,框架本身测试,只需要一个controller,写个测试controller,然后浏览器调用,其次是整合mybatis的数据库测试,需要一步步调用测试,第三个是整合了其他的前端数据渲染模板,如jsp,freemaker,此处只做数据库的测试,

@Controller
@RequestMapping("/test")
public class TestController {

    @Autowired
    private UserService userService;

    @RequestMapping(value="/testData")
    @ResponseBody
    public List<TUser> testData(){
        List<TUser> datas = userService.queryAll();
        return datas;
    }

    @RequestMapping(value="/toIndex")
    @ResponseBody
    public Map<String, Object> toIndex(){
        Map<String, Object> map = new HashMap<>();
        map.put("name", "jike");
        map.put("age", 12);
        return map;
    }

    @RequestMapping("/toFirst")
    public String toFirst(){
        return "first";
    }

}

7)xml的配置,此处不再对立面的配置文件作介绍,相信用过的都明白,写个简单的sql语句进行测试,
<?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.acong.dao.UserDao">

    <select id="queryAll" resultType="com.acong.entity.TUser">
        select * from t_user
    </select>

</mapper>

8)以上整合完毕,启动app启动类的main函数:
@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

9)启动完成,控制台没有报错的话,浏览器输入,
    http://localhost:8082/test/testData
    浏览器将返回一个json的对象列表,因为controller中添加了@responsebody的注解会自动解析成json形式

通过以上整合是不是发现springboot整合起来特别简单,没错,如果后期你的项目还需要其他的框架如,rabbitmq,redis等其他的配置,只需要在application.properties中添加即可,就算你是新手,也可以很快的搭建一个可以使用的和ssm具备同样效果的框架。

以上只是springboot整合的基础配置,还有许多的其他功能,各位使用的童鞋可以整合完毕后慢慢琢磨哈!!!拿去不谢!!!

猜你喜欢

转载自blog.csdn.net/zhangcongyi420/article/details/82022028