在以下案例的基础上修改
006.MyBatis访问PostgreSQL-常规方式_℡メ㏑╭ァ小凯-CSDN博客
1.在应用主类中增加mapper的扫描包配置
@MapperScan("com.java.core")
2.在扫描包对应下创建Mapper类,前面创建过了,这里需要去掉前面例子的注解
package com.java.core;
import org.apache.ibatis.annotations.*;
@Mapper
public interface UserMapper {
//@Select("SELECT * FROM \"User\" WHERE name = #{name}")
User findByName(@Param("name") String name);
//@Insert("INSERT INTO \"User\"(name, age) VALUES(#{name}, #{age})")
int insert(@Param("name") String name, @Param("age") Integer age);
//@Update("UPDATE \"User\" SET age=#{age} WHERE name=#{name}")
void update(User user);
//@Delete("DELETE FROM \"User\" WHERE id =#{id}")
void delete(Long id);
}
3.配置xml地址
mybatis.mapper-locations=classpath:mapper/*.xml
4.创建MapperXML
<?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.java.core.UserMapper">
<select id="findByName" resultType="com.java.core.User">
SELECT * FROM "User" WHERE NAME = #{name}
</select>
<insert id="insert">
INSERT INTO "User"(NAME, AGE) VALUES(#{name}, #{age})
</insert>
<update id="update">
UPDATE "User" SET age=#{age} WHERE name=#{name}
</update>
<delete id="delete">
DELETE FROM "User" WHERE id =#{id}
</delete>
</mapper>
5.测试调用
@SpringBootTest
class CoreApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
public void testUserController() throws Exception {
// insert一条数据,并select出来验证
userMapper.insert("AAA", 20);
User u = userMapper.findByName("AAA");
// update一条数据,并select出来验证
u.setAge(30);
userMapper.update(u);
u = userMapper.findByName("AAA");
// 删除这条数据,并select验证
userMapper.delete(u.getId());
u = userMapper.findByName("AAA");
}