十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
項目實(shí)戰(zhàn)使用的技術(shù)是spring boot ,mybatis,druid
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了清遠(yuǎn)免費(fèi)建站歡迎大家使用!
mybatis采用注解的方式,沒有采用xml的方式,省去配置的內(nèi)容。
項目使用maven管理依賴包,數(shù)據(jù)庫使用MySQL5.7
引入依賴:
org.mybatis
mybatis
3.4.1
com.alibaba
druid-spring-boot-starter
1.1.10
mysql
mysql-connector-java
6.0.6
項目配置文件
#DB數(shù)據(jù)源配置
spring.datasource.druid.initial-size=1
spring.datasource.druid.min-idle=3
spring.datasource.druid.max-active=20
#配置獲取連接等待超時的時間
spring.datasource.druid.max-wait=60000
#配置間隔多久才進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒
spring.datasource.druid.time-between-eviction-runs-millis=60000
#配置一個連接在池中最小生存的時間,單位是毫秒
spring.datasource.druid.min-evictable-idle-time-millis=300000
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=admin
spring.datasource.druid.one.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.one.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.one.url=jdbc:mysql://mysql:3306/seasfood?characterEncoding=utf8&useSSL=true&serverTimezone=PRC&nullNamePatternMatchesAll=true
spring.datasource.druid.one.username=root
spring.datasource.druid.one.password=123456
需要配置數(shù)據(jù)庫的地址和密碼,這個例子僅對druid做了簡單的配置,更多優(yōu)化配置到druid官網(wǎng)查看
項目數(shù)據(jù)源配置,這里沒有讀寫分離的數(shù)據(jù)源配置,編寫一個spring配置類:
@Configuration("DaoConfiguration")
@EnableTransactionManagement
public class DaoConfiguration {
@Primary
@Bean
@ConfigurationProperties("spring.datasource.druid.one")
public DataSource dataSourceOne() {
return DruidDataSourceBuilder.create().build();
}
@Bean
public DataSourceTransactionManager dataSourceTransactionManager() {
return new DataSourceTransactionManager(dataSourceOne());
}
}
編寫一個mapper接口,必須在spring能夠掃描到的包下
@Mapper
public interface GoodsMapper {
@Select("SELECT * FROM goods")
List selectGoods(@Param("now") Date date);
}
在service組件中注入mapper接口即可使用
@Autowired
private GoodsMapper mapper;
mapper.selectGoods();
刪除記錄:
@Delete("DELETE FROM mytable WHERE id=#{}")
更新記錄:
@Update("UPDATE mytable SET myname=#{myname}")
插入記錄:
@Insert("INSERT INTO mytable (myfield1,myfield2) VALUES (#{var1},#{var2})
-
使用@SelectKey獲取自增主鍵的值:
@SelectKey(statement = "select max(addr_id)+1 as id from user_address", before = true, keyColumn = "id", resultType = String.class, keyProperty = "addr_id")
使用注解時,Mapper中的queryId:
使用注解的方法名作為queryId,如果方法名相同的,其中一個會以方法名作為queryId,而其他的則會以類全名加方法名作為queryId