目录
- 一、创建一个springboot工程
- 1、在pom中添加数据库依赖:
- 2、创建包(如果用逆向工程,这步可以省略,会自动生成):
- 二、配置application.properties
- 配置mapper.xml
- 方法一
- 方法二
- 用Mybatis提供的逆向工程生成实体bean,映射文件,DAO接口
- 测试Mybatis
一、创建一个springboot工程
1、在pom中添加数据库依赖:
<!--MYSQL驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--Mybatis整合springboot的起步依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
注:在之后的实践中,这一步会报错,需要在pom中添加:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
2、创建包(如果用逆向工程,这步可以省略,会自动生成):
二、配置application.properties
注:如果添加了mysql依赖直接运行的话会报错,需要配置下面的内容
#设置连接数据库的配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/learn_springboot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
配置mapper.xml
方法一
配置pom.xml
原因:如果没有这段代码,会发现编译文件target文件中没有xml文件,运行会报错,找不到sql!!!!!(两个resource必须都有,如果只有第一个,则resources中的配置文件就扫描不到,会报错)
<!--手动指定文件夹为resources-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
方法二
在resources中创建一个dictionary
并把mapper中的xml(逆向工程自动生成)移动到这里
配置application.properties
#指定MyBatis映射文件的路径
mybatis.mapper-locations=classpath:mapper/*.xml
用Mybatis提供的逆向工程生成实体bean,映射文件,DAO接口
项目根目录创建 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驱动包所在位置,指定到你本机的完整路径 -->
<classPathEntry location="D:/course/repository/mysql/mysql-connector-java/5.1.43/mysql-connector-java-5.1.43.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/learn_springboot"
userId="root"
password="123456">
</jdbcConnection>
<!-- 生成model类,targetPackage指定model类的包名, targetProject指定生成的model放在eclipse的哪个工程下面-->
<javaModelGenerator targetPackage="com.zhw.springboot.model" targetProject="src/main/java">
<property name="enableSubPackages" value="false" />
<property name="trimStrings" value="false" />
</javaModelGenerator>
<!-- 生成MyBatis的Mapper.xml文件,targetPackage指定mapper.xml文件的包名, targetProject指定生成的mapper.xml放在eclipse的哪个工程下面 -->
<sqlMapGenerator targetPackage="com.zhw.springboot.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- 生成MyBatis的Mapper接口类文件,targetPackage指定Mapper接口类的包名, targetProject指定生成的Mapper接口放在eclipse的哪个工程下面 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.zhw.springboot.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 数据库表名及对应的Java模型类名 -->
<table tableName="t_student" domainObjectName="Student"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"/>
</context>
</generatorConfiguration>
是需要稍作修改的
pom中添加代码自动生成插件
<!--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>
点击生成:
原因:
这个包必须在这个路径下,所以找到我们电脑上这个的路径,或者下载,
改成可以找到的路径:
再次点击生成:
这样的话代码分3层,1层已经写完了!!!!
测试Mybatis
创建Controller类
@Controller
public class StudentController {
@Autowired
private StudentService studentService;
@RequestMapping("/student")
@ResponseBody
public Object student(Integer id){
Student student=studentService.queryStudentById(id);
return student;
}
}
会发现Service报错
创建接口和实现类
@Service
public class StudentServiceImpl implements StudentService {
@Autowired
private StudentMapper studentMapper;
@Override
public Student queryStudentById(Integer id) {
Student student= studentMapper.selectByPrimaryKey(id);
return student;
}
}
public interface StudentService {
Student queryStudentById(Integer id);
}
修改Mapper
@Mapper
public interface StudentMapper {
运行结果: