关于springboot:SpringBoot学习总结02

Spring 治理bean的劣势

应用计算机的目标时进行高效且低耗的计算。
对于面向对象语言来说解决问题,须要迷信的使用对象,使之在内存中高效低耗的运行,要达成这样的目标须要肯定的教训,所以咱们须要借助有教训的设计框架,如spring框架。spring框架睁开眼在多个对象协同作用时,低耦合的形式进步其拓展性。

@Qualifier

在接口实现类存在多个的时候,在注入@Autowired的同时加上@Qualifier注解指定其注入哪个。

DataSource

在java中所有连接池必须恪守datasource标准,能够通过DataSource或缺具体链接池对象。

数据链接池的长处

1.资源的重用
大大减少连贯创立和敞开的时候的老本
2.连贯治理更加的自在
用户能够本人依据须要调整,本人所须要的连贯配置
3.大大的缩小零碎反应时间
缩小创立连贯的工夫,从缩小整体的零碎可能反应时间。

案例

接口的定义

package com.cy.pj.goods.dao;
import java.util.List;
import java.util.Map;
public interface GoodsDao {
    List<Map<String,Object>> findGoods();
}

实现类()
finally里代码为敞开conn,stat,rs。
未写出能够本人封装援用。

package com.cy.pj.goods.dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import javax.sql.DataSource;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Repository
public class DefaultGoodsDao implements GoodsDao{
   @Autowired
 private DataSource dataSource;
    @Override
 public List<Map<String, Object>> findGoods() {
        Connection conn=null;
        Statement stat=null;
        ResultSet rs=null;
        String sql="select * from tb_goods";
        List<Map<String,Object>> list=new ArrayList<>();
        try{
            conn=dataSource.getConnection();
            stat=conn.createStatement();
            rs=stat.executeQuery(sql);
            ResultSetMetaData rsmd= rs.getMetaData();
            while (rs.next()) {
                list.add(rowsmap(rsmd, rs));
            }
            
            return list;
        }catch (SQLException e){
            e.printStackTrace();
            return null;
            
        }finally{
        }
        
    }
    private Map<String,Object> rowsmap(ResultSetMetaData rsmd,ResultSet rs) throws SQLException{
        int columnCount = rsmd.getColumnCount();
        Map<String,Object> map=new HashMap<>();
        for (int i=1;i<=columnCount;i++){
            map.put(rsmd.getColumnLabel(i),rs.getObject(i));
        }
        return map;
    }
}

测试类

package com.cy.pj.goods.dao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
import java.util.Map;
@SpringBootTest
public class GoodsDaoTest {
    @Autowired
 private GoodsDao goodsDao;
    @Test
 void testGoodsDao(){
        List<Map<String,Object>> list=goodsDao.findGoods();
        for (Map<String,Object> map:list){
            System.out.println(map);
        }
    }
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理