今天做的是mybatis和Spring简单整合了一下,遇到了许多错误,话不多说,先上代码!
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql:///mybatisdb?useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: root
#SpringBoot整合Mybatis配置
mybatis:
#指定UserMapper.xml文件的位置
mapper-locations: classpath:*.xml
#开启驼峰映射
configuration:
map-underscore-to-camel-case: true
第一步:和数据库建立连接,第四行///后面是数据库名,第五和第六行是用户名和密码。
<?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="cn.dao.UserMapper">
<select id="getAll" resultType="cn.pojo.User">
select * from user
</select>
<insert id="insert" >
insert into user values (#{id},#{name},#{addr},#{age})
</insert>
<delete id="delete">
delete from user where id=#{id}
</delete>
<update id="update">
update user set age=#{age} where addr=#{addr}
</update>
</mapper>
第二步,建立.XML文件,根据自己建立的数据库写sql语句,注意namespce的路径写对。
package cn.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.stereotype.Component;
import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@Component
public class User implements Serializable {
private Integer id;
private String name;
private String addr;
private Integer age;
}
第三步,封装属性,注意不要导错包。
package cn.dao;
import cn.pojo.User;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public interface UserMapper {
List<User> getAll();
void insert(User user);
Integer update( int age,String addr);
Integer delete(int id);
}
第四步,依赖注入。。。注意返回值就行了!
package cn.text;
import cn.dao.UserMapper;
import cn.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 Test1 {
@Autowired
private UserMapper userMapper;
@Test
public void testGetAll(){
List<User> userList=userMapper.getAll();
for (User user: userList)
System.out.println(user);
}
@Test
public void testDelete(){
Integer delete = userMapper.delete(3);
if(delete==1){
System.out.println("删除成功!");
}else System.out.println("删除失败!");
}
@Test
public void testUpdata(){
userMapper.update(20, "上海");
System.out.println("修改成功");
}
@Test
public void testInsert(){
userMapper.insert(new User(null,"sd","sa",89));
System.out.println("插入成功!");
}
}
第五步。在Test里面实现它就可以了。
遇到的报错:1.包导错了。
2.路径不对(三键+s检查一下路径对不对)如图: