美文网首页
学习Spring5必知必会(6)~Spring DAO

学习Spring5必知必会(6)~Spring DAO

作者: 一乐乐 | 来源:发表于2022-03-15 22:51 被阅读0次


    一、Spring 对持久层技术的支持 Spring DAO

    1、模板类:

    图片.png

    2、基类:

    图片.png



    二、spring JDBC 【JDBCTemplate 模板类】

    1、案例:使用jdbc 完成crud操作

    (1)依赖:

    • mysql-connector-java.jar 【还可以使用德鲁伊连接池:druid.jar】
    • spring-jdbc.jar
    • spring-tx.jar

    (2)总结JdbcTemplate模板类-处理CRUD 操作:

    //DML操作:
    public update(String sql, Object...args)
    参数:sql     ?占位符对应的参数
    返回:受影响的行数
    
    //DQL 操作:
    public <T>List<T> query(String sql, Object...args, RowMapper<T> rowMapper)
    参数:sql     ?占位符对应的参数     结果集处理器
    返回:多行结果集封装的list
    


    (3)[代码重构,抽取重复的代码] 持久层JdbcTemplate的基类JDBCDaoSuppoet:

    图片.png 图片.png


    2、总结模板类JdbcTemplate的问题:

    (1)在模板类JdbcTemplate中使用的占位符 ?【顺序占位符】,需要数第几个,然后写对应的参数,参数多了麻烦

    (2)面对集合查询 in查询时(不确定参数个数), select * from employee where id in .....

    • in 后边不知道该怎么写,是应该写一个?还是(多少个?,都是不确定的)

    ✿ 解决:使用NameParameterJdbcTemplate 命名的参数JdbcTemplate模板,其实就是在JdbcTemplate外面套一层。

    • 允许使用 xx 来给占位参数起名称,我们需要给名称xx的位置设置参数。

    □ 举例:

    public int countOfActorsByFirstName(String firstName) {
        String sql = "select count(*) from T_ACTOR where first_name = :first_name";
        Map<String, String> namedParameters = Collections.singletonMap("first_name", firstName);
        return this.namedParameterJdbcTemplate.queryForObject(sql, namedParameters,  Integer.class);
    }
    



    三、Spring ORM --- 集成mybatis框架


    写在后面的话

           如果你觉得一乐的文章给您带来了一些收获,可以给个三连❤️ ,一乐会一如既往地更新有价值的博客。如果文章存在错误,也欢迎大家指出。还有,如果大家有什么好的学习技巧、学习感悟,也非常欢迎大家在评论区一起交流~

    最后感谢大家的支持,谢谢~

    相关文章

      网友评论

          本文标题:学习Spring5必知必会(6)~Spring DAO

          本文链接:https://www.haomeiwen.com/subject/cjgsrrtx.html