岳麓区做网站济宁seo推广
SpringBoot集成第三方技术,一般都分为导坐标,改配置,写代码三个步骤。
集成Mybatis也类似,新建一个SpringBoot项目。修改:pom.xml文件。
一、导入坐标
<!--druid-->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version>
</dependency>
<!--mybatis-->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version>
</dependency>
<!--mysql-->
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope>
</dependency>
<!--sqlserver-->
<dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><scope>runtime</scope>
</dependency>
<!--lombok-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency>
druid:数据库连接池,也可以用其他的。
mybatis:mybatis包。
mysql:mysql数据库驱动。(根据数据库实际情况引用)
sqlserver:sqlserver数据库驱动。(根据数据库实际情况引用)
lombok:简化实体类开发。
二、修改配置
修改application.yml文件,增加:
spring:
#数据源配置datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: "jdbc:mysql://【IP】:3306/【database】"username: "【用户名】"password: "【密码】"type: com.alibaba.druid.pool.DruidDataSource # 数据库连接池配置#Mybatis
mybatis:mapper-locations: classpath:mapper/*.xml type-aliases-package: com.qingshan.mode
mapper-locations: 定义mapper位置。
type-aliases-package: 为了在 Mapper 对应的 XML 文件中可以直接使用类名,而不用使用全限定的类名。与下文的实体类所在包名对应。
三、编写代码
1.实体类:User.java,注意包名com.qingshan.mode,与上面的 type-aliases-package 对应。
package com.qingshan.model;
import lombok.Data;@Data
public class User {private int id;private String name;
}
2.数据层:UserMapper.java(注意:使用注解Mapper)
package com.qingshan.mapper;import com.qingshan.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;@Mapper
public interface UserMapper {//无参数查询List<User> getAll();//单条件查询User getById(int id);
}
3.业务层:
3.1 先定义个接口。(注意:使用注解Repository)
package com.qingshan.service;import com.qingshan.model.User;
import org.springframework.stereotype.Repository;@Repository
public interface UserService {User getById(int id);
}
3.2 实现接口(注意:使用注解Service、Transactional)
package com.qingshan.service.impl;import com.qingshan.mapper.UserMapper;
import com.qingshan.model.User;
import com.qingshan.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;@Service
@Transactional
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMaper;@Overridepublic User getById(int id) {return userMaper.getById(id);}
}
4.在web层使用,通过AutoWired注入。
package com.qingshan.web;import com.qingshan.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
@RequestMapping("/")
public class HomeController {@Autowiredprivate UserService userService;@GetMapping("/")public String index() {var user = userService.getById(1);System.out.println(user);return "index";}
}