Mybatis相关文档
IDEA创建SpringBoot项目
IDEA创建Mybatis的XML文件
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starterartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<scope>runtimescope>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-tomcatartifactId>
<scope>providedscope>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>2.0.0version>
dependency>
这里不得不提一下,之前困惑自己很久的一个问题java.lang.IllegalStateException: Failed to load ApplicationContext,刚开始的时候也很懵,以为是自己的接口,实体,xml哪里写错了,再三检查,都感觉没有问题,最后居然是jar包问题,少了mybatis整合SpringBoot的依赖。
项目整体结构如下
# spring datasource
spring.datasource.url=jdbc:mysql://localhost:3306/demo01?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
# mybatis
mybatis.mapper-locations=classpath:mappers/*.xml
package cn.entity;
import java.io.Serializable;
public class Manager implements Serializable {
private static final long serialVersionUID = -7392193417310423379L;
private String managername;
private String isRoot;//管理权限
private String managerpassword;
public static long getSerialVersionUID() {
return serialVersionUID;
}
public String getManagername() {
return managername;
}
public void setManagername(String managername) {
this.managername = managername;
}
public String getIsRoot() {
return isRoot;
}
public void setIsRoot(String isRoot) {
this.isRoot = isRoot;
}
public String getmanagerpassword() {
return managerpassword;
}
public void setmanagerpassword(String managerpassword) {
this.managerpassword = managerpassword;
}
public Manager(String managername, String isRoot, String managerpassword) {
this.managername = managername;
this.isRoot = isRoot;
this.managerpassword = managerpassword;
}
}
建表语句如下
CREATE TABLE `t_manager1` (
`managername` varchar(20) DEFAULT NULL,
`is_manager_root` varchar(20) DEFAULT NULL,
`managerpassword` varchar(20) DEFAULT NULL
)
package cn.mapper;
import cn.entity.Manager;
public interface ManagerInter {
/**
* 添加Manager
* @param manager
* @return 影响行数
*/
Integer insertManager(Manager manager);
}
<mapper namespace="cn.mapper.ManagerInter">
<insert id="insertManager">
insert into t_manager(
managername,is_manager_root,managerpassword
)values (
#{managername},#{isRoot},#{managerpassword}
)
insert>
mapper>
namespace填写的是接口所在的路径
启动类上添加注解@MapperScan(“cn.mapper”),用来指定扫描接口文件的位置
如果每有指定扫描接口文件的位置,那么在@Autowired自动装配的时候就会报异常,找不到该类型的bean对象,异常信息如下:
package cn.mapper;
import cn.entity.Manager;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ManagerTestCase {
@Autowired
public ManagerInter managerInter;
@Test
public void insert() {
Manager manager=new Manager("张三","管理员","123");
Integer rows=managerInter.insertManager(manager);
System.err.println("rows = " + rows);
}
}
测试结果
查看数据库
至此一个简单的demo就已经完成了,跟多详细的使用的方法可以参考Mybatis相关文档