Springboot集成MyBatis进行开发
-
引入相关的依赖
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!--引⼊springboot的web⽀持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--引入MySQL的依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <!--引入mybatis整合springboot所使用的依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> <!--springboot连接数据库的驱动jar--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12</version> </dependency> </dependencies>
2.配置application.yml
# spring整合MyBatis配置 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource #连接所使用的数据源 driver-class-name: com.mysql.jdbc.Driver #所使用的驱动类 url: jdbc:mysql://locahost:3306/mybatis1?charsetEncoding=UTF-8 username: root password: root # 配置mapper文件所在的包 mybatis: mapper-locations: classpath:com/wd/mapper/*.xml
application.java
//声明当前文件是一个springboot应用的入口类 @SpringBootApplication //修饰范围:用在类上 标识是springboot的入口类 这个注释只能出现一次 @MapperScan("com.wd.dao") //用来指定Dao接口所在的位置 public class Application { public static void main(String[] args) { //运行springboot的核心方式 SpringApplication.run(Application.class,args); } }
3.建表
在数据库中创建相应的表
4.键实体
在.java文件中引入数据库表中的字段,创建无参,有参构造函数和getter、setter、toString方法。
5.开发dao mapper文件
Userdao.java:定义实现的方法
public interface Userdao { List<user> findAllUser(); user findUserById(@Param("id") int id); }
mapper文件:编写方法的实现
<mapper namespace="com.wd.dao.Userdao"> <select id="findAllUser" resultType="com.wd.entity.user"> select * from t_user </select> <select id="findUserById" resultType="com.wd.entity.user"> select * from t_user where id=#{id} </select> </mapper>
6.开发service接口 开发service实现
service接口:定义要实现的业务功能接口
public interface UserService { List<user> findAllUser(); user findUserById(int id); }
serviceImpl:service接口的实现类,实现接口
@Service //代表在工厂中创建有个service对象 @Transactional //当前类是支持事务的 public class UserServiceImpl implements UserService{ @Resource private Userdao userDao; @Override public List<user> findAllUser() { return userDao.findAllUser(); } @Override public user findUserById(int id) { return userDao.findUserById(id); } }
7.开发controller
@RestController @RequestMapping("/user") public class usercontroller { @Resource private UserService userService; @RequestMapping("/users") public List<user> findUsers(){ System.out.println("************"); return userService.findAllUser(); } /** * 查询单个用户方法 * @return:单个用户对象 * @PathVaribale:代表接收路径中所包含的参数 */ @RequestMapping("/users/{id}") public user findUserById(@PathVariable("id") int id){ System.out.println("id="+ id); return userService.findUserById(id); } }
8.开发声明
1) @RestController:用在类中,声明当前是一个控制器,并且类种所有的方 法返回都是json,RestController=@Controller+@ResponseBody二者结合。
2)@RequestMapper("/user"):可以用在类上,也可以用在方法上;用在类上表示在当前类中所有的方法添加路径,用在方法上代表给当前方法添加路径。
3)以下代码表示:接收RequestMapping中所包含的参数
@RequestMapping("/users/{id}") public user findUserById(@PathVariable("id") int id){ }