乐趣区

关于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);
        }
    }
}
退出移动版