Spring boot+Mybatis 框架搭建(一)
Java SSM框架即指Spring+SpringMVC+MyBatis的简称,框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),常作为数据源较简单的web项目的框架。
相比于之前的SSH(Spring+Struts+Hibernate),SSM更加轻量化和灵活,是目前业界主流的Java Web开发框架。

一、新建maven工程(参考https://www.cnblogs.com/jiangger/p/12745235.html)
1.pom.xml引入依赖
<!-->spring-boot启动+web启动<-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-->mybatis<-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!-->连接数据库配置<-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!-->自动生成Getter/Setter方法<-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2. resources/application.yml(配置本地访问端口,数据库相关信息)
server: port: 8080 spring: datasource: driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://数据库库服务器:端口/数据库名称 username: 用户名 password: 密码
二、编写实体类(entry/UserInfo)
package Class4.entity;
import lombok.Getter;
import lombok.Setter;
/**
* @author grjiang
* @description:用户信息实体类,可以直接运用lombok里的Getter/Setter注解,也可以手动填写
* @date 2021-07-02 18:51
*/
@Setter
@Getter
public class UserInfo {
private Integer id;
private Integer age;
private String info;
private String name;
//手动填写
// public Integer getId() {
// return id;
// }
//
// public void setId(Integer id) {
// this.id = id;
// }
//
// public Integer getAge() {
// return age;
// }
//
// public void setAge(Integer age) {
// this.age = age;
// }
//
// public String getInfo() {
// return info;
// }
//
// public void setInfo(String info) {
// this.info = info;
// }
//
// public String getName() {
// return name;
// }
//
// public void setName(String name) {
// this.name = name;
// }
}
三、编写mapper(mapper/UserinfoMapper)
package Class4.mapper;
import Class4.entity.UserInfo;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.type.JdbcType;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author grjiang
* @description:mapper
* @date 2021-07-02 18:47
*/
@Mapper
@Repository
public interface UserinfoMapper {
//查询语句+id用变量表示
@Select({
"select id, age, info, name from test_user_info where id = #{id,jdbcType=TINYINT}"
})
//查询语句返回结果映射到entry/UserInfo类里的变量
@Results({
@Result(column="id", property="id", jdbcType= JdbcType.TINYINT, id=true),
@Result(column="age", property="age", jdbcType=JdbcType.INTEGER),
@Result(column="info", property="info", jdbcType=JdbcType.VARCHAR),
@Result(column="name", property="name", jdbcType=JdbcType.VARCHAR)
})
List<UserInfo> selectById(int id);
//插入
@Insert({
"insert into test_user_info values(#{id,jdbcType=TINYINT},#{age,jdbcType=INTEGER},#{name,jdbcType=VARCHAR},#{info,jdbcType=VARCHAR})"
})
@Results({
@Result(column="id", property="id", jdbcType= JdbcType.TINYINT, id=true),
@Result(column="age", property="age", jdbcType=JdbcType.INTEGER),
@Result(column="info", property="info", jdbcType=JdbcType.VARCHAR),
@Result(column="name", property="name", jdbcType=JdbcType.VARCHAR)
})
int insert(int id, int age,String name,String info);
//修改
@Update({
" update test_user_info set name='jiangger' where id= #{id,jdbcType=TINYINT}"
})
@Results({
@Result(column="id", property="id", jdbcType= JdbcType.TINYINT, id=true),
@Result(column="age", property="age", jdbcType=JdbcType.INTEGER),
@Result(column="info", property="info", jdbcType=JdbcType.VARCHAR),
@Result(column="name", property="name", jdbcType=JdbcType.VARCHAR)
})
int update(int id);
}
四、编写业务控制层(controller/MsqlController),默认访问格式(以查询为例 http://localhost:8080/test/select?id=1)
package Class4.controller;
import Class4.entity.UserInfo;
import Class4.mapper.UserinfoMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.xml.ws.ResponseWrapper;
import java.util.List;
/**
* @author grjiang
* @description:实现
* @date 2021-07-02 19:01
*/
@Controller
@RequestMapping("/test")
public class MysqlController {
@Autowired
UserinfoMapper userinfoMapper;
@RequestMapping(value="/select",method= RequestMethod.GET)
@ResponseBody
public List<UserInfo> select(@RequestParam int id){
return userinfoMapper.selectById(id); //调用mapper里的查询语句,页面传入的id作为参数
}
@RequestMapping(value="/insert",method= RequestMethod.GET)
@ResponseBody
public int add(@RequestParam int id, int age,String name,String info){
return userinfoMapper.insert(id,age,name,info);
}
@RequestMapping(value="/update",method= RequestMethod.GET)
@ResponseBody
public int add(@RequestParam int id){
return userinfoMapper.update(id);
}
}
五、启动类(固定)--一个项目一个启动类
package Class4;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author grjiang
* @description:启动类
* @date 2021-07-02 19:27
*/
@SpringBootApplication
public class MySpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(MySpringbootApplication.class, args);
}
}
五、执行启动类将服务启动,浏览器输入网址即可查看数据库数据


浙公网安备 33010602011771号