首页 > 数据库技术 > 详细

数据库连接池技术笔记——2

时间:2019-11-05 21:55:26      阅读:94      评论:0      收藏:0      [点我收藏+]

Spring JDBC

   Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发

* 步骤:
  1. 导入jar包

    commons-logging-1.2.jar

    spring-beans-5.0.0.RELEASE.jar

    spring-core-5.0.0.RELEASE.jar

    spring-jdbc-5.0.0.RELEASE.jar

    spring-tx-5.0.0.RELEASE.jar
  2. 创建JdbcTemplate对象。依赖于数据源DataSource
    * JdbcTemplate template = new JdbcTemplate(ds);

  3. 调用JdbcTemplate的方法来完成CRUD的操作
    * update():执行DML语句。增、删、改语句
    * queryForMap():查询结果将结果集封装为map集合,将列名作为key,将值作为value 将这条记录封装为一个map集合
    * 注意:这个方法查询的结果集长度只能是1
    * queryForList():查询结果将结果集封装为list集合
      * 注意:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中    
    * query():查询结果,将结果封装为JavaBean对象
    * query的参数:RowMapper
      * 一般我们使用BeanPropertyRowMapper实现类。可以完成数据到JavaBean的自动封装
    * new BeanPropertyRowMapper<类型>(类型.class)
    * queryForObject:查询结果,将结果封装为对象
      * 一般用于聚合函数的查询

JDBCTemplate后使用的连接池的封装:

druid的封装:
    
public class JDBCUtils {

    private static DataSource ds;

    static {

        try {
            //加载配置文件
            Properties pro = new Properties();
            //使用ClassLoader加载配置文件,获取字节输入流
            InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
            pro.load(is);

            //初始化连接池对象
            ds = DruidDataSourceFactory.createDataSource(pro);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    /**
     * 获取连接池对象
     */
    public static DataSource getDataSource(){
        return ds;
    }

    /**
     * 获取连接connection对象
     */
    public static Connection getConnection() throws SQLException {
        return ds.getConnection();
    }
}

c3p0封装:

public class JDBCUtils {

    //1.定义成员变量 DataSource
    private static DataSource ds =null ;
    /**
     *
     * @return 返回数据库连接池对象
     * @throws SQLException
     */
    public static Connection getConnection() throws SQLException {
        //创建数据库的连接对象
         ds = new ComboPooledDataSource();
        /*//获取连接对象
        Connection coon = ds.getConnection();
        return coon;*/

        return ds.getConnection();
    }

/** * 返回连接池 * @return */ public static DataSource getDataSource(){ return ds; } }

 JDBCTemplate

 

/**
 * jdbctemplate入门
 */
public class JDBCTemplateDemo01 {

    public static void main(String[] args) {

        //1.导包
        //2.创建JDBCTemplate对象
        JdbcTemplate template = new JdbcTemplate(JDBCUtils3.getDataSource());
        //3.调用方法
        /*String sql ="update user set password = ? where username = ?";
        int num = template.update(sql, "12345", "asd");
        System.out.println(num);*/

        /*String sql = "select * from user where username = ?;";
        Map<String, Object> asd = template.queryForMap(sql);
        System.out.println(asd);*/

        /*String sql = "select * from user;";
        List<Map<String, Object>> maps = template.queryForList(sql);
        System.out.println(maps);*/

        String sql ="select * from user;";
        List<User> query = template.query(sql, new RowMapper<User>() {
            @Override
            public User mapRow(ResultSet rs, int i) throws SQLException {
                User user = new User();
                user.setUsername(rs.getString("username"));
                user.setPassword(rs.getString("password"));
                return user;
            }
        });
        System.out.println(query);
    }
}

 

 

 

 

 

数据库连接池技术笔记——2

原文:https://www.cnblogs.com/naigai/p/11801764.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!