基于注解的参考博客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));
}
}