zoukankan      html  css  js  c++  java
  • spring+mybatis+druid+xml

    项目结构

    pom.xml
    父工程
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.jty</groupId>
        <artifactId>springmvc</artifactId>
        <packaging>pom</packaging>
        <version>1.0-SNAPSHOT</version>
        <modules>
            <module>servlet</module>
            <module>spring-mvc</module>
            <module>tx</module>
            <module>xmltx</module>
        </modules>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
            <maven.compiler.source>11</maven.compiler.source>
            <maven.compiler.target>11</maven.compiler.target>
        </properties>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>5.2.4.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>5.2.4.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>5.2.4.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.2.4.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>5.2.4.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
                <version>5.2.4.RELEASE</version>
            </dependency>
            <!--web子工程需要-->
           <!-- <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>2.2</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.22</version>
            </dependency>
        </dependencies>
    </project>
    
    子工程
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>springmvc</artifactId>
            <groupId>com.jty</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>xmltx</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.4</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.4</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.4.RELEASE</version>
        </dependency>
    </dependencies>
    
    </project>
    
    entity
    # 1
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public class Account {
        private Integer id;
        private Integer userId;
        private Integer money;
    }
    
    # 2
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public class Order {
        private Integer id;
        private Integer userId;
        private String commodityCode;
        private Integer count;
        private Integer money;
    }
    
    # 3
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public class Storage {
        private Integer id;
        private String commodityCode;
        private Integer count;
        private Integer unitPrice;
    }
    
    
    Mapper(Dao)
    # 1
    public interface AccountMapper {
        /**
         * s
         * @param account
         */
        void update(Account account);
    }
    
    # 2
    public interface OrderMapper {
        /**
         * s
         * @param order
         */
        void add(Order order);
    }
    
    # 3
    public interface StorageMapper {
        /**
         * s
         * @param storage
         */
        void update(Storage storage);
    }
    
    Service
    public class OrderService {
        @Autowired
        OrderMapper orderMapper;
        @Autowired
        StorageMapper storageMapper;
        @Autowired
        AccountMapper accountMapper;
    
        @Transactional(rollbackFor = Exception.class)
        public void doOrder(){
            //bz0001库存减20
            storageMapper.update(new Storage(null,"bz0001",100-20,100));
            //增加20份订单
            orderMapper.add(
                    new Order(null,0001,"bz0001",20,20*100));
            accountMapper.update(new Account(null,0001,1500-20*100));
        }
    }
    
    
    Main
    public class XmlMain{
    
        public static void main(String[] args) {
    
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");
            OrderService orderService = applicationContext.getBean(OrderService.class);
            orderService.doOrder();
        }
    }
    
    Mapper.xml

    AccountMapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="tx.mapper.AccountMapper">
    
        <insert id="update" parameterType="tx.entity.Account">
            update  account_tbl t1
            set t1.money =#{money}
            <where>
                t1.user_id = #{userId}
            </where>
        </insert>
    </mapper>
    

    OrderMapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="tx.mapper.OrderMapper">
    
        <insert id="add" parameterType="tx.entity.Order">
            insert into order_tbl
            values(null,#{userId},#{commodityCode},#{count},#{money})
        </insert>
    </mapper>
    

    StorageMapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="tx.mapper.StorageMapper">
    
        <insert id="update" parameterType="tx.entity.Storage">
            update  storage_tbl t1
            set t1.count =#{count}
            <where>
                t1.commodity_code = #{commodityCode}
            </where>
        </insert>
    </mapper>
    
    配置文件

    application.xml

    <?xml version="1.0" encoding="GBK"?>
    <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-3.1.xsd
                                http://www.springframework.org/schema/context
                                http://www.springframework.org/schema/context/spring-context-4.1.xsd">
    
        <!--组件扫描-->
        <context:component-scan base-package="tx.*"/>
        <context:property-placeholder location="classpath:jdbc-config.properties" ignore-unresolvable="true"/>
        <!--详细配置参数见 com.alibaba.druid.pool.DruidAbstractDataSource-->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value="${jdbc.driver}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
            <property name="initialSize" value="1"/>
            <property name="minIdle" value="1"/>
            <property name="maxActive" value="20"/>
            <property name="maxWait" value="60000"/>
            <property name="timeBetweenEvictionRunsMillis" value="60000"/>
        </bean>
        <!--配置sqlSessionFactoryBean对象-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"></property>
            <!--mybatis核心配置文件-->
            <property name="configLocation" value="classpath:mybatis.xml"/>
        </bean>
        <!--配置Mapper对象-->
        <bean class="org.mybatis.spring.mapper.MapperFactoryBean" scope="singleton">
            <property name="mapperInterface" value="tx.mapper.AccountMapper"/>
            <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
        </bean>
        <bean class="org.mybatis.spring.mapper.MapperFactoryBean" scope="singleton">
            <property name="mapperInterface" value="tx.mapper.OrderMapper"/>
            <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
        </bean>
        <bean class="org.mybatis.spring.mapper.MapperFactoryBean" scope="singleton">
            <property name="mapperInterface" value="tx.mapper.StorageMapper"/>
            <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
        </bean>
    
        <!--注册OrderService bean-->
        <bean class="tx.OrderService"/>
    </beans>
    

    jdbc-config.properties

    #mysql jdbc 连接配置
    jdbc.driver=com.mysql.cj.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/spring_tx_db?useUnicode=true&characterEncoding=utf8&useSSL=false&nullCatalogMeansCurrent=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    jdbc.username=root
    jdbc.password=123456
    

    mybatis.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
       <mappers>
       <mapper resource="mapperAccountMapper.xml"/>
       <mapper resource="mapperOrderMapper.xml"/>
       <mapper resource="mapperStorageMapper.xml"/>
    </mappers>
    </configuration>
    

    注:本文仅做记录

  • 相关阅读:
    re
    jieba
    Normalization的作用,LN,BN,WN
    RBF神经网络
    其他论文
    numpy, pandas,collections.Counter
    tensorflow 相关
    机器翻译(machine translation)相关
    2020 weblogin rce CVE-2020-14882 漏洞利用POC
    CVE-2021-3019 漏洞细节纰漏
  • 原文地址:https://www.cnblogs.com/jinit/p/13912571.html
Copyright © 2011-2022 走看看