暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Springboot集成JPA、Mybatis举例

大数据从业者 2020-04-27
492

一、Springboot与Mybatis集成
1、思路 一是引入mybatis-starter使springboot与mybatis集成
二是完成连接数据库
(1)pom.xml 主要是引入mybatis-spring-boot-starter

    <!-- mybatis新增 begin-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.1.1</version>
    </dependency>
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <!--mybatis end -->

     

    (2)application.properties 添加相关配置

      #mybatis add
      mybatis.type-aliases-package=com.neusoft.demo.domain
      spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
      spring.datasource.url = jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
      spring.datasource.username = root
      spring.datasource.password = root

       

      (3)在启动类中添加对mapper包扫描@MapperScan

        @SpringBootApplication
        @MapperScan("com.neusoft.demo.mapper")
        public class DemoApplication {


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

         

        (4)新建UserController

          package com.neusoft.demo.controller;


          import java.util.List;


          import org.springframework.beans.factory.annotation.Autowired;
          import org.springframework.web.bind.annotation.RequestMapping;
          import org.springframework.web.bind.annotation.RestController;


          import com.neusoft.demo.domain.User;
          import com.neusoft.demo.service.UserService;


          @RestController
          @RequestMapping("/user")
          public class UserController {
          @Autowired
          UserService userService;
          @RequestMapping("/findAll")
          public List<User> findAll(){
          return userService.findAll();
          }


          }

           

          (5)新建Service接口和实现类

            package com.neusoft.demo.service;


            import java.util.List;


            import com.neusoft.demo.domain.User;


            public interface UserService {
            List<User> findAll();


            }




            package com.neusoft.demo.service;


            import java.util.List;


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


            import com.neusoft.demo.domain.User;
            import com.neusoft.demo.mapper.UserMapper;


            @Service
            public class UserServiceImpl implements UserService{
            @Autowired
            UserMapper userMapper;


            @Override
            public List<User> findAll() {
            // TODO Auto-generated method stub
            return userMapper.findAll();
            }


            }

             

            (6)新建UserMapper接口

              package com.neusoft.demo.mapper;


              import java.util.List;


              import org.apache.ibatis.annotations.Select;


              import com.neusoft.demo.domain.User;


              public interface UserMapper {
              @Select("select id,name from user")
              List<User> findAll();


              }

               

              (7)新建表user,varchar类型id和name
              二、springboot与jpa集成
              1、添加依赖

                <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
                </dependency>
                <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                </dependency>

                 

                2、配置数据源和JPA
                配置数据源,在application.properties文件中加入如下信息

                  spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
                  spring.datasource.url = jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
                  spring.datasource.username = root
                  spring.datasource.password = root
                  spring.datasource.tomcat.max-active=20

                   

                  配置JPA,在application.properties配置文件中加入如下信息

                    #连接哪种数据库
                    spring.jpa.database=mysql
                    #查询过程中日志里是否显示查询语句
                    spring.jpa.show-sql=true
                    #自动根据实体创建表
                    spring.jpa.hibernate.ddl-auto=update


                    配置说明

                    ddl-auto:create----每次运行该程序,没有表格会新建表格,表内有数据会清空
                    ddl-auto:create-drop----每次程序结束的时候会清空表
                    ddl-auto:update----每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新
                    ddl-auto:validate----运行程序会校验数据与数据库的字段类型是否相同,不同会报错
                    3、创建实体类

                      package com.neusoft.demo.domain;


                      import javax.persistence.Column;
                      import javax.persistence.Entity;
                      import javax.persistence.GeneratedValue;
                      import javax.persistence.Id;
                      import javax.persistence.Table;


                      import org.hibernate.annotations.GenericGenerator;


                      @Entity
                      @Table(name="person")
                      @GenericGenerator(name="jpa-uuid",strategy="uuid")
                      public class Person {
                      @Id
                      @GeneratedValue(generator="jpa-uuid")
                      @Column(length=32)
                      private String id;
                      @Column(name="name",nullable=true,length=20)
                      private String name;
                      @Column(name="age",nullable=true,length=4)
                      private int age;
                      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 int getAge() {
                      return age;
                      }
                      public void setAge(int age) {
                      this.age = age;
                      }


                      }

                       

                      4、创建接口

                        package com.neusoft.demo.dao;


                        import org.springframework.data.jpa.repository.JpaRepository;


                        import com.neusoft.demo.domain.Person;


                        public interface PersonRepository extends JpaRepository<Person, String>{


                        }

                         

                        5、创建controller

                          package com.neusoft.demo.controller;


                          import java.util.List;


                          import org.springframework.beans.factory.annotation.Autowired;
                          import org.springframework.web.bind.annotation.RequestMapping;
                          import org.springframework.web.bind.annotation.RestController;


                          import com.neusoft.demo.dao.PersonRepository;
                          import com.neusoft.demo.domain.Person;


                          @RestController
                          @RequestMapping("/person")
                          public class JPAController {
                          @Autowired
                          PersonRepository personRepository;
                          @RequestMapping("/add")
                          public String addPerson(Person person) {
                          personRepository.save(person);
                          return "success";
                          }
                          @RequestMapping("/update")
                          public String updatePerson(Person person) {
                          personRepository.save(person);
                          return "success";
                          }
                          @RequestMapping("/del")
                          public String delPerson(String id) {
                          personRepository.deleteById(id);
                          return "success";
                          }
                          @RequestMapping("/findAll")
                          public List<Person> findPerson() {
                          return personRepository.findAll();
                          }


                          }


                          文章转载自大数据从业者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                          评论