ssm框架學習(spring+springboot+mybatis)
阿新 • • 發佈:2021-07-11
簡單的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
歡迎留言詢問哈!