mybatis mapper文件url is not_Spring Boot+Spring mvc+Mybatis的基础框架demo

Spring Boot的设计目的是来简化新Spring应用的初始搭建以及开发过程,大大减少了代码量,通过这篇文章你可以清楚的看到。这是一个基于Spring Boot的简单demo,希望你们可以通过这篇文章大概能看懂这一个简单的框架搭建。

c23f459227ea4e03b655a6284cfee3b2

1、pom.xml

POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。作用类似ant的build.xml文件,功能更强大。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。

<?xml version="1.0" encoding="UTF-8"?>4.0.0com.boot.demo bootdemo 0.0.1-SNAPSHOTbootdemoDemo project for Spring Bootorg.springframework.boot spring-boot-starter-parent 2.0.6.RELEASEUTF-8UTF-81.8org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test testorg.mybatis.spring.boot mybatis-spring-boot-starter 1.3.2tk.mybatis mapper-spring-boot-starter 2.0.4mysql mysql-connector-java 8.0.13org.projectlombok lombok 1.16.20providedorg.apache.tomcat.embed tomcat-embed-jasper javax.servlet jstl org.springframework.boot spring-boot-maven-plugin 

2、application.yml

Spring Boot配置文件有两种:application.yml和application.properties,作用是一样的,不过因为yml文件是树状结构,写起来有更好的层次感,更易于理解,所以很多人都选择了yml文件。

#配置数据源spring: datasource: url: jdbc:mysql://localhost:3306/testdb?characterEncoding=utf8 username: root password: root driver-class-name: com.mysql.jdbc.Driver mvc: view: prefix: /WEB-INF/ suffix: .jsp#配置mybatismybatis: typeAliasesPackage: com.boot.demo.bootdemo.domain mapper-locations: classpath:mapper/*.xml#配置mappermapper: not-empty: false identity: MYSQL#配置Tomcat,默认端口8080server: port: 8081

3、Java Bean

Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法。这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁些。

@Data@Table(name = "user")public class User { @Id @KeySql(useGeneratedKeys = true) private Long id; private String name; private Date createDate;}

4、MyMapper

Tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效。这个插件里面封装好了我们需要用到的很多sql语句,不过这个插件是通过我们去调用它封装的各种方法来实现sql语句的效果。对于单表查询不需要写SQL语句,这样就不用像mybatis那样每次写一个接口就要写一条sql语句。这样大大减少了我们的工作量。

public interface MyMapper extends BaseMapper, MySqlMapper {}

5、UserMapper

通用mapper可以极大的方便开发人员进行ORM,提供极其方便的单表增删改查。什么是通用mapper,一句话简单说,它就是个辅助mybatis极简单表开发的组件。它不是为了替代mybatis,而是让mybatis的开发更方便。例如:第三种方式。

@Mapperpublic interface UserMapper extends MyMapper { //第一种方式,注解sql,方便,但维护性略差 @Select("select * from user") List selectAll(); //第二种方式,xml方式,易维护 int save(User user); //第三种方式:通用mapper,本身提供了很多现成的增删改查sql;例如:int deleteByPrimaryKey()}

6、UserService

@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。

@Servicepublic class UserService { @Resource private UserMapper userMapper; //第一种方式对应的Service public List listAll() { return userMapper.selectAll(); } //第二种方式对应的Service public int saveUser(User user) { return userMapper.save(user); } //第三种方式对应的Service,通用mapper,直接调用现成的增删改查sql public int delUser(Long id) { return userMapper.deleteByPrimaryKey(id); }

}

7、UserController

@RestController注解相当于@ResponseBody + @Controller合在一起的作用。

@RestController@RequestMapping("user")public class UserController { @Resource private UserService userService; //第一种方式对应的Controller @GetMapping(value = "/listUser") public List listAll() { return userService.listAll(); } //第二种方式对应的Controller @GetMapping(value = "/saveUser") public int saveUser() { //new对象是为了测试,没有通过UI界面传参 User user = new User(); user.setName("云帆"); user.setCreateDate(new Date()); return userService.saveUser(user); } //第三种方式对应的Controller @GetMapping(value = "/delUser") public int delUser(Long id) { return userService.delUser(id); }}

8、UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?> insert into user (id, name, create_date) values (#{id}, #{name}, #{createDate}) 

9、BootdemoApplication

@SpringBootApplication注解实际上是SpringBoot提供的一个复合注解。@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。(注意,@MapperScan要用的依赖包是tk.mybatis.spring.annotation.MapperScan,而不是 org.mybatis.spring.annotation.MapperScan,这是一个大坑!)。

package com.boot.demo.bootdemo;import tk.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@MapperScan("com.boot.demo.bootdemo.mapper")public class BootdemoApplication { public static void main(String[] args) { SpringApplication.run(BootdemoApplication.class, args); }}

10、启动Spring Boot项目,这块就比较简单了,通过http://localhost:8081/ +请求。

40b1a2bbd6e641da950b10f54c3ef9d4

有需要编程视频的可以私信小七"学习"哦!需要其他资源的也可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot MyBatis 整合可以使用以下步骤: 1. 新建一个 Spring Boot 项目,并添加 MyBatisSpring MVC 的依赖。 ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 2. 配置 MyBatis 的数据源和 SQLSessionFactory。 ```java @Configuration @MapperScan("com.example.demo.mapper") public class MybatisConfig { @Bean @ConfigurationProperties(prefix = "spring.datasource") public DataSource dataSource() { return new DruidDataSource(); } @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource()); return sessionFactory.getObject(); } } ``` 3. 编写 Mapper 接口和对应的 XML 映射文件。 ```java public interface UserMapper { @Select("SELECT * FROM user WHERE id = #{id}") User getUserById(@Param("id") Integer id); } ``` ```xml <mapper namespace="com.example.demo.mapper.UserMapper"> <select id="getUserById" resultType="com.example.demo.entity.User"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 4. 在 Controller 中注入 Mapper 并使用。 ```java @RestController public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/user/{id}") public User getUserById(@PathVariable Integer id) { return userMapper.getUserById(id); } } ``` 以上就是 Spring Boot MyBatis 整合的基本步骤。需要注意的是,在使用 MyBatis 时,需要在 Mapper 接口上添加 `@Mapper` 注解或使用 `@MapperScan` 注解指定 Mapper 接口所在的包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值