11-24唐兆文

spring02

dbutils

DBUtils是Java编程中的数据库操作实用工具,小巧简单实用。

DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。

DBUtils三个核心功能介绍

  • QueryRunner中提供对sql语句操作的API
  • ResultSetHandler接口,用于定义select操作后,怎样封装结果集
  • DBUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法

  • QueryRunner(DataSourcr ds),提供数据源(连接池),DbUtils底层自动维护连接connection

  • update(String sql,Obj...params),执行更新数据

  • query(String sql,ResultSetHandlerrsh,Object...panrams),执行查询

    @Component 作用:把资源让 spring 来管理。相当于在 xml 中配置一个 bean。属性:value:指定 bean 的 id。如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小写。

    @Controller:一般用于表现层的注解。@Service:一般用于业务层的注解。@Repository:一般用于持久层的注解。

    用于注入数据的

    相当于:/

    @Autowired作用:自动按照类型注入。当使用注解注入属性时,set 方法可以省略。它只能注入其他 bean 类型(spring中有的)。当有多个类型匹配时,使用要注入的对象变量名称作为 bean 的 id,在 spring 容器查找,找到了也可以注入成功。找不到就报错。

    @Resource作用:直接按照 Bean 的 id 注入。属性:name:指定 bean 的 id。

    @Autowired和@Resource的区别 :

    Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。

如果 不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。

@Resource装配顺序1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

注解的优势:配置简单,维护方便(我们找到类,就相当于找到了对应的配置)。

XML 的优势:修改时,不用改源码。不涉及重新编译和部署。

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1