一个项目了解 SpringBoot 集成 MyBatis,一个回答引发热烈讨论

    <plugin>

      <artifactId>maven-clean-plugin</artifactId>

      <version>3.1.0</version>

    </plugin>

    <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->

    <plugin>

      <artifactId>maven-resources-plugin</artifactId>

      <version>3.0.2</version>

    </plugin>

    <plugin>

      <artifactId>maven-compiler-plugin</artifactId>

      <version>3.8.0</version>

    </plugin>

    <plugin>

      <artifactId>maven-surefire-plugin</artifactId>

      <version>2.22.1</version>

    </plugin>

    <plugin>

      <artifactId>maven-war-plugin</artifactId>

      <version>3.2.2</version>

    </plugin>

    <plugin>

      <artifactId>maven-install-plugin</artifactId>

      <version>2.5.2</version>

    </plugin>

    <plugin>

      <artifactId>maven-deploy-plugin</artifactId>

      <version>2.8.2</version>

    </plugin>

  </plugins>

</pluginManagement>



[]( )2.配置文件

=========================================================================



修改配置文件 `application.properties`;



server.servlet.context-path=/sm




数据库配置文件:



#指定连接池类型

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

#指定驱动

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#指定url

spring.datasource.url=jdbc:mysql://localhost:3306/sm

#指定用户名

spring.datasource.username=root

#指定密码

spring.datasource.password=1234




[]( )加入mybatis配置

------------------------------------------------------------------------------



mybatis 的配置:



#指定mapper配置文件位置

mybatis.mapper-locations=classpath:/com/yusael/mapper/*.xml

#指定起别名来的类

mybatis.type-aliases-package=com.yusael.entity




在入口类 `Application` 中添加 `@MapperScan`



@SpringBootApplication

@MapperScan(“com.yusael.dao”)

public class Application {

public static void main(String[] args) {

    SpringApplication.run(Application.class, args);

}

}




[]( )完整的配置文件

--------------------------------------------------------------------------



server.servlet.context-path=/sm

#指定连接池类型

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

#指定驱动

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#指定url

spring.datasource.url=jdbc:mysql://localhost:3306/sm

#指定用户名

spring.datasource.username=root

#指定密码

spring.datasource.password=1234

#指定mapper配置文件位置

mybatis.mapper-locations=classpath:/com/yusael/mapper/*.xml

#指定起别名来的类

mybatis.type-aliases-package=com.yusael.entity




[]( )3\. 数据库建表

============================================================================



在 `sm` 数据库下建立 `t_user` 表:



CREATE TABLE t_user (

id varchar(100) NOT NULL,

name varchar(100) DEFAULT NULL,

age int(11) DEFAULT NULL,

bir datetime DEFAULT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;




[]( )4\. 开发实体类

============================================================================



在 `java.com.yusael.entity` 包下创建 `User` 类;  

![在这里插入图片描述](https://img-blog.csdnimg.cn/2020050500214256.png)



@Data

@AllArgsConstructor

@NoArgsConstructor

@ToString

public class User {

private String id;

private String name;

private Integer age;

private Date bir;

}




[]( )5\. 开发DAO接口以及Mapper

======================================================================================



在 `java.com.yusael.dao` 包下创建 `UserDAO` 类;  

在 `resources.com.yusael.mapper` 下创建 `UserDAOMapper`  

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200505011110386.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_1,color_FFFFFF,t_70)



public interface UserDAO {

void save(User user);

List<User> findAll();

}


<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.yusael.dao.UserDao">



    <!--save-->

    <insert id="save" parameterType="User">

        insert into t_user values (#{id}, #{name}, #{age}, #{bir})

    </insert>



    <!--findAll-->

    <select id="findAll" resultType="User">

        select id,name,age,bir from t_user

    </select>



</mapper> 

```



[]( )6\. 开发Service以及实现

====================================================================================



在 `java.com.yusael.service` 包下创建 `UserService` 类、`UserServiceImpl` 类;  

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200505011201132.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_1,color_FFFFFF,t_70)



```

// 接口

public interface UserService {

    void save(User user);

    List<User> findAll();

} 

// 实现

@Service

@Transactional

public class UserServiceImpl implements UserService {

@Autowired

private UserDAO userDAO;



@Override

public void save(User user) {

    user.setId(UUID.randomUUID().toString());

    userDAO.save(user);

}



@Override

public List<User> findAll() {

    return userDAO.findAll();

}

}




[]( )7\. 编写控制器进行测试

================================================================================



在 `com.yusael.controller` 包下创建 `UserController` 类;  

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200505011310704.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70)



@RestController

@RequestMapping(“user”)

public class UserController {

@Autowired

private UserService userService;



@GetMapping("findAll")

public List<User> findAll() {

    return userService.findAll();

}



@GetMapping("save")

public void save(User user) {

    userService.save(user);

}

}




[]( )完整的项目结构

--------------------------------------------------------------------------



![在这里插入图片描述](https://img-blog.csdnimg.cn/20200505011556811.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_16,color_FFFFFF,t_70)



[]( )开始测试

-----------------------------------------------------------------------



运行项目;



浏览器输入 `localhost:8080/sm/user/save?name=zhangsan&age=25&bir=2012/12/12` 来保存一条记录。



回车,页面看不到什么效果;



浏览器再次输入 `http://localhost:8080/sm/user/findAll` 来查询所有记录;



可以成功的查询出刚刚添加的记录:



[

{

"id": "fb91da88-8a54-4f1b-83e7-09d2217ae2cb",

"name": "zhangsan",

"age": 25,

"bir": "2012-12-11T16:00:00.000+0000"

}

]




尝试多保存几条数据:  

`localhost:8080/sm/user/save?name=lisi&age=21&bir=2011/11/11`  

`localhost:8080/sm/user/save?name=wangwu&age=18&bir=2014/12/11`  

`localhost:8080/sm/user/save?name=zhaoliu&age=19&bir=2011/6/11`



再次查询所有记录: `http://localhost:8080/sm/user/findAll`  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值