总结:
1、开始搭建mybatis-plus 时,报org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "USER" not found;
2、报"unexpected status 1308622848" [90067-180]
以上的异常,我被spring boot 和h2的版本不匹配所引导在里面出不来了。
其实我们在配置这个spring.datasource数据库连接时,采用了h2的org.h2.Driver,因为没有弄清楚其原理,所以被带到里面好长时间没出来,搞得心情很不舒服。个人觉得用h2的org.h2Driver,不清楚其原理的话,还是先不要急着学习,很容易被带到里面一时半会儿出不来的。
我们采用com.mysql.cj.jdbc.Driver其实也是可以使用mybatis-plus的。
以下是我经过测试运行正常且能返回数据的代码,供大家学习。
一、pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.3.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.3.4.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<!--添加Servlet依赖,只在编译时有效 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!--JavaServer Pages Standard Tag Library,JSP标准标签库-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
二、application.xml
server.port=8080
spring.datasource.url=jdbc:mysql://127.0.0.1/pxks?serverTimezone=UTC&useUnicode=true&charaterEncoding=utf-8&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=helloliuting001
spring.datasource.druid.url=rewriteBatchedStatements=true
spring.h2.console.enabled=false
spring.h2.console.settings.web-admin-password=123456
mybatis-plus.config-location=classpath:/mybatis-config.xml
#延时加载 忽略无法转换的对象
spring.jackson.serialization.fail-on-empty-beans=false
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
server.servlet.context-path=/pxks
三、DemoApplication.java
@MapperScan("com.example.demo.mapper")
@SpringBootApplication
@Controller
public class DemoApplication {
@Autowired
private UserMapper userMapper;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@RequestMapping("/")
public @ResponseBody
List<User> index(HttpSession session )throws Exception{
List<User> list=userMapper.selectList(null);
return list;
}
}
四、UserMapper.java
public interface UserMapper extends BaseMapper<User> {
}
五、User.java
import lombok.Data;
@Data
@TableName(value = "tb_User")
public class User {
private long id;
@TableField(exist = true,value = "name")//与数据对应列名
private String name;
private String age;
private String email;
@TableField(exist = false) //exist默认为true(对应数据库字段) false为数据库中未有与之对应的字段,仅是后端操作便利
private String cz;
}