大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小编给大家分享一下springboot项目IntelliJIDEA,springboot 2.0 +mybatis如何创建,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
双桥网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联公司2013年开创至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
环境:
JDK8+windows10
步骤 New Module —>Spring Initializr—>next
1
2.
3。web勾选web,sql里面可以不勾,后续添加,另外,勾选了MyBatis会报错Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required 这样的错误。这里我勾选了是为了待会解决这个错误
选完直接下一步到最后就行了
自动生成的pom文件如下
4.0.0 org.springframework.boot spring-boot-starter-parent 2.0.8.RELEASE com.example demo 0.0.1-SNAPSHOT demo Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-jdbc org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot-starter 2.0.0 MySQL mysql-connector-java runtime org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin
## 目录结构
因为没有配置数据库和任何文件,application是空的 ,默认端口是8080
我们需要在 在启动累忽略数据库配置
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
然后 用postman访问一下 说明项目是正常的
4.配置数据库 application.yml 文件
server: port: 8080 tomcat: uri-encoding: UTF-8 servlet: context-path: / spring: dataSource: url: jdbc:mysql://localhost:3306/db-test?useUnicode=true&characterEncoding=utf8&tinyInt1isBit=false username: root password: 123456 driverClassName: com.mysql.jdbc.Driver mybatis: mapper-locations: classpath:com/example/demo/mapper/*Mapper.xml #注意:一定要对应mapper映射xml文件的所在路径 type-aliases-package: com.example.demo.model # 注意:对应实体类的路径 configuration: call-setters-on-nulls: true # 解决使用map类型接收查询结果的时候为null的字段会没有的情况
这时候 com.mysql.jdbc.Driver 标红 说明mysql架包找不到
把
mysql mysql-connector-java runtime
改成 版本默认就行
mysql mysql-connector-java
然后driverClassName 恢复正常
导入 service dao xml (这里没有使用实体类返回,使用的是map返回,所以表我们可以随意自建) UserController
@Controller @RequestMapping("/usersDemo") public class UserController { private static Logger log = LoggerFactory.getLogger(UserController.class); @Resource UserService userService; @ResponseBody @RequestMapping(value = "/test", produces = "application/json;charset=UTF-8", method = {RequestMethod.POST, RequestMethod.GET}) public List
UserService
public interface UserService { List> userQueryAll(); }
UserserviceImpl
@Service public class UserserviceImpl implements UserService { @Resource UserMapper userDao; @Override public List> userQueryAll() { return userDao.userQueryAll(); } }
UserMapper
@Mapper public interface UserMapper { List> userQueryAll(); }
UserMapper.xml
DemoApplication
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) @MapperScan("com.example.demo.dao") @ComponentScan(basePackages = {"com.example.demo.*"}) public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
好了 ,
接下来就是启动了
5启动
注意 :依赖注入后 如果没有去掉 exclude = {DataSourceAutoConfiguration.class}
启动会报如下错误:
Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
错误原因1:
很多人说 创建项目的时候勾选了mybatis导致 实际上是这个架包的原因 如果不要的话也不能使用mybatis了org.mybatis.spring.boot mybatis-spring-boot-starter 2.0.0
错误原因2 ,
dataSource.type 使用默认的连接池导致的
解决方案1 :去掉 exclude = {DataSourceAutoConfiguration.class} ,就能正常启动
解决方案2 :使用其他连接池 ,比如阿里 druid 连接池
com.alibaba druid-spring-boot-starter 1.1.13
然后修改application.yml 里面的 spring.dataSource.type=com.alibaba.druid.pool.DruidDataSource
就可以不删除 exclude = {DataSourceAutoConfiguration.class}了 ,实际上意义不大,属于低级错误
6 继续启动,
日志是没错了, 然后访问数据库的时候 可能会出现
这样的错误
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.demo.dao.UserMapper.userQueryAll
错误可能原因 1. mapper.xml select 的 id写错了
解决方案:检查代码
错误可能原因 2. 程序没有编译xml文件
解决方案:pom.xml 文件 build里面 增加代码
src/main/java **/*.xml false
再次启动 :
成功
最终 pom.xml文件如下
4.0.0 org.springframework.boot spring-boot-starter-parent 2.0.8.RELEASE com.example demo 0.0.1-SNAPSHOT demo Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-jdbc org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot-starter 2.0.0 com.alibaba druid-spring-boot-starter 1.1.13 mysql mysql-connector-java ${mysql.version} org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin src/main/java **/*.xml false
以上是springboot项目IntelliJIDEA,springboot 2.0 +mybatis如何创建的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!