`
不平凡的人
  • 浏览: 33081 次
  • 性别: Icon_minigender_1
  • 来自: 嘉峪关
社区版块
存档分类
最新评论

spring boot+mybatis示例

阅读更多

本文以简单示例展示spring boot与mybatis的整合过程:

(一)示例的目录结构



 

 

1、pom.xml

<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.oschina</groupId>
  <artifactId>spring-mybatis</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
   <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.10.RELEASE</version>
</parent>


<dependencies>
	    <dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-starter-web</artifactId>
	    </dependency>
	    
    	<!-- 添加Mysql和mybatis-->  
		<dependency>
		    <groupId>mysql</groupId>
		    <artifactId>mysql-connector-java</artifactId>
		</dependency>

        <dependency>  
            <groupId>org.mybatis.spring.boot</groupId>  
            <artifactId>mybatis-spring-boot-starter</artifactId>  
            <version>1.3.1</version>  
        </dependency>  

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

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

  
</project>

 

2、application.properties

server.port=8089
server.context-path=/person
spring.datasource.url=jdbc\:mysql\://127.0.0.1\:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# \u521D\u59CB\u5316\u5927\u5C0F\uFF0C\u6700\u5C0F\uFF0C\u6700\u5927    
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# \u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4    
spring.datasource.maxWait=60000

mybatis.mapper-locations=classpath*:mapper/*.xml
mybatis.type-aliases-package=com.oschina.entity

 

3、启动类

package com.oschina;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

	public static void main(String[] args) {

		SpringApplication.run(Application.class, args);
	}

}

 

4、controller层

package com.oschina.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.oschina.entity.Person;
import com.oschina.server.IPersonService;

@RestController
public class PersonController {

	@Autowired
	private IPersonService personService;

	@GetMapping("/one/{id}")
	public Person findOne(@PathVariable("id") Integer id) {
		return personService.findPersonById(id);
	}

	@GetMapping("/many")
	public List<Person> findAll() {
		return personService.findAll();
	}

	@PostMapping("/insert")
	public void insert(@RequestParam("name") String name, @RequestParam("age") Integer age) {
		personService.insertPerson(name, age);
	}

	@PutMapping("/update/{id}")
	public void update(@PathVariable("id") Integer id, @RequestParam("name") String name,
			@RequestParam("age") Integer age) {
		personService.updatePerson(id, name, age);
	}

	@DeleteMapping("/delete/{id}")
	public void delete(@PathVariable("id") Integer id) {
		personService.deletePerson(id);
	}

}

 

5、service层

package com.oschina.server;

import java.util.List;

import com.oschina.entity.Person;

public interface IPersonService {

	Person findPersonById(Integer id);

	List<Person> findAll();

	void insertPerson(String name, Integer age);

	void updatePerson(Integer id, String name, Integer age);

	void deletePerson(Integer id);
}

 

package com.oschina.server;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.oschina.entity.Person;
import com.oschina.mapper.PersonMapper;

@Service
public class PersonService implements IPersonService {

	@Autowired
	private PersonMapper personMapper;

	@Override
	public Person findPersonById(Integer id) {
		return personMapper.findPersonById(id);
	}

	@Override
	public List<Person> findAll() {
		return personMapper.findAll();
	}

	@Override
	public void insertPerson(String name, Integer age) {
		personMapper.insertPerson(name, age);
	}

	@Override
	public void updatePerson(Integer id, String name, Integer age) {
		personMapper.updatePerson(id, name, age);
	}

	@Override
	public void deletePerson(Integer id) {
		personMapper.deletePerson(id);
	}

}

 

6、mapper层

package com.oschina.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.oschina.entity.Person;

@Mapper
public interface PersonMapper {

	Person findPersonById(@Param("id") Integer id);

	List<Person> findAll();

	void insertPerson(@Param("name") String name, @Param("age") Integer age);

	void updatePerson(@Param("id") Integer id, @Param("name") String name, @Param("age") Integer age);

	void deletePerson(@Param("id") Integer id);
}

 

7、实体类

package com.oschina.entity;

import java.io.Serializable;

public class Person implements Serializable {

	private static final long serialVersionUID = 1L;

	private Integer id;
	private String name;
	private int age;

	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 int getAge() {
		return age;
	}

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

	@Override
	public String toString() {
		return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
	}

}

 

8、mybatis 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.oschina.mapper.PersonMapper">

    <select id="findPersonById" resultType="com.oschina.entity.Person">
         select 
             id AS id,
             name AS name,
             age AS age
         from tbl_person where id=#{id} limit 1    
    </select>
    
    <select id="findAll" resultType="com.oschina.entity.Person">
         select 
             id AS id,
             name AS name,
             age AS age
         from tbl_person
    </select>
    
    <insert id="insertPerson">
       insert into tbl_person(name,age)  
       values(#{name},#{age})
    </insert>
    
    <update id="updatePerson">
      update tbl_person 
      <set>
         name=#{name},
         age=#{age}
      </set>
      where id=#{id}
    
    </update>
    
    <delete id="deletePerson">
     delete from tbl_person where id=#{id}
    </delete>

</mapper>

 

 

 

 

  • 大小: 19.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics