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

您的位置:首頁技術文章
文章詳情頁

spring中使用mybatis plus連接sqlserver的方法實現(xiàn)

瀏覽:178日期:2023-07-27 16:30:56

本文主要關注如何使用mybatis/mybatis plus連接SQL Server數(shù)據(jù)庫,因此將省略其他項目配置、代碼。

框架選擇

應用框架:spring bootORM框架:mybatis plus(對于連接數(shù)據(jù)庫而言,mybatis和mybatis plus其實都一樣)數(shù)據(jù)庫連接池:druid

pom依賴

此處僅給出我的配置,mybatis/druid請依據(jù)自己項目的需要進行選擇。方便起見我用的是mybatis plus

<!--mybatis plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.0</version> </dependency><dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.0</version> </dependency> <!-- druid 連接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12</version> </dependency> <!--for SqlServer--> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</version> </dependency>配置數(shù)據(jù)源

添加數(shù)據(jù)庫配置

YAML文件中添加自己數(shù)據(jù)庫的地址

# SQL Server數(shù)據(jù)庫spring.datasource.xx.url: jdbc:sqlserver://你的數(shù)據(jù)庫地址:1433;databaseName=你的數(shù)據(jù)庫名稱spring.datasource.xx.username: xxxxspring.datasource.xx.password: xxxxspring.datasource.xx.driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver添加數(shù)據(jù)源

此處和平時我們在spring boot中集成mybatis/mybatis plus一樣,添加bean即可。由于平時經(jīng)常用到多個數(shù)據(jù)庫,此處展示一個多數(shù)據(jù)源的例子:一個是mysql,一個是SQL Server有關mybatis plus配置數(shù)據(jù)源的注意事項,比如配置mapper文件夾等,請自行問度娘,此處不再一一指出。注意:下面代碼來自實際代碼,但批量刪除了敏感信息、重新命名,因而可能存在與前面配置信息不一致的地方,僅僅是一個示例

Mysql數(shù)據(jù)源

mysql數(shù)據(jù)源配置,注意,由于是多數(shù)據(jù)源,需要有一個數(shù)據(jù)源配置中加上@Primary注解

@Configuration@MapperScan(basePackages = 'com.xxx.mapper', sqlSessionFactoryRef = 'mysqlSqlSessionFactory')public class MySQLMybatisPlusConfig { @Autowired private MybatisPlusProperties properties; @Autowired private ResourceLoader resourceLoader = new DefaultResourceLoader(); @Autowired(required = false) private Interceptor[] interceptors; @Autowired(required = false) private DatabaseIdProvider databaseIdProvider; @Autowired private Environment env; @Bean(name = 'mysqlDataSource') @Primary public DataSource getRecruitDataSource() throws Exception { Properties props = new Properties(); props.put('driverClassName', env.getProperty('spring.datasource.mysqlData.driver-class-name')); props.put('url', env.getProperty('spring.datasource.mysqlData.url')); props.put('username', env.getProperty('spring.datasource.mysqlData.username')); props.put('password', env.getProperty('spring.datasource.mysqlData.password')); return DruidDataSourceFactory.createDataSource(props); } /** * mybatis-plus分頁插件 */ @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor page = new PaginationInterceptor(); page.setDialectType('mysql'); return page; } @Bean(name = 'mysqlSqlSessionFactory') @Primary public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean(@Qualifier('mysqlDataSource') DataSource mysqlDataSource) throws IOException { MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean(); try { mybatisPlus.setDataSource(mysqlDataSource); } catch (Exception e) { e.printStackTrace(); } mybatisPlus.setVfs(SpringBootVFS.class); // 設置分頁插件 MybatisConfiguration mc = new MybatisConfiguration(); mc.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class); mc.setMapUnderscoreToCamelCase(true);// 數(shù)據(jù)庫和java都是駝峰,就不需要 mybatisPlus.setConfiguration(mc); if (this.databaseIdProvider != null) { mybatisPlus.setDatabaseIdProvider(this.databaseIdProvider); } mybatisPlus.setTypeAliasesPackage('com.xxx.mysql.bean.model'); mybatisPlus.setTypeHandlersPackage(this.properties.getTypeHandlersPackage()); mybatisPlus.setMapperLocations(this.properties.resolveMapperLocations()); // 設置mapper.xml文件的路徑 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resource = resolver.getResources('classpath:mapper/*.xml'); mybatisPlus.setMapperLocations(resource); return mybatisPlus; }}

SQL Server數(shù)據(jù)源

@Configuration@MapperScan(basePackages = 'com.xxx.survey.mapper', sqlSessionFactoryRef = 'xxSqlSessionFactory')public class SqlServerMybatisConfig { @Autowired private MybatisPlusProperties properties; @Autowired private ResourceLoader resourceLoader = new DefaultResourceLoader(); @Autowired(required = false) private Interceptor[] interceptors; @Autowired(required = false) private DatabaseIdProvider databaseIdProvider; @Autowired private Environment env; @Bean(name = 'xxDataSource') public DataSource getAttendanceDataSource() throws Exception { Properties props = new Properties(); props.put('driverClassName', env.getProperty('spring.datasource.xx.driver-class-name')); props.put('url', env.getProperty('spring.datasource.xx.url')); props.put('username', env.getProperty('spring.datasource.xx.username')); props.put('password', env.getProperty('spring.datasource.xx.password')); return DruidDataSourceFactory.createDataSource(props); } @Bean(name = 'xxSqlSessionFactory') public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean(@Qualifier('xxDataSource') DataSource xxDataSource) throws IOException { MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean(); try { mybatisPlus.setDataSource(xxDataSource); } catch (Exception e) { e.printStackTrace(); } mybatisPlus.setVfs(SpringBootVFS.class); // 設置分頁插件 MybatisConfiguration mc = new MybatisConfiguration(); mc.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class); mc.setMapUnderscoreToCamelCase(true);// 數(shù)據(jù)庫和java都是駝峰,就不需要 mybatisPlus.setConfiguration(mc); if (this.databaseIdProvider != null) { mybatisPlus.setDatabaseIdProvider(this.databaseIdProvider); } mybatisPlus.setTypeAliasesPackage('com.xxx.survey.bean.model'); mybatisPlus.setTypeHandlersPackage(this.properties.getTypeHandlersPackage()); mybatisPlus.setMapperLocations(this.properties.resolveMapperLocations()); // 設置mapper.xml文件的路徑 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resource = resolver.getResources('classpath:mapper/*.xml'); mybatisPlus.setMapperLocations(resource); return mybatisPlus; }}生成ORM代碼

到這里,程序啟動應該沒什么問題,接著就應該生成DAO層、Service層代碼了mybatis和mybatis plus在此處按照和連接mysql時一樣的方法,根據(jù)需要寫代碼即可。比如對于mybatis plus,需要寫3處代碼:

實體bean,可以利用Spring Boot Code Generator!來根據(jù)SQL表結構自動生成

Mapper代碼:都有模板,mybatis plus自己封裝的方法已經(jīng)很夠用,有單獨需求可以自己寫xml來自定義SQL

@Mapperpublic interface XXXMapper extends BaseMapper<XXX> {}

Service代碼好像也有現(xiàn)成的工具可以自動生成mapper service代碼來著。Service接口

public interface XXXService extends IService<XXX> {}

ServiceImpl

@Servicepublic class XXXServiceImpl extends ServiceImpl<XXXMapper, XXX> implements XXXService {}參考資料

Spring Boot 集成 MyBatis和 SQL Server實踐springboo-mybatis SQL Server

到此這篇關于spring中使用mybatis plus連接sqlserver的方法實現(xiàn)的文章就介紹到這了,更多相關spring連接sqlserver內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久9色精品国产一区二区三区| 中文另类视频| 精品国产黄a∨片高清在线| 国产精品免费看| 麻豆一区二区三区| 国产精品**亚洲精品| 亚洲精品自拍| 伊人久久一区| 亚洲精品在线a| 伊人精品一区| 国产精品久久久久蜜臀| 91亚洲国产高清| 麻豆精品在线视频| 久久国产三级精品| 国产精区一区二区| 日韩美女精品| 在线观看亚洲精品福利片| 婷婷视频一区二区三区| 视频一区在线播放| 在线亚洲自拍| 亚洲免费一区三区| 亚洲午夜久久| 丝袜美腿一区二区三区| 五月国产精品| 亚洲欧洲专区| 在线亚洲欧美| 91亚洲精品在看在线观看高清| 日本综合精品一区| 麻豆国产精品| 福利在线免费视频| 欧美少妇精品| 伊人成人在线视频| 亚洲精品在线观看91| 亚洲午夜精品久久久久久app| 宅男噜噜噜66国产日韩在线观看| 婷婷综合五月| 亚洲一区二区免费看| 日本99精品| 国产欧美日韩精品高清二区综合区 | 亚洲tv在线| 亚洲精品乱码| 国产精品日韩精品在线播放| 亚洲精品大片| 国产精品丝袜在线播放| 成人午夜网址| 夜夜嗨网站十八久久| 亚洲在线久久| 丝袜美腿成人在线| 国产毛片一区二区三区 | 亚洲婷婷在线| 婷婷综合国产| 你懂的国产精品永久在线| 欧美日韩精品免费观看视欧美高清免费大片| 日韩国产一区二区| 在线国产一区| 精品美女视频| 欧美性感美女一区二区| 亚洲香蕉视频| 成人日韩在线| 噜噜噜躁狠狠躁狠狠精品视频| 久久精品99久久久| 国产极品一区| 亚洲女同av| 日韩一级不卡| 久久免费精品| 视频小说一区二区| 91av亚洲| 日韩高清电影免费| 麻豆中文一区二区| 亚洲一区二区三区免费在线观看| 91福利精品在线观看| 日韩一区二区在线免费| 久久狠狠久久| 999国产精品永久免费视频app| 亚洲欧洲日韩精品在线| 久久精品导航| 在线视频精品| 日本综合精品一区| 九九久久电影| 国产日韩欧美高清免费| 亚洲一区二区三区高清| 国产精品视频一区二区三区综合| 婷婷激情一区| 欧美a在线观看| 91久久在线| 欧美性www| 免费在线成人网| 精品三级国产| 国产欧美一级| 在线亚洲国产精品网站| 久久精品国产久精国产| 蜜臀av在线播放一区二区三区| 青青伊人久久| 欧美女激情福利| 精品久久网站| 香蕉久久夜色精品国产| 精品国产不卡| 天堂久久av| 99精品综合| 国产美女视频一区二区| 亚洲精品888| 欧美一级一区| 中文字幕乱码亚洲无线精品一区| 神马久久午夜| 色婷婷色综合| 天堂久久av| 久久久亚洲一区| 岛国av在线网站| 青草国产精品| 亚洲毛片在线免费| 亚洲欧美日韩视频二区| 精品久久影院| japanese国产精品| 国产成人免费| 777久久精品| 日本aⅴ精品一区二区三区 | 欧美日韩国产一区二区三区不卡| 精品视频高潮| 欧美精品中文| 亚洲精品九九| 黄色日韩精品| av一区在线| 桃色一区二区| 精品国产亚洲一区二区三区在线 | 精品精品国产三级a∨在线| 日韩中文字幕| 久久不射网站| 一区二区91| 99国产精品私拍| 在线视频精品| 亚洲a在线视频| 97精品国产一区二区三区| 国产91在线播放精品| 欧美日韩a区| 日韩成人精品一区二区三区| 久久国产人妖系列| 日韩激情一二三区| 国产美女精品视频免费播放软件| 亚洲人成网77777色在线播放| 亚洲国产日韩欧美在线| 久久理论电影| 亚洲夜间福利| 日韩制服丝袜先锋影音| 欧美精品一线| 日韩成人免费| 999精品色在线播放| 精品美女久久| 丝袜美腿诱惑一区二区三区| 成人午夜毛片| 亚洲综合电影| 欧美日韩精品在线一区| 久久青草久久| 久久久国产精品网站| 国产精品成人a在线观看| 美女视频黄久久| 久久中文字幕二区| 欧美精品九九| 免费成人性网站| 国产精品成人国产| 欧美激情福利| 91麻豆精品激情在线观看最新| 亚洲精品字幕| 日本午夜免费一区二区 | 亚洲1234区| 欧美日韩亚洲在线观看| 噜噜噜久久亚洲精品国产品小说| 日韩亚洲国产欧美| 激情黄产视频在线免费观看| 极品日韩av| 亚洲深夜av| 国产精品一区二区免费福利视频| 国产高清亚洲| 精品网站999| 99成人在线视频| 国产视频欧美| 午夜av一区| 综合色就爱涩涩涩综合婷婷| 91精品美女| 天堂中文av在线资源库| 欧美日韩亚洲在线观看| 国产精品社区| 欧美激情精品| 久久久久久黄| 久久激情婷婷| 日韩精品导航| 色婷婷亚洲mv天堂mv在影片| 久热精品在线| 欧美在线看片| 久久国产婷婷国产香蕉| 999久久久国产精品| 一区二区三区四区精品视频| 日韩影院二区| 丝袜脚交一区二区| 国产精品巨作av| 麻豆亚洲精品| 久久99久久久精品欧美| 亚洲欧洲一区| 97成人在线| 成人免费网站www网站高清| 日本成人在线视频网站|