Springboot-Mybatis(增删改查)

(1) pom.xml

    <!-- -starter-parent -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.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>

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

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

        <!-- -configuration-processor -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- mybatis-spring-boot -->
        <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>


    </dependencies>

 

(2) application.properties

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql:///springboot_mybatis
spring.datasource.username=root
spring.datasource.password=root

 

(3) 数据表

DROP TABLE IF EXISTS `account`;

CREATE TABLE `account` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL,
`money` DOUBLE DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

INSERT INTO `account` VALUES (NULL, 'aaa', '1000');
INSERT INTO `account` VALUES (NULL, 'bbb', '2000');
INSERT INTO `account` VALUES (NULL, 'ccc', '3000');

SELECT * FROM Account;

 

(4)  Account.java

public class Account {

    private int id;
    private String name;
    private double money;

        // get / set 方法省略 .... ....

    @Override
    public String toString() {
        return "ID: " + id + ", Name: " + name + ", Money: " + money;
    }

}

 

     IAccountMapper.java

@Mapper
public interface IAccountMapper {

    @Select("select id, name as name, money as money from account")
    List<Account> findList();
    
    @Select("select id, name as name, money as money from account where id = #{id}")
    Account findById(@Param("id") int id);

    @Insert("insert into account(name, money) values(#{name}, #{money})")
    int add(@Param("name") String name, @Param("money") double money);

    @Update("update account set name = #{name}, money = #{money} where id = #{id}")
    int update(@Param("name") String name, @Param("money") double money, @Param("id") int  id);

    @Delete("delete from account where id = #{id}")
    int delete(int id); 
    
}

 

     IAccountService.java

public interface IAccountService {
    
    List<Account> findList();

    Account findById(int id);

    int add(Account account);

    int update(Account account);

    int deleteById(int id);

}

 

      AccountServiceImpl.java

@Service
@Transactional
public class AccountServiceImpl implements IAccountService {
    
    @Autowired
    private IAccountMapper accountMapper;

    public List<Account> findList() {
        return accountMapper.findList();
    }

    public Account findById(int id) {
        return accountMapper.findById(id);
    }

    public int add(Account account) {
        return accountMapper.add(account.getName(), account.getMoney());
    }

    public int update(Account account) {
        return accountMapper.update(account.getName(), account.getMoney(), account.getId());
    }

    public int deleteById(int id) {
        return accountMapper.delete(id);
    }

}

 

    AccountController.java

@RestController
@RequestMapping("/account")
public class AccountController {

    @Autowired
    private IAccountService accountService;

    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public List<Account> findAccounts() {
        return accountService.findList();
    }

    @RequestMapping(value = "/findone/{idd}", method = RequestMethod.GET)
    public Account findById(@PathVariable("idd") Integer id) {
        return accountService.findById(id);
    }

    @RequestMapping(value = "/delete/{id}")
    public String deleteById(@PathVariable("id") Integer id) {
        accountService.deleteById(id);
        return "SUCCESS!";
    }

    @RequestMapping(value = "/update")
    public String update(//
            @RequestParam(value = "id") Integer id, //
            @RequestParam(value = "name", required = true) String name, //
            @RequestParam(value = "money", required = true) double money) {

        Account account = accountService.findById(id);
        account.setName(name);
        account.setMoney(money);
        accountService.update(account);

        return "SUCCESS!";
    }

    @RequestMapping(value = "/add")
    public String add(//
            @RequestParam(value = "name", required = true) String name, //
            @RequestParam(value = "money", required = true) double money) {

        Account account = new Account();
        account.setName(name);
        account.setMoney(money);
        accountService.add(account);

        return "SUCCESS!";
    }
}

  AppBoot.java

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

 

 =================  分页查询  ===================

(1) pom.xml

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

(2) application.properties

### Springboot分页插件
logging.level.com.example.demo.dao=DEBUG
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
pagehelper.page-size-zero=true 

(3) 数据表[同上]

(4)  Account.java [同上] 

     IAccountDao.java [同上] 

    AccountDaoImpl.java [同上] 

     IAccountService.java [同上] 

      AccountServiceImpl.java [同上] 

    AccountController.java

    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public List<Account> findList() {
        return accountService.findList();
    }

    @RequestMapping(value = "/pageList", method = RequestMethod.GET)
    public List<Account> findPageList() {
        // 分页处理
        PageHelper.startPage(1, 4); // 1 表示第一页; 4 表示每页显示4条数据
        List<Account> list = accountService.findList();
        
        //取分页信息
        PageInfo<Account> pageInfo = new PageInfo<Account>(list);
        System.out.println(pageInfo.getTotal());
        
        return list;
    }
    

 

 

 

 

================== 最后总结: ===================

 

(1) pom.xml / application.properties / 数据表

 

     Account.java

    JdbcTemplate

      JPA( @Entity / @Id, @GenereatedValue, @Column )

    Mybatis

 

     IAccountDao.java

    JdbcTemplate(AccountDaoImpl.java / @Repository, jdbcTemplate)

        JPA( IAccountDao extends JpaRepository<Account, Integer> () {  } )

        Mybatis( IAccountMapper.java / @Mapper, @Select/@Insert/@Update/@Delete(sql) )

 

 (2) 注解总结: 

    @Component / @Repository / @Service / @Controller / @RestController 

  @ResponseBody / @RequestMapping

  @PathVariable / @RequestParam / @RequestBody

 

  @Configuration / @ComponentScan / @EnableAutoConfiguration / @SpringBootApplication 

  // JPA

  @EntityScan / @EnableJpaRepository / 

  // Mybatis

  @MapperScan

// JdbcTemplate
@SpringBootApplication // @Configuration + @ComponentScan(当前包) + @EnableAutoConfiguration(当前包)
// JPA
@EntityScan(basePackages = {"cn.mayi.springboot.jpa.entity"})
@EnableJpaRepositories(basePackages = {"cn.mayi.springboot.jpa.dao"})
//Mybatis
@MapperScan(basePackages = {"cn.mayi.springboot.mybatis.dao"})
public class AppBoot {
    public static void main(String[] args) {
        SpringApplication.run(AppBoot.class, args);
    }
}

 

posted @ 2018-06-26 21:03  enocyon  阅读(106)  评论(0)    收藏  举报