spring boot+Mybatis

1.创建项目

 

 

 

Spring boot就搭建好了,pom.xml里已经有了Spring boot的jar包,包括我们的mysql数据连接的jar包

2.测试该spring boot是否可行

src/main/java下新建目录com/lhw/vo/User

package com.lhw.vo;

/**
 * Created by lin.hongwen@ztesoft.com
 *
 * @date 2018年05月06日
 */
public class User {
    private String id;

    private String name;

    private String sex;

    private String age;

    private String address;

    private String phone;

    public User() {
    }

    public User(String id, String name, String sex, String age, String address, String phone) {
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.address = address;
        this.phone = phone;
    }

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

src/main/java下新建com/demo/controller/TestBootController。

package com.lhw.controller;

import com.lhw.vo.User;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created by lin.hongwen@ztesoft.com
 *
 * @date 2018年05月06日
 */
@RestController
@EnableAutoConfiguration
@RequestMapping("/testBoot")
public class TestBootController {

    @RequestMapping("getuser")
    public User getUser(){
        User user = new User();
        user.setName("test");
        return user;
    }
}

src/main/resources下新建application.yml:

#默认使用配置
spring:
  profiles:
    active: dev

#公共配置与profiles选择无关
mybatis:
  mapperLocations: classpath:mapper/*.xml


---

#mysql数据库配置
spring:
  profiles: dev

  datasource:
    url: jdbc:mysql://localhost:3306/lhwtest?useUnicode=true&characterEncoding=UTF-8
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver

启动DemoApplication的main方法,访问http://localhost:8080/testBoot/getuser即可。

以上代表spring boot的测试完成

3.接下来进行和mybatis的整合

1、集成druid,使用连接池。往pom.xml中添加:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.0</version>
</dependency>

完整pom:

<?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>

    <groupId>com.lhw</groupId>
    <artifactId>springbmybaties2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>springbmybaties2</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </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-data-jpa</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>1.3.2</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>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>
View Code

修改application.yml为:

#默认使用配置
spring:
  profiles:
    active: dev

#公共配置与profiles选择无关
mybatis:
  mapperLocations: classpath:mapper/*.xml #这里是配置mybatis的配置文件。这个mapper这个目录在resource下


---

#mysql数据库配置
spring:
  profiles: dev

  datasource:
    url: jdbc:mysql://localhost:3306/lhwtest?useUnicode=true&characterEncoding=UTF-8
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource

创建dao类

package com.lhw.dao;

import com.lhw.vo.User;

/**
 * Created by lin.hongwen@ztesoft.com
 *
 * @date 2018年05月06日
 */
public interface UserDao {
    /**
     * 查询user
     * @param id
     * @return
     */
    User selectByPrimaryKey(String id);
}

在resouces的mapper下创建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.lhw.dao.UserDao" >
    <resultMap id="BaseResultMap" type="com.lhw.vo.User" >
        <constructor >
            <idArg column="id" jdbcType="VARCHAR" javaType="java.lang.String" />
            <arg column="name" jdbcType="VARCHAR" javaType="java.lang.String" />
            <arg column="sex" jdbcType="VARCHAR" javaType="java.lang.String" />
            <arg column="age" jdbcType="VARCHAR" javaType="java.lang.String" />
            <arg column="address" jdbcType="VARCHAR" javaType="java.lang.String" />
            <arg column="phone" jdbcType="VARCHAR" javaType="java.lang.String" />
        </constructor>
    </resultMap>

    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
        select id, name, sex, age, address, phone
        from user
        where id = #{id,jdbcType=VARCHAR}
    </select>
</mapper>

添加controller

package com.lhw.controller;

import com.lhw.service.UserService;
import com.lhw.vo.User;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

/**
 * Created by lin.hongwen@ztesoft.com
 *
 * @date 2018年05月06日
 */
@RestController
@EnableAutoConfiguration
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService userService;

    @RequestMapping("/showUser")
    public User toIndex(HttpServletRequest request, Model model){
        String userId = request.getParameter("id");
        User user = this.userService.getUserById(userId);
        return user;
    }
}

添加service

package com.lhw.service;

import com.lhw.vo.User;

/**
 * Created by lin.hongwen@ztesoft.com
 *
 * @date 2018年05月06日
 */
public interface UserService {
    User getUserById(String userId);
}

添加service实现类

package com.lhw.service;

import com.lhw.dao.UserDao;
import com.lhw.vo.User;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

/**
 * Created by lin.hongwen@ztesoft.com
 *
 * @date 2018年05月06日
 */
@Service("userService")
public class UserServiceImpl implements UserService{

    @Resource
    private UserDao userDao;

    @Override
    public User getUserById(String userId) {
        return userDao.selectByPrimaryKey(userId);
    }
}

最后修改启动文件,让其扫描dao层接口。

package com.lhw;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
@MapperScan("com.lhw.dao")
public class Springbmybaties2Application extends SpringBootServletInitializer{

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

浏览器访问http://localhost:8080/user/showUser?id=1

至此spring boot+mybatis框架搭建完成

 **这里的数据库和创建表,是使用springMVC+mybatis的

posted @ 2018-05-06 15:29  林被熊烟岛  阅读(124)  评论(0)    收藏  举报