springboot ssm整合


注意事项
springboot会默认扫描启动类下一级,所以代码写在启动类下一级

创建项目

file–>new–>project
选择spring Initializr
在core中选择DevTools
在Web中选择web
在sql中选择MySql和MyBatis

pom

 <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>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--jsp-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- jstl标签库 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <!--json-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.5</version>
        </dependency>

数据库 数据库名test1

CREATE TABLE `user_user` (
  `u_id` int(11) NOT NULL AUTO_INCREMENT,
  `u_age` int(11) DEFAULT NULL,
  `u_name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`u_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

配置文件 application.yml

application.yml等同于application.properties 内容一样但是约束不一样

spring:
  mvc:
    view:
      # 页面默认前缀目录
      prefix: /
      # 响应页面默认后缀
      suffix: .jsp
  datasource:
    username: root
    password: mokong
    url: jdbc:mysql://127.0.0.1:3306/test1?serverTimezone=UTC
mybatis:
  type-aliases-package: com.example
  mapper-locations: classpath:sqlmap/*.xml
logging:
  level:
    com:
      jyj:
        dev: debug

代码

model

package com.example.ssm.User.model;

import java.io.Serializable;

public class User implements Serializable {

    private Integer uId;
    private String uName;
    private Integer uAge;

    public User() {
    }

    public User(Integer uId, String uName, Integer uAge) {
        this.uId = uId;
        this.uName = uName;
        this.uAge = uAge;
    }

    public Integer getuId() {
        return uId;
    }

    public void setuId(Integer uId) {
        this.uId = uId;
    }

    public String getuName() {
        return uName;
    }

    public void setuName(String uName) {
        this.uName = uName;
    }

    public Integer getuAge() {
        return uAge;
    }

    public void setuAge(Integer uAge) {
        this.uAge = uAge;
    }

    @Override
    public String toString() {
        return "User{" +
                "uId=" + uId +
                ", uName='" + uName + '\'' +
                ", uAge='" + uAge + '\'' +
                '}';
    }
}

mapper

不推荐查询语句用注解写

package com.example.ssm.User.dao;

import com.example.ssm.User.model.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Update;

import java.util.*;
@Mapper
public interface UserMapper  {

    @Insert("INSERT INTO test1.user_user (u_age, u_name)VALUES(#{uAge}, #{uName})")
    void addUser(User u);
    @Delete("DELETE FROM test1.user_user WHERE u_id = #{uId}")
    void delUser(User u);
    @Update("UPDATE test1.user_user SET u_age = #{uAge} , u_name = #{uName} where u_id = #{uId} ")
    void updateUser(User u);

    List<User> selectAllUser(User u);
}

userMapper.xml

本文件位置在resources目录下sqlmap

<?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.example.ssm.User.dao.UserMapper">
    <resultMap id="u" type="com.example.ssm.User.model.User">
        <id column="u_id" property="uId"></id>
        <result column="u_name" property="uName"></result>
        <result column="u_age" property="uAge"></result>
    </resultMap>


    <select id="selectAllUser" resultMap="u">
        SELECT 	u_id,
                  u_age,
                  u_name
        FROM
            test1.user_user
    </select>
</mapper>

UserService接口

package com.example.ssm.User.service;

import com.example.ssm.User.model.User;

import java.util.*;

public interface UserService  {
    void addUser(User u);
    void updateUser(User u);
    void delUser(User u);
    List<User> selectAllUser(User u);
}

UserServiceImpi实现类

package com.example.ssm.User.service;

import com.example.ssm.User.dao.UserMapper;
import com.example.ssm.User.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
public class UserServiceImpi implements UserService {
    @Autowired
    private UserMapper userMapper;


    @Override
    public void addUser(User u) {
        userMapper.addUser(u);
    }

    @Override
    public void updateUser(User u) {
        userMapper.updateUser(u);
    }

    @Override
    public void delUser(User u) {
        userMapper.delUser(u);
    }

    @Override
    public List<User> selectAllUser(User u) {
        return userMapper.selectAllUser(u);
    }
}

事务

需要在启动类中加一个注解
@EnableTransactionManagement

测试

package com.example.ssm;

import com.example.ssm.User.model.User;
import com.example.ssm.User.service.UserService;
import com.example.ssm.User.service.UserServiceImpi;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.stereotype.Controller;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest
@EnableTransactionManagement
public class SsmApplicationTests {

    @Test
    public void contextLoads() {
    }
    @Autowired
    private UserService userServiceImpi;
    @Test
    public void selectAllUser(){
        User u = null;
        List<User> users = userServiceImpi.selectAllUser(u);
        for (User user : users){
            System.err.println(user);
        }
    }

    @Test
    public void addUser(){
      User u = new User();
      u.setuName("test");
      u.setuAge(12);
      userServiceImpi.addUser(u);
    }

    @Test
    public void updateUser(){
        User u = new User();
        u.setuId(1);
        u.setuName("test2");
        u.setuAge(12);
        userServiceImpi.updateUser(u);
    }
    @Test
    public void delUser(){
        User u = new User();
        u.setuId(2);
        userServiceImpi.delUser(u);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值