Springboot+MyBatis框架(2)

1.开发环境

Eclipse版本:Oxygen.2 Release (4.7.2)

maven版本:3.5.0

jdk版本:1.8

mysql版本:mysql-5.5.58-winx64

2.过程

2.1 创建maven项目

输入Group Id 和Artifact Id,点击finish就可以创建maven项目了。(因为我已经创建了,所以会提示BOOT项目已存在)

2.2pom.xml里导入spring boot支持和Mybatis的相关依赖

 
  1. <!-- 添加springboot继承 -->

  2. <parent>

  3. <groupId>org.springframework.boot</groupId>

  4. <artifactId>spring-boot-starter-parent</artifactId>

  5. <version>2.0.0.RELEASE</version>

  6. </parent>

  7.  
  8. <dependencies>

  9. <!-- 添加springMVC支持 -->

  10. <dependency>

  11. <groupId>org.springframework.boot</groupId>

  12. <artifactId>spring-boot-starter-web</artifactId>

  13. </dependency>

  14. <!-- MySQL -->

  15. <dependency>

  16. <groupId>mysql</groupId>

  17. <artifactId>mysql-connector-java</artifactId>

  18. </dependency>

  19. <!-- mybatis -->

  20. <dependency>

  21. <groupId>org.mybatis</groupId>

  22. <artifactId>mybatis-spring</artifactId>

  23. <version>1.3.0</version>

  24. </dependency>

  25. <dependency>

  26. <groupId>org.mybatis</groupId>

  27. <artifactId>mybatis</artifactId>

  28. <version>3.2.5</version>

  29. </dependency>

  30. <!-- dbcp连接池 -->

  31. <dependency>

  32. <groupId>commons-dbcp</groupId>

  33. <artifactId>commons-dbcp</artifactId>

  34. <version>1.4</version>

  35. </dependency>

  36. <!-- spring核心 -->

  37. <dependency>

  38. <groupId>org.springframework</groupId>

  39. <artifactId>spring-tx</artifactId>

  40. </dependency>

  41. <dependency>

  42. <groupId>org.springframework</groupId>

  43. <artifactId>spring-jdbc</artifactId>

  44. </dependency>

  45. <dependency>

  46. <groupId>org.springframework</groupId>

  47. <artifactId>spring-aspects</artifactId>

  48. </dependency>

  49. </dependencies>

  50.  
  51. <build>

  52. <finalName>BOOT</finalName>

  53. <plugins>

  54. <!-- 引入java编译器插件 -->

  55. <plugin>

  56. <groupId>org.apache.maven.plugins</groupId>

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

  58. <configuration>

  59. <source>1.8</source>

  60. <target>1.8</target>

  61. <compilerVersion>1.8</compilerVersion>

  62. <encoding>UTF-8</encoding>

  63. </configuration>

  64. </plugin>

  65. <!-- 资源文件拷贝插件 -->

  66. <plugin>

  67. <groupId>org.apache.maven.plugins</groupId>

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

  69. <configuration>

  70. <encoding>UTF-8</encoding>

  71. </configuration>

  72. </plugin>

  73. </plugins>

  74. </build>

这是完整的pom.xml代码文件

2.3完整项目的目录

  

bean:实体类包

config:java配置类

controller:控制层

mapper:持久

service:事务逻辑接口

service.impl:事务逻辑实现类

MainApplication.java:项目入口文件

2.4编写config包下的java配置

2.4.1在src/main/resources下创建jdbc.properties

 
  1. jdbc.driver=com.mysql.jdbc.Driver

  2. jdbc.url=jdbc:mysql://localhost:3306/boot?characterEncoding=utf-8

  3. jdbc.username=

  4. jdbc.password=

2.4.2BootApplication.java

 
  1. package net.stxy.one.config;

  2.  
  3. import javax.sql.DataSource;

  4.  
  5. import org.apache.commons.dbcp.BasicDataSource;

  6. import org.springframework.beans.factory.annotation.Value;

  7. import org.springframework.boot.autoconfigure.SpringBootApplication;

  8. import org.springframework.boot.builder.SpringApplicationBuilder;

  9. import org.springframework.context.annotation.Bean;

  10. import org.springframework.context.annotation.ComponentScan;

  11. import org.springframework.context.annotation.Configuration;

  12. import org.springframework.context.annotation.PropertySource;

  13.  
  14. @Configuration

  15. @PropertySource(value = { "classpath:jdbc.properties" })

  16. @ComponentScan(basePackages = "net.stxy.one")

  17. @SpringBootApplication

  18. public class BootApplication {

  19.  
  20. @Value("${jdbc.driver}")

  21. private String driverClassName;

  22.  
  23. @Value("${jdbc.url}")

  24. private String url;

  25.  
  26. @Value("${jdbc.username}")

  27. private String username;

  28.  
  29. @Value("${jdbc.password}")

  30. private String password;

  31.  
  32. // 配置数据源

  33. @Bean(destroyMethod = "close")

  34. public DataSource dataSource() {

  35. BasicDataSource basicDataSource = new BasicDataSource();

  36. basicDataSource.setDriverClassName(driverClassName);

  37. basicDataSource.setUrl(url);

  38. basicDataSource.setUsername(username);

  39. basicDataSource.setPassword(password);

  40. return basicDataSource;

  41. }

  42.  
  43. protected SpringApplicationBuilder springApplicationBuilder(SpringApplicationBuilder builder) {

  44. return builder.sources(BootApplication.class);

  45. }

  46.  
  47. }

2.4.3MybatisConfig.java

 
  1. package net.stxy.one.config;

  2.  
  3. import javax.sql.DataSource;

  4.  
  5. import org.mybatis.spring.SqlSessionFactoryBean;

  6. import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;

  7. import org.springframework.context.annotation.Bean;

  8. import org.springframework.context.annotation.Configuration;

  9.  
  10. @Configuration

  11. public class MybatisConfig {

  12.  
  13. @Bean

  14. @ConditionalOnMissingBean // 当容器里没有指定的Bean的情况下创建该对象

  15. public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {

  16. SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();

  17. // 设置数据源

  18. sqlSessionFactoryBean.setDataSource(dataSource);

  19. // 设置别名包

  20. sqlSessionFactoryBean.setTypeAliasesPackage("net.stxy.one.bean");

  21. return sqlSessionFactoryBean;

  22. }

  23. }

2.4.4MybatisScannerConfig.java

 
  1. package net.stxy.one.config;

  2.  
  3. import org.mybatis.spring.mapper.MapperScannerConfigurer;

  4. import org.springframework.boot.autoconfigure.AutoConfigureAfter;

  5. import org.springframework.context.annotation.Bean;

  6. import org.springframework.context.annotation.Configuration;

  7.  
  8. @Configuration

  9. @AutoConfigureAfter(MybatisConfig.class) // 保证在MybatisConfig类实例化后才实例化此方法

  10. public class MybatisScannerConfig {

  11. // mapper接口的扫描器

  12. @Bean

  13. public MapperScannerConfigurer mapperScannerConfigurer() {

  14. MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();

  15. mapperScannerConfigurer.setBasePackage("net.stxy.one.mapper");

  16. return mapperScannerConfigurer;

  17. }

  18. }

2.4.5编写过程

在Spring+SpringMVC+Mybatis整合时,用的是xml的配置,现在整合用的是spring的另一种配置方式--java配置方式。可以对照着以往的配置方式来写一个java配置类。例如 MybatisConfig.java编写

xml的配置方式

 
  1. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

  2. <property name="dataSource" ref="dataSource"></property>

  3. <property name="typeAliasesPackage" value="net.stxy.one.model" />

  4. </bean>

再写java配置类时,需要SqlSessionFactoryBean实例化并返回,property就用实例化的类的set方法设置,如下

 
  1. @Bean

  2. public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {

  3. SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();

  4. sqlSessionFactoryBean.setDataSource(dataSource);

  5. sqlSessionFactoryBean.setTypeAliasesPackage("net.stxy.one.bean");

  6. return sqlSessionFactoryBean;

  7. }

到此,mybatis已经整合完毕了。

2.5使用MVC结构测试程序

2.5.1创建数据库和数据表

 
  1. CREATE TABLE `tuser` (

  2. `id` int(11) NOT NULL AUTO_INCREMENT,

  3. `name` varchar(20) DEFAULT NULL,

  4. `password` varchar(18) DEFAULT NULL,

  5. PRIMARY KEY (`id`)

  6. ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

2.5.2创建实体类Tuser.java

 
  1. package net.stxy.one.bean;

  2.  
  3. public class Tuser {

  4. private int id;

  5. private String name;

  6. private String password;

  7. //get 和 set...

  8. }

2.5.3编写Mapper

2.5.3.1TuserMapper.java接口文件

 
  1. public interface TuserMapper {

  2. List<Tuser> getAllUser();

  3. }

2.5.3.2TuserMapper.xml

 
  1. <?xml version="1.0" encoding="UTF-8"?>

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

  3. <mapper namespace="net.stxy.one.mapper.TuserMapper">

  4. <select id="getAllUser" resultType="Tuser">

  5. select * from tuser

  6. </select>

  7. </mapper>

2.5.4编写service

2.5.4.1TuserService.java接口文件

 
  1. public interface TuserService {

  2. List<Tuser> getAllUser();

  3. }

2.5.4.2TuserServiceImpl.java 接口实现文件

 
  1. @Service("tuserService")

  2. public class TuserServiceImpl implements TuserService {

  3. @Autowired

  4. private TuserMapper tuserMapper;

  5.  
  6. @Override

  7. public List<Tuser> getAllUser() {

  8. return tuserMapper.getAllUser();

  9. }

  10.  
  11. }

2.5.5编写控制器TuserController.java

 
  1. @Controller

  2. public class TuserController {

  3. @Autowired

  4. private TuserService tuerService;

  5.  
  6. @RequestMapping("/tuser")

  7. @ResponseBody

  8. public String getUser() {

  9. List<Tuser> users = tuerService.getAllUser();

  10. return users.toString();

  11. }

  12. }

2.6编写项目入口文件MainApplication.java

 
  1. public class MainApplication {

  2. public static void main(String[] args) {

  3. SpringApplication.run(BootApplication.class, args);

  4. }

  5. }

2.7启动并测试

直接启动MainApplication,因为springboot内置了tomcat,所以可以直接运行。运行后,在浏览器输入localhost:8080/tuser进行测试

 

这样就整合完mybatis了。

 

原地址:https://blog.csdn.net/qq_34243622/article/details/79483157

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程简介这是一门使用Java语言,SpringBoot框架,从0开发一个RESTful API应用,接近企业级的项目(我的云音乐),课程包含了基础内容,高级内容,项目封装,项目重构等知识,99%代码为手写;因为这是项目课程;所以不会深入到源码讲解某个知识点,以及原理,但会粗略的讲解下基础原理;主要是讲解如何使用系统功能,流行的第三方框架,第三方服务,完成接近企业级项目,目的是让大家,学到真正的企业级项目开发技术。适用人群刚刚毕业的学生想提高职场竞争力想学从零开发SpringBoot项目想提升SpringBoot项目开发技术想学习SpringBoot项目架构技术想学习企业级项目开发技术就是想学习SpringBoot开发能学到什么从0开发一个类似企业级项目学会能做出市面上90%通用API快速增加1到2年实际开发经验刚毕业学完后能找到满意的工作已经工作学完后最高涨薪30%课程信息全课程目前是82章,155小时,每节视频都经过精心剪辑。在线学习分辨率最高1080P课程知识点1~11章:学习方法,项目架构,编码规范,Postman使用方法,Git和Github版本控制12~16章:搭建开发环境,快速入门SpringBoot框架17~20章:快速入门MySQL数据库21~30章:MyBatis,登录注册,找回密码,发送短信,发送邮件,企业级接口配置31~41章:实现歌单,歌单标签,音乐,列表分页,视频,评论,好友功能42~48章:阿里云OSS,话题,MyBatis-plus,应用监控49~53章:Redis使用,集成Redis,SpringCache,HTTP缓存54~58章:Elasticsearch使用,集成Elasticsearch,使用ES搜索59~61章:商城,集成支付宝SDK,支付宝支付62~64章:常用哈希和加密算法,接口加密和签名65~67章:实时挤掉用户,企业级项目测试环境,企业级接口文档68~69章:SpringBoot全站HTTPS,自签证书,申请免费证书70~73章:云MySQL数据库,云Redis数据库使用,轻量级应用部署环境,域名解析74~80章:Docker使用,生产级Kubernetes集群,域名解析,集群全站HTTPS81~82章:增强和重构项目,课程总结,后续学习计划
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值