日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

瀏覽:20日期:2023-05-05 18:46:12

鑒于隔很久再在IDEA新建springboot項(xiàng)目時(shí),會(huì)出現(xiàn)對步驟不確定的情況,因此,寫下這篇博客記錄創(chuàng)建一個(gè)可運(yùn)行的springboot+mybatis項(xiàng)目的全過程。

步驟如下:

1.打開IDEA

2.File ==> new ==> project ,如圖:

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

3.選擇spring Initializr ==> 右邊的Project SDK我選的是我已經(jīng)安裝的1.8版本,其他默認(rèn) ==> 點(diǎn)擊next

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

4.填寫Group (自己隨意就行,我的是cn + 個(gè)人英文名 + study) ==> 填寫 Artifact (也是自己隨意就行,這個(gè)也是你的項(xiàng)目名) ==> 點(diǎn)擊next ,如圖:

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

5.選擇項(xiàng)目所需依賴(由于項(xiàng)目是springboot+mybatis的Java后臺(tái)項(xiàng)目,因此需要勾上三個(gè)依賴) ==> 點(diǎn)擊next ,如圖:

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

6.選擇項(xiàng)目路徑 ==> 點(diǎn)擊finish ,如圖:

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

6.最終生成的項(xiàng)目代碼目錄如圖(resources目錄下的static和templates目錄無用,可以刪掉):

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

(注:如果DemoprojectApplication類(即啟動(dòng)類)的圖標(biāo)顯示是 J 而不是 C ,則說名該項(xiàng)目還沒有被初始化為maven項(xiàng)目,

只需要在項(xiàng)目的pom.xml文件上右鍵,再選擇 Add as maven 即可)

至此,springboot項(xiàng)目搭建完成一半,還需要做mybatis的配置,如下:

7.數(shù)據(jù)庫和mybatis的配置

7.1 在application.properties填入數(shù)據(jù)庫連接參數(shù)和mybatis配置信息,application.properties內(nèi)容如下:

#1.項(xiàng)目啟動(dòng)的端口server.port=18902 #2.數(shù)據(jù)庫連接參數(shù)#2.1jdbc驅(qū)動(dòng),示數(shù)據(jù)庫廠商決定,這是mysql的驅(qū)動(dòng)jdbc.driver=com.mysql.cj.jdbc.Driver#2.2數(shù)據(jù)庫連接url,包括ip(127.0.0.1)、端口(3306)、數(shù)據(jù)庫名(testdb)jdbc.url=jdbc:mysql://127.0.0.1:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false#2.3數(shù)據(jù)庫賬號(hào)名jdbc.username=root#2.4數(shù)據(jù)庫密碼jdbc.password=mypassword #3.Mybatis配置#3.1 mybatis配置文件所在路徑mybatis_config_file=mybatis-config.xml#3.2 mapper文件所在路徑,這樣寫可匹配mapper目錄下的所有mapper,包括其子目錄下的mapper_path=/mapper/**/**.xml#3.3 entity所在包entity_package=cn.stephen.study.demoproject.entity

示例如圖:

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

7.2 在resources目錄下新建 mybatis-config.xml文件,文件內(nèi)容如下:

<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE configuration PUBLIC '-//mybatis.org//DTD Config 3.0//EN' 'http://mybatis.org/dtd/mybatis-3-config.dtd'><!-- 配置文件的根元素 --><configuration> <!--配置全局屬性--> <settings> <!--使用jdbc的getGeneratedKeys獲取數(shù)據(jù)庫自增主鍵值--> <setting name='useGeneratedKeys' value='true'/> <!--使用列標(biāo)簽替換列別名 默認(rèn)未true--> <setting name='useColumnLabel' value='true' /> <!--開啟駝峰式命名轉(zhuǎn)換:Table{create_time} -> Entity{createTime}--> <setting name='mapUnderscoreToCamelCase' value='true' /> </settings></configuration>

效果如圖:

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

7.3 新建 config包,在其中新建配置類。共三個(gè)配置類,如圖:

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

DataSourceConfiguration類的代碼如下:

package cn.stephen.study.demoproject.config.dao; import com.mchange.v2.c3p0.ComboPooledDataSource;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration; import java.beans.PropertyVetoException; /** * 數(shù)據(jù)庫配置類 */@Configurationpublic class DataSourceConfiguration { @Value('${jdbc.driver}') private String jdbcDriver; @Value('${jdbc.url}') private String jdbcUrl; @Value('${jdbc.username}') private String jdbcUsername; @Value('${jdbc.password}') private String jdbcPassword; @Bean(name = 'dataSouce') public ComboPooledDataSource createDataSouce() throws PropertyVetoException { ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setDriverClass(jdbcDriver); dataSource.setJdbcUrl(jdbcUrl); dataSource.setUser(jdbcUsername); dataSource.setPassword(jdbcPassword); //關(guān)閉連接后不自動(dòng)commit dataSource.setAutoCommitOnClose(false); return dataSource; }}

SessionFactoryConfiguration類的代碼如下:

package cn.stephen.study.demoproject.config.dao; import org.mybatis.spring.SqlSessionFactoryBean;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import javax.sql.DataSource;import java.io.IOException; /** * 數(shù)據(jù)庫sqlSession配置類 */ @Configurationpublic class SessionFactoryConfiguration { @Value('${mapper_path}') private String mapperPath; @Value('${mybatis_config_file}') private String mybatisConfigFilePath; @Autowired private DataSource dataSouce; @Value('${entity_package}') private String entityPackage; @Bean(name='sqlSessionFactory') public SqlSessionFactoryBean createSqlSessionFactoryBean() throws IOException { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setConfigLocation(new ClassPathResource(mybatisConfigFilePath)); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); String packageSearchPath = PathMatchingResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX+mapperPath; sqlSessionFactoryBean.setMapperLocations(resolver.getResources(packageSearchPath)); sqlSessionFactoryBean.setDataSource(dataSouce); sqlSessionFactoryBean.setTypeAliasesPackage(entityPackage); return sqlSessionFactoryBean; }}

TransactionManagementConfiguration類的代碼如下:

package cn.stephen.study.demoproject.config.service; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Configuration;import org.springframework.jdbc.datasource.DataSourceTransactionManager;import org.springframework.transaction.PlatformTransactionManager;import org.springframework.transaction.annotation.EnableTransactionManagement;import org.springframework.transaction.annotation.TransactionManagementConfigurer; import javax.sql.DataSource; /** * 事務(wù)配置類,不可缺少,尚未知具體作用 */@Configuration@EnableTransactionManagementpublic class TransactionManagementConfiguration implements TransactionManagementConfigurer{ @Autowired private DataSource dataSource; @Override public PlatformTransactionManager annotationDrivenTransactionManager() { return new DataSourceTransactionManager(dataSource); }}

三個(gè)類的代碼寫完后,在DataSourceConfiguration類中會(huì)報(bào)找不到某些類的錯(cuò),在下一步解決。

7.4 在 pom.xml文件的<dependencies></dependencies>插入以下兩個(gè)依賴

<!--線程池--><dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version></dependency><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional></dependency>

至此,項(xiàng)目配置已完成。。。。

8. 接下來,就按最普遍的分層代碼目錄結(jié)構(gòu)來寫一個(gè)基本的測試來測試項(xiàng)目是否能正常運(yùn)行。代碼目錄結(jié)果如圖:

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

一共需要新建4個(gè)包(controller、service、dao、entity)和一個(gè)目錄(mapper);

8.1 controller包放控制層代碼,TestController類的代碼如下:

package cn.stephen.study.demoproject.controller; import cn.stephen.study.demoproject.entity.TestEntity;import cn.stephen.study.demoproject.service.TestService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController; @RestController@RequestMapping('/demoproject/test')public class TestController { @Autowired private TestService testService ; @RequestMapping(value = '/get/{id}',method = RequestMethod.GET) public TestEntity test(@PathVariable Integer id){ System.out.println('id:' + id); return testService.getById(id); } }

8.2 service層放業(yè)務(wù)處理層代碼,TestService類的代碼如下:

package cn.stephen.study.demoproject.service; import cn.stephen.study.demoproject.dao.TestDao;import cn.stephen.study.demoproject.entity.TestEntity;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service; @Servicepublic class TestService { @Autowired private TestDao testDao ; public TestEntity getById(Integer id){ return testDao.getById(id); }}

8.3 dao包放數(shù)據(jù)存取層代碼,TestDao代碼如下:

package cn.stephen.study.demoproject.dao; import cn.stephen.study.demoproject.entity.TestEntity;import org.apache.ibatis.annotations.Mapper; @Mapperpublic interface TestDao { TestEntity getById(Integer id); }

8.4 entity包放數(shù)據(jù)庫表對應(yīng)的實(shí)體類,TestEntity實(shí)體類代碼如下:

package cn.stephen.study.demoproject.entity; public class TestEntity { protected Integer id ; protected String magicId ; protected String firstName ; protected String lastName ; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getMagicId() { return magicId; } public void setMagicId(String magicId) { this.magicId = magicId; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; }}

對應(yīng)的數(shù)據(jù)庫表的sql語句如下:

CREATE TABLE `test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `magic_id` varchar(32) NOT NULL, `first_name` varchar(32) NOT NULL, `last_name` varchar(32) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

8.5 mapper目錄放dao層代碼的具體實(shí)現(xiàn)(這是mybatis的特色,用xml文件來實(shí)現(xiàn)數(shù)據(jù)存取),TestDaoMapper的內(nèi)容如下:

<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE mapper PUBLIC '-//mybatis.org//DTD Mapper 3.0//EN' 'http://mybatis.org/dtd/mybatis-3-mapper.dtd' ><mapper namespace='cn.stephen.study.demoproject.dao.TestDao'> <!-- 根據(jù)主鍵查詢--> <select resultType='cn.stephen.study.demoproject.entity.TestEntity' parameterType='java.lang.Integer' > select * from test where id = #{id} </select></mapper>

測試代碼寫完,就可以打開postman去做測試了。

(注:搜索 postman下載 即可在官網(wǎng)上下載postman軟件)

測試結(jié)果如圖:

IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程(步驟詳解)

9.結(jié)束語:

至此,搭建springboot + mybatis 的Java后臺(tái)項(xiàng)目已經(jīng)結(jié)束。。

附上該項(xiàng)目示例的github地址:https://github.com/StephenChen1/demoproject.git

到此這篇關(guān)于IDEA創(chuàng)建springboot + mybatis項(xiàng)目全過程的文章就介紹到這了,更多相關(guān)idea 創(chuàng)建springboot mybatis過程內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费黄网站欧美| 激情91久久| 99久久激情| 日韩二区三区在线观看| 激情欧美日韩一区| 久久不见久久见免费视频7 | 三级小说欧洲区亚洲区| 国产欧美日韩一区二区三区四区| 亚洲激情偷拍| 日韩在线二区| 91精品在线免费视频| 美女日韩在线中文字幕| 久久久久久久久丰满| 老司机精品在线| 久久精品 人人爱| 日本成人一区二区| 亚洲婷婷丁香| 一区二区三区网站| 三级一区在线视频先锋| 亚洲精品1区2区| 一区在线视频观看| 国产99久久久国产精品成人免费| 91视频久久| 国产成人免费精品| 国产精品www.| 视频国产精品| 五月天久久777| 亚洲二区免费| 久久香蕉精品香蕉| 精品香蕉视频| 精品国产三区在线| 欧美亚洲三区| 91精品美女| 国产探花一区二区| 国产精品一区二区中文字幕| 国产乱码精品一区二区三区亚洲人| 蜜桃视频一区二区三区在线观看 | 麻豆视频在线观看免费网站黄| 麻豆一区在线| 国内精品伊人| 日韩精品第一区| 欧美精品资源| 亚洲国产一区二区在线观看| 午夜亚洲一区| 亚洲精品国产精品粉嫩| 日韩高清一级| 久久国产精品免费精品3p| 最新国产精品久久久| 日韩一区精品视频| 91成人小视频| 日韩美女精品| 国产欧美日韩精品一区二区免费| 欧美精品三级在线| 国产精品一区二区美女视频免费看| 日韩专区视频网站| 日韩激情网站| 久久99蜜桃| 四季av一区二区凹凸精品| se01亚洲视频| 亚洲黄色在线| 97成人超碰| 国产一区二区三区久久| 久久久久一区| 亚洲无线观看| 国产黄色一区| 91精品一区国产高清在线gif| 夜夜嗨av一区二区三区网站四季av| 蜜桃久久久久久| 国产精品一区二区三区av| 欧美精品1区| 久久亚洲道色| 红桃视频国产一区| 国产亚洲电影| 久久精品不卡| 亚洲欧洲美洲国产香蕉| 久久精品国产福利| 午夜精品婷婷| 欧美激情一区| 99视频精品| 免费在线观看成人| 国产精品黄网站| 不卡中文字幕| 国产精品香蕉| 婷婷亚洲五月| 日韩av影院| 久久蜜桃资源一区二区老牛| 日韩av中文在线观看| 啪啪国产精品| 久久最新视频| 国产精品久久久久久久免费观看 | 偷拍亚洲精品| zzzwww在线看片免费| 免费美女久久99| 91亚洲国产| 五月国产精品| 天堂а√在线最新版中文在线| 欧美aa国产视频| 深夜日韩欧美| 久久久五月天| 国产精品白浆| 日av在线不卡| 日韩不卡免费高清视频| 国产精品亚洲综合久久| 偷拍欧美精品| 国产精品一页| 每日更新成人在线视频| 精品久久中文| 日本中文字幕一区二区视频| 日韩中文影院| 麻豆精品少妇| 另类激情亚洲| 日韩在线欧美| 国产精品hd| 亚洲尤物av| 日韩高清成人| 国产精品久久久久av蜜臀| 午夜在线精品偷拍| 日韩av首页| 久久麻豆视频| 少妇高潮一区二区三区99| 亚洲天堂久久| 福利视频一区| 婷婷综合福利| 91九色精品| 国产精品videosex极品| 先锋影音国产一区| 在线看片福利| 精品视频网站| 国产亚洲一卡2卡3卡4卡新区| 国产亚洲亚洲| 亚洲黑丝一区二区| 午夜久久中文| 国产成人久久精品麻豆二区 | 国产精品99免费看| 成人在线视频免费看| 在线免费观看亚洲| 亚洲精品在线影院| 国产欧美在线| 日韩av影院| 午夜久久av| 免费的成人av| 老司机精品久久| 亚洲黄页一区| 欧美成人久久| 国产专区一区| 精品捆绑调教一区二区三区| 国产极品久久久久久久久波多结野 | 国产精品亚洲片在线播放| 婷婷精品在线| 日韩精品社区| 亚洲图片久久| 亚洲欧美日本视频在线观看| 狂野欧美性猛交xxxx| 亚州精品视频| 欧美亚洲国产激情| 麻豆91精品91久久久的内涵| 国产三级一区| 国产经典一区| 91午夜精品| 日韩专区视频网站| 日本成人在线一区| 日本午夜免费一区二区| 亚欧洲精品视频在线观看| 免费在线观看视频一区| 免费看日韩精品| 午夜亚洲福利| 久久国产三级| 国产高清亚洲| 国产精品www994| 国产福利亚洲| 精品视频免费| 98精品久久久久久久| 精品日韩在线| 国产中文字幕一区二区三区| 精品久久久久中文字幕小说| av资源中文在线| 欧美成人精品三级网站| 成人羞羞在线观看网站| 亚洲不卡av不卡一区二区| 精品亚洲美女网站| 婷婷六月综合| 亚洲精品国产精品粉嫩| 日韩国产精品久久久久久亚洲| 国产欧美丝祙| 福利在线一区| 欧美成人综合| 日韩综合一区二区| 免费在线日韩av| 91综合视频| 水野朝阳av一区二区三区| 日本麻豆一区二区三区视频| 麻豆成人综合网| 在线观看精品| 丝袜a∨在线一区二区三区不卡| 日韩三级精品| 成人午夜在线| 欧美日韩三区| 国产日韩中文在线中文字幕| 99视频精品视频高清免费| 亚洲美洲欧洲综合国产一区|