GitHub: https://github.com/291685399/springboot-learning/tree/master/springboot-tkmybatis02
前一篇文章说了怎么使用tkmybatis中给我们提供的CRUD接口,直接调用即可,但是很多情况下提供的接口并不满足所有需求,那么就需要我们自己配置xml文件了
pom.xml:
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-devtoolsartifactId>
<scope>runtimescope>
<optional>trueoptional>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>tk.mybatisgroupId>
<artifactId>mapperartifactId>
<version>4.1.5version>
dependency>
<dependency>
<groupId>tk.mybatisgroupId>
<artifactId>mapper-spring-boot-starterartifactId>
<version>2.1.5version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<scope>runtimescope>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<optional>trueoptional>
dependency>
dependencies>
UserController:
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/findById/{id}")
public User findById(@PathVariable int id) {
User user = userService.findById(id);
return user;
}
@RequestMapping("/findAll")
public List<User> findAll() {
List<User> userList = userService.findAll();
return userList;
}
@RequestMapping("/insert")
public void insert() {
User user = new User();
user.setName("张三");
user.setSex("男");
user.setAge(18);
user.setAddress("江西省");
user.setPhone("456789645");
userService.insert(user);
}
@RequestMapping("/delete")
public void delete() {
User user = new User();
user.setId(5);
userService.delete(user);
}
@RequestMapping("/update")
public void update() {
User user = new User();
user.setId(5);
user.setName("李四");
userService.update(user);
}
}
UserService:
public interface UserService {
public User findById(int id);
public List<User> findAll();
public void insert(User user);
public void update(User user);
public void delete(User user);
}
UserServiceImpl:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User findById(int id) {
return userMapper.selectUserById(id);
}
@Override
public List<User> findAll() {
return userMapper.selectUserList();
}
@Override
public void insert(User user) {
userMapper.insertUser(user);
}
@Override
public void update(User user) {
userMapper.updateUser(user);
}
@Override
public void delete(User user) {
userMapper.deleteUser(user);
}
}
UserMapper:
public interface UserMapper extends Mapper<User> {
public void insertUser(User user);
public void updateUser(User user);
public void deleteUser(User user);
public User selectUserById(int id);
public List<User> selectUserList();
}
UserMapper.xml:
<mapper namespace="com.wyj.mapper.UserMapper">
<insert id="insertUser" parameterType="com.wyj.entity.po.User">
insert into `user`(name,sex,age,address,phone) values (#{name},#{sex},#{age},#{address},#{phone})
insert>
<update id="updateUser" parameterType="com.wyj.entity.po.User">
update `user`
<set>
<if test="name != null and name != ''">
name=#{name},
if>
<if test="sex != null and sex != ''">
sex=#{sex},
if>
<if test="age != 0">
age=#{age},
if>
<if test="address != null and address != ''">
address=#{address},
if>
<if test="phone != null and phone != ''">
phone=#{phone},
if>
set>
where id=#{id}
update>
<delete id="deleteUser" parameterType="com.wyj.entity.po.User">
delete from `user` where id=#{id}
delete>
<select id="selectUserById" parameterType="java.lang.Integer" resultType="com.wyj.entity.po.User">
select id,name,sex,age,address,phone from `user` where id=#{id}
select>
<select id="selectUserList" resultType="com.wyj.entity.po.User">
select id,name,sex,age,address,phone from `user`
select>
mapper>
application.properties:
#tomcat port
server.port=8080
#datasource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://188.131.247.26:3306/springboot-tkmybatis01?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root
spring.datasource.password=root
#logging
logging.level.com.wyj.mapper:debug
#TkMybatis
mybatis.mapper-locations=classpath*:mapper/*.xml
mybatis.type-aliases-package=com.wyj.entity
User:
@Data
@Entity
public class User implements Serializable {
@Id
@KeySql(useGeneratedKeys = true)
private Integer id;
private String name;
private String sex;
private Integer age;
private String address;
private String phone;
}
SpringbootTkmybatisApplication:
@SpringBootApplication
@MapperScan("com.wyj.mapper")//tkmybatis的注解
public class SpringbootTkmybatisApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootTkmybatisApplication.class, args);
}
}