当前位置: 首页 > news >正文

springboot同mybatis整合

 springboot和mybatis整合有两种开发模式,首先要做的是配置好开发环境,

实现步骤:

在maven文件pom中配置:

  1)SpringBoot同Mybatis整合的依赖。

<dependency>
   <groupId>com.ruijc</groupId>
   <artifactId>spring-boot-starter-mybatis</artifactId>
   <version>3.2.2</version>
</dependency>

  2)SpringBoot操作数据库需要数据库的jar包(如mysql的jar包),还有需要连接池的jar包。

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid</artifactId>
   <version>1.1.2</version>
</dependency>

3)肯定需要做jdbc属性配置:

  包含连接字符串,用户名,密码,最大连接数等

server:
  address:
192.168.31.212
  port: 10090
  context-path: /three
spring:
  datasource:
    driver-class-name:
com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/bookonline
    username: root
    password: 12345678

第一种:

      注解开发:

1)通过注解的方式开发Mapper接口

 1  package com.jinglin.dao.imp;
 2 
 3 
 4 
 5 import com.jinglin.model.ManagerUser;
 6 
 7 import org.apache.ibatis.annotations.Insert;
 8 
 9 import org.apache.ibatis.annotations.Mapper;
10 
11 import org.apache.ibatis.annotations.Param;
12 
13 
14 
15 /**
16 
17  * Created by sony on 2017/8/2.
18 
19  */
20 
21 @Mapper
22 
23 public interface ManagerUserMapper {
24 
25     @Insert("insert into manageruser(username,userpwd,roleid)" +
26 
27             "values(#{managerUser.username},#{managerUser.userpwd},#{managerUser.roleid})")
28 
29     public int additem(@Param("managerUser")ManagerUser managerUser);
30 
31 }

 

2)开发service层,之前开发的serivice

3)开发controller层,跟之前开发的controller层一样

第二种:

  配置开发模式:

配置mybatis的相关的属性。在resource文件夹下创建一个新的文件夹,该文件夹用以存放mybatis的mapper映射文件。另外就需要在yml配置mybatis的属性:

server:
  address:
192.168.31.212
  port: 10090
  context-path: /three
spring:
  datasource:
    driver-class-name:
com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/bookonline
    username: root
    password: 12345678
mybatis:
  mapper-locations:
classpath*:mybatis/*Mapper.xml

  type-aliases-package: com.jinglin.model

 

其中mapper-locations表示的是mapper映射文件路径

type-aliases-package:数据库映射的实体包名

1)开发dao层:

public interface BookTypeDao extends IDaoShop<BookType> {
}

2)配置映射文件:

1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
3         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
4 <mapper namespace="com.jinglin.dao.imp.BookTypeDao">
5     <insert id="additem" parameterType="BookType">
6         insert into booktype(typename)values(#{typename})
7     </insert>
8 </mapper>

3)将所有的dao层的操作接口全部扫描到spring中,扫描的方式是在启动类中加入注解:

@SpringBootApplication
@MapperScan("com.jinglin.dao.imp")
public class ThreedemoApplication {

   public static void main(String[] args) {
      SpringApplication.run(ThreedemoApplication.class, args);
   }
}

红色标记的就表示将哪个包扫描到spring中。

 

4)后面的开发同之前的一样,开发service层,开发controller层。

 

5) 如果需要在service层的方法里加入事务。采取的是注解的事务开发:

需要在引入事务的方法上加注解@Transactional

 1 @Service
 2 public class BookTypeService {
 3     @Autowired
 4     private BookTypeDao bookTypeDao;
 5     @Transactional
 6     public int additem(BookType bookType){
 7         int i=bookTypeDao.additem(bookType);
 8         BookType booktype2 = new BookType();
 9         booktype2.setTypeid(10);
10         booktype2.setTypename("aaddbddddddweweeeee");
11         i+=bookTypeDao.updateitem(booktype2);
12         return i;
13 
14     }
15 }

总结:springboot开发同ssm基础是一样的,也要搭配环境,首先就是类似springboot同mybatis的整合,1、创建依赖 2、导入操作数据库的jar包 3、做jdbc的连接配置包括连接字符串、用户名,用户密码等。做xml配置文件,需要先创建文件夹存储。必须在yml中配置mybatis。

不同点:在ssm中向页面发送内容一般采用@Responsebody 在springboot中可以用RestController来将其代替。

 

 

   

转载于:https://www.cnblogs.com/gongxuanming/p/7274068.html

相关文章:

  • 博达路由器常见功能教学1
  • 阿特斯副总裁邢国强:2017年底光伏组件成本2元以下
  • python实战===使用随机的163账号发送邮件
  • CSS
  • 刚刚接触的涉及html的工具
  • Net设计模式之简单工厂模式(Simple Factory Pattern)
  • MySQL QA
  • 中文编程是否可行之验证——(一)
  • Provisioning Services 7.6 入门到精通系列之九:创建和配置目标设备
  • 基于OHCI的USB主机 —— 中断处理程序
  • ssh 连接缓慢解决方法
  • 编写优美的GTest测试案例
  • 【转】HBase架构解析
  • JavaScript正则表达式
  • 《Unity3D-控制检测碰撞以后触发的事件之敌人的攻击行为》
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • CSS 提示工具(Tooltip)
  • CSS实用技巧干货
  • express.js的介绍及使用
  • Idea+maven+scala构建包并在spark on yarn 运行
  • PHP的类修饰符与访问修饰符
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 大数据与云计算学习:数据分析(二)
  • 机器学习学习笔记一
  • 跨域
  • 力扣(LeetCode)965
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 协程
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • ​学习一下,什么是预包装食品?​
  • # include “ “ 和 # include < >两者的区别
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (2022 CVPR) Unbiased Teacher v2
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (笔试题)合法字符串
  • (独孤九剑)--文件系统
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • .apk 成为历史!
  • .NET Core Web APi类库如何内嵌运行?
  • .net mvc部分视图
  • .net 托管代码与非托管代码
  • .NET 中让 Task 支持带超时的异步等待
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .Net各种迷惑命名解释
  • .Net下的签名与混淆
  • .NET业务框架的构建
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @RequestBody与@ModelAttribute
  • [\u4e00-\u9fa5] //匹配中文字符
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型
  • [c]扫雷
  • [C++数据结构](31)哈夫曼树,哈夫曼编码与解码