**
springboot与mybatis整合
**
在pom.xml文件导入依赖
<!--引入插件lombok 自动的set/get/构造方法插件 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--引入数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--springBoot数据库连接 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--spring整合mybatis 暂时 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
编辑.yml文件
#端口配置
server:
port: 8090
#配置数据源
spring:
datasource:
#如果使用高版本驱动 则添加cj
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
username: root
password: root
#Spring整合Mybatis
mybatis:
#定义别名包
type-aliases-package: com.jt.pojo
#导入映射文件
mapper-locations: classpath:/mappers/*.xml
#开启驼峰映射
configuration:
map-underscore-to-camel-case: true
编辑映射文件UserMapper.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.jt.dao.UserDao">
<!-- 查询-->
<select id="selectList" resultType="com.jt.pojo.User">
select * from user
</select>
<!-- 插入-->
<!-- <insert id="add" parameterType="com.jt.pojo.User">-->
<!-- insert into user values(null ,-->
<!-- <if test="name!=null">name=#{name},</if>-->
<!-- <if test="addr!=null">addr=#{addr},</if>-->
<!-- <if test="age!=null">age=#{age}</if>-->
<!-- )-->
<!-- </insert>--> //这里插入数据会出现自增id插入,其他数据为空
//改造,插入数据加入类型
<insert id="add" parameterType="com.jt.pojo.User">
insert into user values(null ,
#{name,jdbcType=VARCHAR},
#{addr,jdbcType=VARCHAR},
#{age,jdbcType=INTEGER}
)
</insert>
<!--删除-->
<delete id="del" parameterType="com.jt.pojo.User">
delete from user
<where>id=#{id}</where>
</delete>
<!--修改-->
<update id="update" parameterType="com.jt.pojo.User">
update user
<set>
<if test="name!=null">name=#{name}</if>
<!-- <if test="addr!=null">addr=#{addr}</if>-->
<!-- <if test="age!=null">age=#{age}</if>-->
</set>
<where>
<if test="id!=0">id=#{id}</if>
</where>
</update>
</mapper>
编辑映射文件接口
package com.jt.dao;
import com.jt.pojo.User;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public interface UserDao {
List<User> selectList();
void add(User user);
boolean del(Integer id);
void update(Integer id,String name);
}
映射文件
package com.jt.dao;
import com.jt.pojo.User;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public interface UserDao {
List<User> selectList();
void add(User user);
boolean del(Integer id);
void update(Integer id,String name);
}
实体类
package com.jt.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.stereotype.Component;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Component
public class User implements Serializable {
private Integer id;
private String name;
private String addr;
private Integer age;
}
启动类
package com.jt;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.jt.dao")//对映射接口进行包扫描,在编译期有效
public class Demo2Application {
public static void main(String[] args) {
SpringApplication.run(Demo2Application.class, args);
}
}
测试类
package com.jt.test;
import com.jt.dao.UserDao;
import com.jt.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
public class UserTest {
@Autowired
private UserDao userDao;//若出现红警告,是idea警告可以不管,或者alt+回车 把警告改去掉或者在映射接口加入注解@mapper (加入后启动类@mapperScan注解注释掉)
@Autowired
private User user;
@Test
public void selectLict(){
System.out.println(userDao.selectList());
}
@Test
public void add(){
// User user = new User();
user.setId(null).setName("神医").setAddr("镜湖山庄").setAge(25);
userDao.add(user);
}
@Test
public void del(){
System.out.println(userDao.del(4));
}
@Test
public void update(){
userDao.update(7, "太阳");
}
}