springboot与mybatis的整合之基于注解和基于xml的两种方式

基于注解的参考博客https://www.cnblogs.com/cc11001100/p/7811257.html

①需要导入的jar包

<!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>

②数据库的配置

spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/javajdbctest?useSSL=false
username: root
password: 798657709
driver-class-name: com.mysql.jdbc.Driver
mybatis:
configuration:
#开启结果集自动映射("_"——>驼峰命名)
map-underscore-to-camel-case: true

③mybatis基于注解的映射

@Mapper
@Repository
public interface TestUserDao {
@Select("select user_id,user_name,user_password,user_role,create_time from testuser")
List<User> selectUser();
}

使用接口注解的优点:

  1. 比较方便,快速编写映射语句

使用接口注解的缺点:

  1. 适用于比较简单的配置,当太复杂了接口就搞不定了。

      2. 不能使用动态SQL,有点鸡肋。

④mybatis基于xml的映射

spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/javajdbctest?useSSL=false
username: root
password: 798657709
driver-class-name: com.mysql.jdbc.Driver
mybatis:
configuration:
#开启结果集自动映射("_"——>驼峰命名)
map-underscore-to-camel-case: true
#扫描mapper
mapper-locations: classpath:mapper/*Dao.xml

⑤mapper配置文件

<?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="com.example.demo.dao.TestUserDao">

<select id="selectUserByXml" parameterType="com.example.demo.pojo.User" resultType="com.example.demo.pojo.User">
select user_id,user_name,user_password,user_role,create_time from testuser
<where>
<if test="userId!=null and userId!='' ">
AND user_id = #{userId}
</if>
<if test="userName!=null and userName!='' ">
AND user_name LIKE '%' #{userName} '%'
</if>
<if test="userRole!=null and userRole!='' ">
AND user_role = #{userRole}
</if>
</where>
</select>
</mapper>

⑥面向接口编程

@Mapper
@Repository
public interface TestUserDao {
@Select("select user_id,user_name,user_password,user_role,create_time from testuser")
List<User> selectUser();

/**
* 使用基于xml的映射
* @param user
* @return
*/
List<User> selectUserByXml(User user);
}

⑦测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestUserDaoTest {

@Autowired
private TestUserDao testUserDao;
@Test
public void selectUser() throws Exception {
System.out.println(testUserDao.selectUser());
}
@Test
public void selectUserByXml()throws Exception {
User user = new User();
user.setUserRole(3);
System.out.println(testUserDao.selectUserByXml(user));
}
}

猜你喜欢

转载自blog.csdn.net/weixin_42228338/article/details/81382665