這里使用Idea創(chuàng)建項(xiàng)目
需求
使用Springboot+mybatis+druid連接數(shù)據(jù)庫(kù)查詢一張表的所有數(shù)據(jù)
數(shù)據(jù)庫(kù)表結(jié)構(gòu)
創(chuàng)建項(xiàng)目
先看下最終的目錄結(jié)構(gòu)
使用IDea創(chuàng)建項(xiàng)目查看pom.xml文件中有沒(méi)有添加這三個(gè)依賴
使用Mybatis逆向工程生成如下文件
修改mapper.xml文件吧導(dǎo)入對(duì)應(yīng)的bean對(duì)象包
如下截圖如下例子:
配置Springboot的yml配置文件
- 數(shù)據(jù)源datasource
- 配置Druid
@Configuration
public class DruidConfig {
@Autowired
private Environment env;
//destroy-method="close"的作用是當(dāng)數(shù)據(jù)庫(kù)連接不使用的時(shí)候,就把該連接重新放到數(shù)據(jù)池中,方便下次使用調(diào)用.
@Bean(destroyMethod = "close")
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(env.getProperty("spring.datasource.url"));
dataSource.setUsername(env.getProperty("spring.datasource.username"));//用戶名
dataSource.setPassword(env.getProperty("spring.datasource.password"));//密碼
dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
dataSource.setInitialSize(2);//初始化時(shí)建立物理連接的個(gè)數(shù)
dataSource.setMaxActive(20);//最大連接池?cái)?shù)量
dataSource.setMinIdle(0);//最小連接池?cái)?shù)量
dataSource.setMaxWait(60000);//獲取連接時(shí)最大等待時(shí)間文搂,單位毫秒霞篡。
dataSource.setValidationQuery("SELECT 1");//用來(lái)檢測(cè)連接是否有效的sql
dataSource.setTestOnBorrow(false);//申請(qǐng)連接時(shí)執(zhí)行validationQuery檢測(cè)連接是否有效
dataSource.setTestWhileIdle(true);//建議配置為true纸肉,不影響性能怎虫,并且保證安全性。
dataSource.setPoolPreparedStatements(false);//是否緩存preparedStatement膳音,也就是PSCache
return dataSource;
}
}
- mybatis基礎(chǔ)配置
配置Springboot主入口掃描mapper
當(dāng)然你可以每一個(gè)mapper都加一個(gè)注解@mapper.這里我是把所有mapper放在一個(gè)包下面召衔。直接掃描整個(gè)包里面的所有mapper
編寫測(cè)試代碼
- service代碼編寫
@Service
public class TestServiceImpl implements TestService {
@Autowired
TbConfigInfoMapper mapper;//注入mapper
@Override
public List<TbConfigInfo> getBanner() {
//查詢所有
List<TbConfigInfo> list = mapper.selectByExample(new TbConfigInfoExample());
return list;
}
}
- controller代碼編寫
@Controller
public class TestController {
@Autowired
TestService testService;
@RequestMapping("/banner")
@ResponseBody
public Map<String, Object> test() {
Map<String, Object> map = new HashMap<>();
map.put("message", 100);
List<TbConfigInfo> banner = testService.getBanner();
map.put("data", banner);
return map;
}
}
運(yùn)行測(cè)試
我們將項(xiàng)目跑起來(lái) 輸入 localhost:8080/banner 得到如下結(jié)果 ,我們的配置就算成功了