• spring基础


    1.spring注解

    1.jar包

    2. 配置文件

    2. spring AOP切面编程

    2.1 jar包

    3. spring中的JdbcTemplate

      jdbcTemplate是对原始的jdbc做了封装。

    3.1 jar包

     3.2 基本操作

        public void test(){
            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/db_jdbc?characterEncoding=utf-8");
            dataSource.setUsername("root");
            dataSource.setPassword("123");
    
            JdbcTemplate template = new JdbcTemplate();
            //进行操作
            template.execute("INSERT INTO tb_user () VALUES ()");
        }

     3.3 基于注解

    bean.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans 
                                  http://www.springframework.org/schema/beans/spring-beans.xsd 
                                  http://www.springframework.org/schema/context 
                                  http://www.springframework.org/schema/context/spring-context.xsd">
        <context:component-scan base-package="cn.getword" />
        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="com.mysql.jdbc.Driver" />
            <property name="url" value="jdbc:mysql://localhost:3306/db_jdbc?characterEncoding=utf-8" />
            <property name="username" value="root" />
            <property name="password" value="123" />
        </bean>
        <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
            <property name="dataSource" ref="dataSource" />
        </bean>
    
    </beans>

     UserDaoImpl:

    @Repository
    public class UserDaoImpl implements UserDao {
        @Autowired
        private JdbcTemplate jdbcTemplate;
        public List<User> save(){
            List<User> users = new ArrayList<User>();
            List<Map<String, Object>> maps =
                    jdbcTemplate.queryForList("SELECT * FROM users ");
            for (Map<String, Object> map :
                    maps) {
                User user = new User() {{
                    setId((Integer) map.get("id"));
                    setUsername((String) map.get("username"));
                    setPassword((String) map.get("password"));
                    setAge((Integer) map.get("age"));
                    setRegisterTime((Date) map.get("registerTime"));
                }};
                users.add(user);
            }
            return users;
        }
    }

    4. spring的声明式事务控制【使用JdbcTemplate】

    4.1 jar包

      核心包+aop+事务相关

     4.2 xml配置方式

    (1)配置JDBC事务类,交给spring管理

    org.springframework.jdbc.datasource.DataSourceTransactionManager
    <bean id="transactionManager"
              class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
              p:dataSource-ref="dataSource"/>

    (2)配置切面

      <!--配置通知-->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <!--配置通知方法,具体被增强的方法-->
            <tx:attributes>
                <tx:method name="save" isolation="DEFAULT" propagation="REQUIRED" read-only="true"/>
                <tx:method name="find*" propagation="SUPPORTS" read-only="true" />
            </tx:attributes>
        </tx:advice>
        <!--配置切面-->
        <aop:config>
            <!--切入点, 可能被增强的方法-->
            <aop:pointcut id="myPointCut" expression="execution(* cn.getword.service.impl.*.*(..))" />
            <!--配置增强和切入点的关系-->
            <aop:advisor advice-ref="txAdvice" pointcut-ref="myPointCut" />
        </aop:config>

    4.3  xml和注解组合配置

        <!-- JDBC事务管理器 -->
        <bean id="transactionManager"
              class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>
    
        <!-- 启用支持annotation注解方式事务管理 -->
        <tx:annotation-driven transaction-manager="transactionManager"  proxy-target-class="true"/>
    @Service
    @Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, readOnly = false)
    public class UserServiceImpl implements UserService {
        @Autowired
        private UserDao userDao;
    }

    end

  • 相关阅读:
    php学习之Model类
    PHP学习之图像处理-水印类
    PHP学习之文件上传类
    windows 安装gitea
    下载安装office2019
    第6章 互联网的那些事儿
    第五章 了解你的用户
    第四章 关于测试的一些思考
    第三章 web设计原则:
    第二章 编程之道
  • 原文地址:https://www.cnblogs.com/zhuxiang1633/p/9809249.html
Copyright © 2020-2023  润新知