一、什么是SpringBoot;
Springboot是一個快速開發框架。其采用了完全注解的方式,簡化了xml配置。並通過springboot 父項目定義好了各類框架的版本信息,簡化了maven依賴配置,及版本兼容性問題。內部通過java類配置了各類框架的整合配置,能夠做到框架的自動裝配。 總體來說簡化了spring項目的初始搭建,降低了框架整合的復雜度,做到開箱即用。
優點:
1)簡化了maven配置
2)自動裝配spring和其他框架
3)簡化了xml配置
4)內置了tomcat,無需war部署
5)天然集成微服務開發springcloud
二、Springboot項目的創建;
然后點擊確定即可;
我們最開始的項目結構是這樣的;
三、使用項目;
1)Springboot項目是一個標准的maven項目。
Resources目錄下,默認生成了static,templates,application.properties三個目錄和文件;
Static:用來存放靜態資源(css js 圖片 靜態html);
Templates:用來存放模板頁面(動態的頁面,類似於jsp),templates下的內容是不能直接訪問的,必須通過控制層進行跳轉;
Src目錄下會按groupid 和項目生成對應的包結構。在包中會生成一個springboot項目的啟動類。我們可以通過運行該類中的main方法啟動springboot項目;
Springboot推崇約定大於配置的思想。
2)@SpringBootApplication 注解是springboot啟動類的注解。
其相當於以前版本中的三個注解:
@SpringbootConfiguration 指定springboot配置類的注解
@ComponentScan:組件掃描注解,相當於<comtext:compent-scan> 掃描包注解
Springboot中約定,自動會掃描啟動類所在包及其子包下的所有的類。
@EnableAutoConfiguration 自動裝配注解,springboot會根據導入的依賴關系,去自動配置裝載框架相關的配置項。
3)Springboot整合mybatis;
1、導入mybatis依賴;
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency>
2、在springboot啟動類上添加@MapperScan注解,掃描Mapper接口所在的包;
@SpringBootApplication//springboot項目的啟動類注解 @MapperScan("com.seecen.springboot.mapper")//掃描mybatis Mapper接口 public class SpringbootApplication { public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); } }
3、Springboot的配置文件中Application.properties中配置 mapper.xml位置,別名等配置;
#mybatis配置 #配置mybatis mapper.xml文件的位置 mybatis.mapper-locations=classpath:mapper/*.xml #配置別名,指定實體類所在包 mybatis.type-aliases-package=com.seecen.springboot.entity
4、Springboot整合mybatis分頁插件;
1) 導入分頁插件依賴;
<!-- 分頁插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.12</version> </dependency>
2) 在springboot application.properties配置文件中配置分頁插件;
#mybatis分頁插件 #指定數據庫方言 pagehelper.helper-dialect=oracle pagehelper.reasonable=true pagehelper.params=pageNum=pageHelperStart;pageSize=pageHelperRows pagehelper.page-size-zero=true pagehelper.support-methods-arguments=true
3)然后需要在方法中寫PageInfo分頁方法;
@Controller @RequestMapping("/admin") public class AdminController { @Autowired private AdminService adminService; @ResponseBody @GetMapping("/all") public PageInfo<TAdmin> selectAll(Integer pageSize, Integer pageNum){ return adminService.selectAll(pageSize,pageNum); } }
public interface AdminService { PageInfo<TAdmin> selectAll(Integer pageSize, Integer pageNum); }
@Service public class AdminServiceImpl implements AdminService{ @Autowired private AdminMapper adminMapper; @Override public PageInfo<TAdmin> selectAll(Integer pageSize, Integer pageNum) { PageHelper.startPage(pageNum,pageSize); List<TAdmin> tAdmins = adminMapper.selectAll(); return new PageInfo<>(tAdmins); } }
@Repository public interface AdminMapper { @Select("select * from t_admin") List<TAdmin> selectAll(); TAdmin selectById(Integer id); }
5、Springboot mybatis打印sql日志;
#配置springboot的日志級別 #配置日志的級別(全局配置)debug < info < warn < error logging.level.root=info #配置特定包下的日志級別 logging.level.com.seecen.springboot.mapper=debug logging.level.com.seecen.springboot.service=debug
6、Mybatis 逆向工程,生成Mapper 和mapper.xml文件
(1) 導入maven的mybatis逆向工程插件;
<!-- 逆向生成代碼 mybatis代碼生成器--> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency>
<!-- mybatis 代碼生成器maven插件--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <!-- 指定配置文件的路徑--> <configurationFile>src/main/resources/mybatis/generatorConfig.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin>
(2) 編寫配置文件;
generatorConfig.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.properties配置文件--> <properties resource="mybatis/jdbc.properties" /> <!--配置驅動jar包的位置--> <classPathEntry location="${driverClassPath}" /> <!-- context:生成一組對象的環境 id:必選,上下文id,用於在生成錯誤時提示 defaultModelType:指定生成對象的樣式 1,conditional:類似hierarchical; 2,flat:所有內容(主鍵,blob)等全部生成在一個對象中; 3,hierarchical:主鍵生成一個XXKey對象(key class),Blob等單獨生成一個對象,其他簡單屬性在一個對象中(record class) targetRuntime: 1,MyBatis3:默認的值,生成基於MyBatis3.x以上版本的內容,包括XXXBySample; 2,MyBatis3Simple:類似MyBatis3,只是不生成XXXBySample; introspectedColumnImpl:類全限定名,用於擴展MBG --> <context id="context1" targetRuntime="MyBatis3"> <!-- genenat entity時,生成toString --> <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/> <!-- generate entity時,生成serialVersionUID --> <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/> <!--不生成注釋--> <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--配置數據庫連接信息--> <jdbcConnection driverClass="${jdbc.driver}" connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}" /> <!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL和 NUMERIC 類型解析為java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- java模型創建器,是必須要的元素 負責:1,key類(見context的defaultModelType);2,java類;3,查詢類 targetPackage:生成的類要放的包,真實的包受enableSubPackages屬性控制; targetProject:目標項目,指定一個存在的目錄下,生成的內容會放到指定目錄中,如果目錄不存在,MBG不會自動建目錄 --> <javaModelGenerator targetPackage="com.seecen.springboot.entity" targetProject="src/main/java"> <!-- 設置是否在getter方法中,對String類型字段調用trim()方法 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成SQL map的XML文件生成器, 注意,在Mybatis3之后,我們可以使用mapper.xml文件+Mapper接口(或者不用mapper接口), 或者只使用Mapper接口+Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的話,這個元素就必須配置 targetPackage/targetProject:同javaModelGenerator --> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"></sqlMapGenerator> <!-- 對於mybatis來說,即生成Mapper接口,注意,如果沒有配置該元素,那么默認不會生成Mapper接口 targetPackage/targetProject:同javaModelGenerator type:選擇怎么生成mapper接口(在MyBatis3/MyBatis3Simple下): 1,ANNOTATEDMAPPER:會生成使用Mapper接口+Annotation的方式創建(SQL生成在annotation中),不會生成對應的XML; 2,MIXEDMAPPER:使用混合配置,會生成Mapper接口,並適當添加合適的Annotation,但是XML會生成在XML中; 3,XMLMAPPER:會生成Mapper接口,接口完全依賴XML; 注意,如果context是MyBatis3Simple:只支持ANNOTATEDMAPPER和XMLMAPPER --> <javaClientGenerator targetPackage="com.seecen.springboot.mapper" targetProject="src/main/java" type="XMLMAPPER" /> <!-- 需要逆向 enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" -->
<!--我們需要生成哪個實體類,就直接改t_admin為哪個實體類即可-> <table tableName="t_admin"> <!--<columnOverride column="ID" javaType="java.lang.Integer"></columnOverride> <columnOverride column="dept" javaType="java.lang.Integer"></columnOverride>--> </table> </context> </generatorConfiguration>
jdbc.properties文件代碼為:
jdbc.driver=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@localhost:1521:XE jdbc.username=blog jdbc.password=123456 #\u9A71\u52A8jar\u5305\u7684\u4F4D\u7F6E,\u5177\u4F53\u7684\u8DEF\u5F84\u3002\u9006\u5411\u751F\u6210\u4EE3\u7801\u65F6\u4F7F\u7528 driverClassPath=C:\\Users\\Administrator\\.m2\\repository\\com\\oracle\\ojdbc\\ojdbc8\\19.3.0.0\\ojdbc8-19.3.0.0.jar
driverClassPath為你自己maven倉庫的包的路徑;
(3) 運行插件;
我們如果是測試的話,就在那個mapper.java文件對着那個實體類ctrl+shift+T,就可以快速生成測試方法了;
測試文件為:
測試結果為: