1. 程式人生 > 其它 >ssm框架學習(spring+springboot+mybatis)

ssm框架學習(spring+springboot+mybatis)

簡單的ssm框架學習(Spring+SpringBoot+MyBatis)

專案結構如下

第一步:建立資料庫

(1) 資料庫程式碼(mysql):

create table my_learn.user
(
    id       bigint auto_increment
        primary key,
    username varchar(255) null,
    password varchar(255) null
);

(2) 插入資料:

insert into user values (1,'小紅','123456');
insert into user values (2,'xla','123456');
insert into user values (3,'小王','123456');
insert into user values (4,'小黑','123456');
insert into user values (9,'田智鵬','12345633232');

資料庫建立完成!(以下為資料庫的資料)

第二步:建立一個簡單的SpringBoot專案

(1)以下是所用到的依賴:

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

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

        <!--增加thymeleaf支援,本次專案為restful風格,所以次依賴可有可無!-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
     
    </dependencies>

(2)配置application.propertis檔案:

#專案埠和專案名配置
server.port=8081
server.servlet.context-path=/ems

#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#資料庫配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/my_learn?useUnicode=true&characterEncoding=UTF-8&useSSL=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456

#mybatis的檔案配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.tian.pojo
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#靜態資源的配置
spring.resources.static-locations=classpath:/templates/,classpath:/static/
spring.thymeleaf.cache=false

(3)開發實體類(對應資料庫的欄位):

package com.tian.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private int id;
    private String username;
    private String password;
}

(4) 開發dao層(資料持久層,主要實現對資料的增刪改查操作!):

package com.tian.mapper;

import com.tian.pojo.User;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Component;

import java.util.List;
@Component
@Mapper
public interface UserMapper {

    //分頁查詢全部使用者
    //註解開發不用寫Mapper檔案!@Select("select * from user")
    List<User> listAll();

    //根據id查詢
    //註解開發不用寫Mapper檔案!@Select("select * from user where id = #{id}")
    User selectById(@Param("id") int id);

    //新增使用者
    //註解開發不用寫Mapper檔案!@Insert("insert into user value (#{id},#{username},#{password})")
    int add(User user);

    //根據id刪除使用者
    //註解開發不用寫Mapper檔案!@Delete("delete from user where id = #{id}")
    int delete(@Param("id") int id);

    //更新使用者資訊
    //註解開發不用寫Mapper檔案!@Update("update user set username=#{username},password=#{password} where id = #{id}")
    int updata(User user);
}

(5)開發Mapper檔案(MyBatis框架):

<?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.tian.mapper.UserMapper">

    <select id="list" resultMap="UserMapper">
        select * from user
    </select>
    
    <resultMap id="UserMapper" type="User">
        <id column="id" property="id"></id>
        <result column="username" property="username"></result>
        <result column="password" property="password"></result>
    </resultMap>

    <select id="selectById" resultType="User">
        select * from user where id = #{id}
    </select>

   <insert id="insert" parameterType="int">
        insert into user value (#{id},#{username},#{password})
    </insert>

    <delete id="deleteById" parameterType="int">
        delete from user where id = #{id}
    </delete>

    <update id="update" parameterType="User">
        update user set username=#{username},password=#{password} where id=#{id}
    </update>
</mapper>

(6)開發Service層(呼叫Dao層):

package com.tian.service;

import com.tian.pojo.User;
import com.tian.pojo.Usertest;

import java.util.List;

public interface UserService {

    List<User> list();

    User selectById(int id);

    int insert(User user);

    int add(Usertest usertest);

    int update(Usertest usertest);
    
    int delete(int id);
}

(7) 開發ServiceImpl實現類:

package com.tian.service.impl;

import com.tian.mapper.UserMapper;
import com.tian.pojo.User;
import com.tian.pojo.Usertest;
import com.tian.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    UserMapper userMapper;

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

    @Override
    public User selectById(int id) {
        return userMapper.selectById(id);
    }

    @Override
    public int insert(User user) {
        return userMapper.insert(user);
    }


    @Override
    public int update(User user) {
        return userMapper.update(user);
    }

    @Override
    public int delete(int id) {
        return userMapper.delete(id);
    }
}

(8) 開發controller層(restful風格!):

package com.tian.controller;

import com.tian.mapper.UserMapper;
import com.tian.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @RequestMapping("/list")
    public List<User> list(){
        return userMapper.listAll();
    }

    @RequestMapping("/selectById")
    public User selectbyid(int id){
        return userMapper.selectById(id);
    }

    @RequestMapping("/add")
    String add(User user) {
        return userMapper.add(user) == 1 ? "success" : "failed";
    }

    @RequestMapping("/updatebyid")
    String updateById(User user) {
        return userMapper.updata(user) == 1 ? "success" : "failed";
    }

    @RequestMapping("/delbyid")
    String delById(int id) {
        return userMapper.delete(id) == 1 ? "success" : "failed";
    }

}

(9) 簡單的ssm專案開發完成!(打完手工!)

第三步: 測試ssm專案

(1)測試查尋全部使用者!

(2)測試查尋指定使用者!

(3)測試修改指定使用者!

http://localhost:8006/user/update?id=1,username="小紅被修改",password="654321"

(4)測試刪除一個使用者!

(5)測試增加一個使用者!

http://localhost:8006/user/add?id=10,username="我是被新增進來的",password="654321"

作者 :SmartDragon

郵箱 :[email protected]

歡迎留言詢問哈!