Springboot入门之整合mybatis
1,创建maven工程,在pom.xml中添加jar包依赖。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.travelsky.springboot</groupId> <artifactId>03-springboot-mybatis</artifactId> <version>1.0.0</version> <!--继承springboot父级项目的依赖--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <!--属性配置--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!--springboot开发web项目的起步依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--加载mybatis整合springboot--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <!--MySQL的jdbc驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> <build> <plugins> <!--配置mybatis自动生成器插件--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.6</version> <configuration> <!--配置文件的位置--> <configurationFile>GeneratorMapper.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin> </plugins> </build> </project>
2,创建数据库springbootmb,创建表student
3,创建application.properties文件,指定mapper.xml文件的路径和数据源信息。
#指定mapper.xml文件的路径 mybatis.mapper-locations=classpath:com/travelsky/springboot/mapper/*.xml ######################################################## ###datasource -- 指定mysql数据库连接信息. ######################################################## spring.datasource.url = jdbc:mysql://localhost:3306/springboot spring.datasource.username = root spring.datasource.password = root spring.datasource.driver-class-name=com.mysql.jdbc.Driver
4,将mybatis自动生成器GeneratorMapper.xml放入工程中
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!--指定连接数据库的JDBC驱动包所在位置,指定到你本机的完整路径 需要确保本地maven仓库中是否含有此数据库驱动jar包--> <classPathEntry location="E:/repository/mysql/mysql-connector-java/5.1.41/mysql-connector-java-5.1.41.jar"/> <!--配置table表信息内容体,targetRuntime指定采用mybatis3的版本--> <context id="tables" targetRuntime="MyBatis3"> <!--抑制生成注释,由于生成的注释都是英文的,可以不让它生成--> <commentGenerator> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--配置数据库连接信息 每次需手动修改数据库名和用户名密码--> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/springbootmb" userId="root" password="root"> </jdbcConnection> <!--生成model类,targetPackage指定model类的包名,targetProject指定生成的model放在工程下面那个位置--> <javaModelGenerator targetPackage="com.travelsky.springboot.model" targetProject="src/main/java"> <property name="enableSubPackages" value="false"/> <property name="trimStrings" value="false"/> </javaModelGenerator> <!--生成mapper类,targetPackage指定mapper类的包名,targetProject指定生成的mapper放在工程下面那个位置--> <sqlMapGenerator targetPackage="com.travelsky.springboot.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="false"/> </sqlMapGenerator> <!--生成Mybatis的Mapper.xml文件,targetPackage指定mapper类的包名,targetProject指定生成的mapper.xml放在eclipse哪个工程下面--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.travelsky.springboot.mapper" targetProject="src/main/java"> <property name="enableSubpackages" value="false"/> </javaClientGenerator> <!--数据库表名以及对应的java模型类名 tableName:数据库中表名 domainObjectName:生成的实体类名--> <table tableName="student" domainObjectName="Student" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/> </context> </generatorConfiguration>
5,自动生成model和mapper
在IDEA的Maven Project中刷新一下可以看到mybatis-generator,双击下面的mybatis-gennerator:generate
可以看到控制台BUILD SUCCESS
此时工程下生成了model和mapper
此时算是真正准备好了springboot与mybatis整合的开发环境
6,创建springboot的main方法 application.java,启动springboot程序
加上@SpringBootApplication注解开启自动扫描
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }
7,在生成的mapper接口文件类上加@Mapper注解,或者在运行的主类添加@MapperScan(“com.travelsky.springboot.mapper”)注解扫描
如果加上mapper注解后在接口实现类中注入mapper时候报错,这是IEDA工具报错,按照下图步骤将错误修改为警告即可
8,创建service和controller访问数据库返回json格式数据
@Service public class StudentServiceImpl implements StudentService { @Autowired private StudentMapper studentMapper; @Override public List<Student> getAll() { return studentMapper.selectAll(); } }
@RestController public class MyBatisController { @Autowired private StudentServiceImpl getAllStudentServiceImpl; @ResponseBody @RequestMapping("boot/getAll") public Object getAllStudent(){ //调用service List<Student> list = getAllStudentServiceImpl.getAll(); return list; } }
访问结果: