<dependency> <groupId>MysqL</groupId> <artifactId>MysqL-connector-java</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency>@H_502_0@application.properties中加入
#dateSource spring.datasource.driverClassName=com.MysqL.cj.jdbc.Driver spring.datasource.url=jdbc:MysqL://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false spring.datasource.username=root spring.datasource.password=root # mybatis # 下划线转驼峰开启 mybatis.configuration.map-underscore-to-camel-case=true # mapper扫描位置 mybatis.mapper-locations=classpath:mapper/*.xml@H_502_0@需要说明的是,我引入的MysqL驱动为 com.MysqL.cj.jdbc.Driver,而不是 com.MysqL.jdbc.Driver。以下是一些参数的说明;
- serverTimezone:该驱动需要指定某时区。
- useUnicode:开启指定编码。
- characterEncoding:指定读取数据库的编码,因为项目采用UTF-8,存取数据库信息时保持一致。
- useSSL:是否建立SSL连接,我显示选的否,因为这要为服务器证书验证提供信任库,暂时没条件。
CREATE TABLE USER_INFO ( user_id DECIMAL(10) PRIMARY KEY NOT NULL,user_name VARCHAR(20) DEFAULT "" NOT NULL ); CREATE UNIQUE INDEX USER_INFO_user_id_uindex ON USER_INFO (user_id); ALTER TABLE USER_INFO COMMENT = '用户基本信息表';@H_502_0@插入数据
INSERT INTO test.user_info (user_id,user_name) VALUES (1,'特朗普'); INSERT INTO test.user_info (user_id,user_name) VALUES (2,'唐纳德');@H_502_0@现在的项目路径为 @H_502_0@
@H_502_0@在SpringBoot的入口类中加 @MapperScan 注解,以扫描 DAO 类,不用在每个dao接口加个@Mapper 注解。
package com.example; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.example.dao") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class,args); } }@H_502_0@注:如果没有分拆项目成微服务架构,或分布式架构,application主类中的@SpringBootApplication自动会扫描本包中的@Controller,@Service,@Resource等,是不需要浪费另一行@ComponentScan注解,配置路径的。 @H_502_0@UserController.java
package com.example.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.example.service.IUserService; @Controller @RequestMapping("user") public class UserController { @Autowired private IUserService userService; @RequestMapping("/queryUser") @ResponseBody void queryUser() { this.userService.queryUser(); } }@H_502_0@IUserService.java
package com.example.service; public interface IUserService { void queryUser(); }@H_502_0@UserServiceIml.java
package com.example.service; import com.example.dao.UserDao; import com.example.entity.UserEntity; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; @Service("userService") public class UserServiceIml implements IUserService { @Resource private UserDao userDao; @Override public void queryUser() { List<UserEntity> userList = this.userDao.queryUser(); System.out.println("================"); System.out.println(userList); System.out.println("================"); } }@H_502_0@注:如果是SSM架构过来的,这个@Resource注解可能比较陌生,因为我估计会和我之前一样用@Autowired,但是我是没有在dao层用 @Repository 注解的,之前用了在主类用了@MapperScan自动去扫描所有的dao,所以不能再用之前的@Autowired。 @H_502_0@UserDao.java
package com.example.dao; import com.example.entity.UserEntity; import java.util.List; public interface UserDao { List<UserEntity> queryUser(); }@H_502_0@UserEntity.java
package com.example.entity; public class UserEntity { private long userId; private String userName; public long getUserId() { return userId; } public void setUserId(long userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } @Override public String toString() { return "UserEntity{" + "userId=" + userId + ",userName='" + userName + '\'' + '}'; } }@H_502_0@如果你运行不成功,请对比引入的包的版本,和数据库配置是否是根据你本地的,顺便看看注解是否和文中一样。 @H_502_0@效果图如下; @H_502_0@
@H_502_0@注:如果是跟着本教程来的,因为一开始就引入了spring security,而新增的路径不在刚才的权限中,所以我给zs用户改成了user下的皆可访问。如果没有跟着之前配置spring security,无需理会如下内容
//http.authorizeRequests().antMatchers("/user/addUser").hasRole("AAA") http.authorizeRequests().antMatchers("/user/**").hasRole("AAA")@H_502_0@总结 @H_502_0@以上所述是小编给大家介绍的springboot快速整合Mybatis组件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!