5、springcloud整合mybatis注解方式
1、上一篇学习了服务提供者provider,但是并不是单单就学习了服务提供者。中间还穿插使用了hikari数据源和spring cloud整合mybatis。但是上篇使用mybatis时还是沿用了老的方式,需要配置mapper对应的xml文件。先来看看上篇使用mybatis的主要步骤
一、 pom.xml文件引用
<dependency>
<groupid>org.mybatis</groupid>
<artifactid>mybatis-spring</artifactid>
<version>1.3.2</version>
</dependency>
<dependency>
<groupid>org.mybatis.spring.boot</groupid>
<artifactid>mybatis-spring-boot-starter</artifactid>
<version>1.3.2</version>
</dependency>
二、application.yml配置文件加入mybtias配置项
mybatis:
mapperlocations: classpath:sc/provider/dao/*.xml
#configlocation: classpath:mybatis-config.xml
三、编写mapper文件user-mapper.xml
<?xml version="1.0" encoding="utf-8" ?>
<!doctype mapper public "-//mybatis.org//dtd mapper 3.0//en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="sc.provider.dao.userdao" >
<select id="getuser" parametertype="java.lang.long" resulttype="sc.provider.model.user">
select id, username, age, position from t_user where id = #{id,jdbctype=integer}
</select>
<select id="listuser" resulttype="sc.provider.model.user">
select id, username, age, position from t_user
</select>
<insert id="adduser" parametertype="sc.provider.model.user">
insert into t_user (
id, username, age, position
) values (
#{id,jdbctype=integer},
#{username,jdbctype=varchar},
#{age,jdbctype=integer},
#{position,jdbctype=varchar}
)
</insert>
<update id="updateuser" parametertype="sc.provider.model.user">
update t_user set
username = #{username,jdbctype=varchar},
age = #{age,jdbctype=integer},
position = #{position,jdbctype=varchar}
where id = #{id,jdbctype=integer}
</update>
<delete id="deleteuser" parametertype="java.lang.long">
delete from t_user
where id = #{id,jdbctype=integer}
</delete>
</mapper>
四、编写userdao.java
package sc.provider.dao;
import java.util.list;
import sc.provider.model.user;
public interface userdao {
user getuser(long id);
list<user> listuser();
int adduser(user user);
int updateuser(user user);
int deleteuser(long id);
}
五、 在providerapplication.java添加@mapperscan(basepackages="sc.provider.dao")
经过上面五个步骤才能使用mybatis。本篇将和大家看看不能简化spring cloud 整合mybatis的步骤(在sc-eureka-client-provider工程上改造)
一、 依赖必不可少
<dependency>
<groupid>org.mybatis</groupid>
<artifactid>mybatis-spring</artifactid>
<version>1.3.2</version>
</dependency>
<dependency>
<groupid>org.mybatis.spring.boot</groupid>
<artifactid>mybatis-spring-boot-starter</artifactid>
<version>1.3.2</version>
</dependency>
二、 删除application.yml关于mybatis的配置
三、 删除mapper文件user-mapper.xml文件
四、改造userdao.java类
package sc.provider.dao;
import java.util.list;
import org.apache.ibatis.annotations.delete;
import org.apache.ibatis.annotations.insert;
import org.apache.ibatis.annotations.mapper;
import org.apache.ibatis.annotations.select;
import org.apache.ibatis.annotations.update;
import sc.provider.model.user;
@mapper
public interface userdao {
@select(value="select id, username, age, position from t_user where id = #{id,jdbctype=integer}")
user getuser(long id);
@select(value="select id, username, age, position from t_user")
list<user> listuser();
@insert(value="insert into t_user (id, username, age, position) values ( #{id,jdbctype=integer},#{username,jdbctype=varchar},#{age,jdbctype=integer},#{position,jdbctype=varchar})")
int adduser(user user);
@update(value="update t_user set username = #{username,jdbctype=varchar},age = #{age,jdbctype=integer},position = #{position,jdbctype=varchar} where id = #{id,jdbctype=integer}")
int updateuser(user user);
@delete(value=" delete from t_user where id = #{id,jdbctype=integer}")
int deleteuser(long id);
}
五、 @mapperscan注解必不可少
package sc.provider;
import org.mybatis.spring.annotation.mapperscan;
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
import org.springframework.cloud.netflix.eureka.enableeurekaclient;
@springbootapplication
@enableeurekaclient
@mapperscan(basepackages="sc.provider.dao")
public class providerapplication {
public static void main(string[] args) {
springapplication.run(providerapplication.class, args);
}
}
经过以上步骤就把使用xml方式的mybatis改造成使用annotation方式的mybatis了。
2、启动注册中心sc-eureka-server,启动sc-eureka-client-provider-annotation(使用sc-eureka-client-provider项目改造),验证是否改造成功
方式一:
方式二:
圈住的名字是在application.yml配置的
3、使用postman方法相应restful接口,这里就不一一访问了,可以参考上一篇文章的访问方式
添加:
http://127.0.0.1:8300/user/adduser
查询:
http://127.0.0.1:8300/user/getuser/4
列表:
http://127.0.0.1:8300/user/listuser
更新:
http://127.0.0.1:8300/user/updateuser
删除:
http://127.0.0.1:8300/user/deleteuser/2
推荐阅读
-
SpringCloud系列-整合Hystrix的两种方式
-
SpringBoot系列-整合Mybatis(XML配置方式)
-
SpringBoot系列-整合Mybatis(注解方式)
-
Spring+Spring MVC+Mybatis 框架整合开发(半注解半配置文件)
-
SpringBoot+Mybatis+Durid整合多数据源的三种方式,第一种
-
Spring整合MyBatis的三种方式
-
SpringBoot整合Mybatis注解实战 -- 插入数据
-
springBoot整合MyBatis(传统方式:带xml配置文件)
-
【Mybatis】使用java方式实现SM框架整合
-
day62 JavaWeb框架阶段—— Mybatis的注解开发&SSM框架整合(原始方式整合&Spring整合MyBatis& MyBatis的注解实现复杂映射开发)