springboot 使用mybites作为持久层编写webservice问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot 使用mybites作为持久层编写webservice问题?相关的知识,希望对你有一定的参考价值。
没有连接数据库是webservice接口访问正常,连接数据库之后项目启动成功但是访问webservice页面返回No services have been found.
应该是加了Mybatis扫描dao,service,controller配置有问题,信息有限,智能给你提供个参考 参考技术A 一看就是service类没有写 @Service 注解 参考技术B springboot 参考技术C 用hospitalsSpring Boot系列Spring Boot整合持久层
这里写目录标题
四、Spring Boot整合持久层
4.1 Spring Boot项目工程搭建
1、新建SpringBoot项目
2、然后下一步
3、下一步(选择项目依赖)
4、完成构建
4.2 MyBatis逆向工程生成pojo和mapper文件
1 先建立包和文件夹,用于存储配置文件和逆向生成pojo和mapper文件
2 先引入pom依赖文件
- pom.xml(y引入mybatis启动器)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--支持Thymeleaf--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!--为了使thymeleaf对html5非严格检查,LEGACYHTML5起作用--> <dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> <version>1.9.22</version> </dependency> <!--热部署()--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <!--SpringBoot 整合mybatis 启动器--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> <!--Oracle驱动类--> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.2.0</version> </dependency> <!--为了使thymeleaf对html5非严格检查,LEGACYHTML5起作用--> <dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> <version>1.9.22</version> </dependency> <!--热部署()--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>
-
pom.xml(引入mybatis-generator插件)
<!--Mybatis自动生成映射文件、实体类、Mapper接口 插件--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <executions> <execution> <id>Generate MyBatis Artifacts</id> <phase>deploy</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <!-- generator 工具配置文件的位置 --> <configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> <dependencies> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.2.0</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> </dependencies> </plugin>
-
数据库连接参数mybatisGeneratorinit.properties配置文件
project=src/main/java resources=src/main/resources jdbc_driver =oracle.jdbc.OracleDriver jdbc_url=jdbc:oracle:thin:localhost:1521:orcl jdbc_user=ebuy jdbc_password=123456
-
generatorConfig.xml(生产者配置,拷贝generator.xml文件到resource目录,设置数据库、文件包路径、表名和实体名对应关系等信息)
<?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> <!--执行generator插件生成文件的命令: call mvn mybatis-generator:generate -e --> <!-- 引入配置文件 --> <properties resource="mybatis-generator/mybatisGeneratorinit.properties" /> <!--classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置 可选 --> <!--<classPathEntry location="D:\\generator_mybatis\\mysql-connector-java-5.1.24-bin.jar" /> --> <!-- 一个数据库一个context --> <!--defaultModelType="flat" 大数据字段,不分表 --> <context id="MysqlTables" targetRuntime="MyBatis3Simple" defaultModelType="flat"> <!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表; 一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖 --> <property name="autoDelimitKeywords" value="true" /> <!-- 生成的Java文件的编码 --> <property name="javaFileEncoding" value="utf-8" /> <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; --> <property name="beginningDelimiter" value="`" /> <property name="endingDelimiter" value="`" /> <!-- 格式化java代码 --> <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter" /> <!-- 格式化XML代码 --> <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter" /> <plugin type="org.mybatis.generator.plugins.SerializablePlugin" /> <!--字符串插件--> <plugin type="org.mybatis.generator.plugins.ToStringPlugin" /> <!-- 注释 --> <commentGenerator> <property name="suppressAllComments" value="false" /><!-- 是否取消注释 --> <property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳 --> </commentGenerator> <!-- jdbc连接 --> <jdbcConnection driverClass="${jdbc_driver}" connectionURL="${jdbc_url}" userId="${jdbc_user}" password="${jdbc_password}" /> <!-- 类型转换 --> <javaTypeResolver> <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) --> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成实体类地址 --> <javaModelGenerator targetPackage="com.kdcrm.pojo" targetProject="${project}"> <property name="enableSubPackages" value="false" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成mapxml对应client,也就是接口dao --> <javaClientGenerator targetPackage="com.kdcrm.mapper" targetProject="${project}" type="XMLMAPPER"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 生成mapxml文件 --> <sqlMapGenerator targetPackage="com.kdcrm.mapper" targetProject="${resources}"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- table可以有多个,每个数据库中的表都可以写一个table,tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 --> <table tableName="system_userinfo" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true"> <property name="useActualColumnNames" value="false" /> <!-- 数据库表主键 --> <generatedKey column="id" sqlStatement="Oracle" identity="true" /> </table> </context> </generatorConfiguration>
-
最后通过maven命令:mybatis-generator:generate生成代码,在idea中使用了maven,我们可以不用使用命令,直接双击插件即可帮我们完成逆向工程的创建:
4.3 应用实现增删改查
- 通过mvc分层实现用户信息的在web页面的增删改查操作
- 新增service业务层实现业务逻辑。
- 新增controller控制层实现请求转发和页面渲染
@Controller public class SystemUserInfoController { @Autowired SystemUserinfoService systemUserinfoService; @GetMapping("/selectAll") public String selectAll(HttpServletRequest request) { List<SystemUserinfo> list=systemUserinfoService.selectAll(); request.setAttribute("list",list); for(SystemUserinfo systemUserinfo:list) { System.out.println(systemUserinfo); } return "list"; } }
- 新增view视图层展现数据,使用thymeleaf标签。
thymeleaf的依赖在上述pom.xml文件中已经引入,只需在yml文件找那个配置相关参数 - application.yml
server: port: 8090 #配置Thymeleaf视图配置 spring: thymeleaf: prefix: classpath:/templates/ #默认视图模板路径 suffix: .html #默认解析视图后缀 mode: LEGACYHTML5 #使用非严格 HTML encoding: UTF-8 #编码格式 cache: false #是否开启缓存 check-template-location: true datasource: url: jdbc:oracle:thin:localhost:1521:orcl driver-class-name: oracle.jdbc.OracleDriver username: ebuy password: 123456 tomcat: max-active: 20 max-wait: 60000 min-idle: 2 initial-size: 1 mybatis: type-aliases-package: com.kdcrm.pojo mapper-locations: com/kdcrm/mapper/*.xml #配置日志级别为debug logging: level: com.kdcrm: debug
- 在templates目录下新建一个list.html页面
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org" lang="en" > <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <table border="1"> <tr> <td>编号</td> <td>登录名</td> <td>姓名</td> <td>性别</td> <td>邮箱</td> <td>电话</td> </tr> <!--/*@thymesVar id="list" type=""*/--> <tr th:each="user:${list}"> <td th:text="${user.userinfoUid}"></td> <td th:text="${user.userinfoLoginid}"></td> <td th:text="${user.userinfoName}"></td> <td th:text="${user.userinfoSex}"></td> <td th:text="${user.userinfoEmail}"></td> <td th:text="${user.userinfoMobile}"></td> </tr> </table> </body> </html>
- 启动项目,访问地址http://localhost:8090/selectAll
至以上是关于springboot 使用mybites作为持久层编写webservice问题?的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis的应用2 使用mybits+SpringBoot完成第一个查询的demo(随后加增加,更新,删除)
SpringBoot2.0 基础案例(09):集成JPA持久层框架,简化数据库操作