<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • mybatis的xml配置和注解配置-創(chuàng)新互聯(lián)

            xml配置

            spring-application.xml

            創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比東山網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式東山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋東山地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
            <?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-3.0.xsd
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context.xsd"
            
                <import resource="spring-annotation-componentScan.xml" />
                <import resource="spring-data.xml" />
                <import resource="spring-mybatis.xml" />
                <import resource="spring-transaction.xml" />
            </beans>

            spring-annotation-componentScan.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-3.0.xsd
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context.xsd">
            
                <context:component-scan base-package="com.demo"/>
            
            </beans>

            spring-data.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-3.0.xsd
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context.xsd">
            
                <context:property-placeholder ignore-unresolvable="true"  location="jdbc.properties" />
                <!-- 配置數(shù)據(jù)源 使用的是Druid數(shù)據(jù)源 -->
                <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
                    <property name="url" value="${jdbc.url}" />
                    <property name="driverClassName" value="${jdbc.driverClassName}" />
                    <property name="username" value="${jdbc.username}" />
                    <property name="password" value="${jdbc.password}" />
                    <!-- 初始化連接大小 -->
                    <property name="initialSize" value="${druid.initialSize}" />
                    <!-- 連接池大使用連接數(shù)量 -->
                    <property name="maxActive" value="${druid.maxActive}" />
                    <!-- 連接池最小空閑 -->
                    <property name="minIdle" value="${druid.minIdle}" />
                    <!-- 獲取連接大等待時(shí)間 -->
                    <property name="maxWait" value="${druid.maxWait}" />
                    <property name="poolPreparedStatements" value="${druid.poolPreparedStatements}" />
                    <property name="maxPoolPreparedStatementPerConnectionSize" value="${druid.maxPoolPreparedStatementPerConnectionSize}" />
                    <!-- 用來檢測(cè)有效sql -->
                    <property name="validationQuery" value="${druid.validationQuery}" />
                    <property name="testOnBorrow" value="${druid.testOnBorrow}" />
                    <property name="testOnReturn" value="${druid.testOnReturn}" />
                    <property name="testWhileIdle" value="${druid.testWhileIdle}" />
                    <!-- 配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位是毫秒 -->
                    <property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />
                    <!-- 配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒 -->
                    <property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />
                    <!-- 打開removeAbandoned功能 -->
                    <property name="removeAbandoned" value="${druid.removeAbandoned}" />
                    <!-- 1800秒,也就是30分鐘 -->
                    <property name="removeAbandonedTimeout" value="${druid.removeAbandonedTimeout}" />
                    <!-- 關(guān)閉abanded連接時(shí)輸出錯(cuò)誤日志 -->
                    <property name="logAbandoned" value="${druid.logAbandoned}" />
                    <!-- 監(jiān)控?cái)?shù)據(jù)庫
                    <property name="filters" value="${druid.filters}" />
                    -->
                </bean>
            </beans>

            spring-mybatis.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"
                   xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
                  <!-- 創(chuàng)建SqlSessionFactory -->
                <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
                    <!-- 數(shù)據(jù)源:必須屬性 -->
                    <property name="dataSource" ref="dataSource" />
                    <!-- 指定mybatis的 XML映射器文件地址 -->
                    <property name="mapperLocations" value="classpath*:mybatis/*.xml" />
                    <!-- 可在mybatis配置文件中設(shè)置 -->
                    <property name="configuration">
                        <bean class="org.apache.ibatis.session.Configuration">
                            <property name="mapUnderscoreToCamelCase" value="true"/>
                        </bean>
                    </property>
                </bean>
            
                <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
                    <property name="basePackage" value="com.demo.mapper" />
                    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
                </bean>
            </beans>

            spring-transaction.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:tx="http://www.springframework.org/schema/tx"
                   xsi:schemaLocation="http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                http://www.springframework.org/schema/tx
                http://www.springframework.org/schema/tx/spring-tx.xsd">
                     <!-- 配置事務(wù)管理器 -->
                <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                    <property name="dataSource" ref="dataSource" />
                </bean>
                <!-- 注解方式配置事物 -->
                <tx:annotation-driven transaction-manager="transactionManager" />
            </beans>

            測(cè)試

             ClassPathXmlApplicationContext context11 = new ClassPathXmlApplicationContext("classpath:spring-application.xml");
                    UserMapper userMapper = context11.getBean(UserMapper.class);
                    User user = userMapper.getById(6498);
                    System.out.println("id = [" + user.getId() + "]");
                    System.out.println("name = [" + user.getName() + "]");

            注解配置

            ApplicationConfig啟動(dòng)入口

            @Configuration
            @Import({DaoConfig.class, ComponentScanConfig.class})
            public class ApplicationConfig {
            }

            ComponentScanConfig掃描注解bean

            @Configuration
            @ComponentScan(basePackages = {"com.demo.enity","com.demo.dao","com.demo.mapper","com.demo.service"})
            public class ComponentScanConfig {
            }

            DaoConfig持久層配置

            @Configuration
            @Import({MybatisConfig.class, TransactionConfig.class})
            public class DaoConfig {
            }

            MybatisConfig ORM配置

            @Configuration
            @Import(DruidPoolConfig.class)
            public class MybatisConfig {
            
                @Autowired
                private DataSource dataSource;
            
                @Bean("sqlSessionFactory")
                public SqlSessionFactoryBean sqlSessionFactory() throws IOException {
                    SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
                    sqlSessionFactoryBean.setDataSource(dataSource);
                    sqlSessionFactoryBean.setFailFast(true);
                    sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mybatis/*.xml"));
                    org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
                    configuration.setMapUnderscoreToCamelCase(true);
                    sqlSessionFactoryBean.setConfiguration(configuration);
                    return sqlSessionFactoryBean;
                }
            
                    @Bean
                public static MapperScannerConfigurer mapperScannerConfigurer() {
                    MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
                    mapperScannerConfigurer.setBasePackage("com.demo.mapper");
                    mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
                    return mapperScannerConfigurer;
                }
            }

            注意:
            MapperScannerConfigurer 實(shí)現(xiàn)了BeanDefinitionRegistryPostProcessor接口,因此該bean必須static修飾。否則啟動(dòng)加載的順序會(huì)出現(xiàn)錯(cuò)誤,如:DataSource 為null;

            PathMatchingResourcePatternResolver此類可以通配符加載資源;

            DruidPoolConfig連接池配置

            @Configuration
            @Import(DruidJdbcConfig.class)
            public class DruidPoolConfig {
            
                private final static Logger LOGGER = LoggerFactory.getLogger(DruidPoolConfig.class);
            
                @Autowired
                private DruidJdbcConfig druidJdbcConfig;
            
                @Bean("dataSource")
                public DataSource dataSource(){
                    DruidDataSource datasource = new DruidDataSource();
                    datasource.setUrl(druidJdbcConfig.getUrl());
                    datasource.setUsername(druidJdbcConfig.getUsername());
                    datasource.setPassword(druidJdbcConfig.getPassword());
                    datasource.setDriverClassName(druidJdbcConfig.getDriverClassName());
                    datasource.setInitialSize(druidJdbcConfig.getInitialSize());
                    datasource.setMinIdle(druidJdbcConfig.getMinIdle());
                    datasource.setMaxActive(druidJdbcConfig.getMaxActive());
                    datasource.setMaxWait(druidJdbcConfig.getMaxWait());
                    datasource.setTimeBetweenEvictionRunsMillis(druidJdbcConfig.getTimeBetweenEvictionRunsMillis());
                    datasource.setMinEvictableIdleTimeMillis(druidJdbcConfig.getMinEvictableIdleTimeMillis());
                    datasource.setValidationQuery(druidJdbcConfig.getValidationQuery());
                    datasource.setTestWhileIdle(druidJdbcConfig.isTestWhileIdle());
                    datasource.setTestOnBorrow(druidJdbcConfig.isTestOnBorrow());
                    datasource.setTestOnReturn(druidJdbcConfig.isTestOnReturn());
                    datasource.setRemoveAbandoned(druidJdbcConfig.isRemoveAbandoned());
                    datasource.setRemoveAbandonedTimeout(druidJdbcConfig.getRemoveAbandonedTimeout());
                    datasource.setLogAbandoned(druidJdbcConfig.isLogAbandoned());
                    try {
                        datasource.setFilters(druidJdbcConfig.getFilters());
                    } catch (SQLException e) {
                        LOGGER.error("datasource.setFilters occur error.", e);
                    }
                    return datasource;
                }
            }
            

            DruidJdbcConfig數(shù)據(jù)庫連接配置

            @Configuration
            @PropertySource("classpath:jdbc.properties")
            public class DruidJdbcConfig {
                @Value("${jdbc.url}")
                private String url;
                @Value("${jdbc.username}")
                private String username;
                @Value("${jdbc.password}")
                private String password;
                @Value("${jdbc.driverClassName}")
                private String driverClassName;
                @Value("${druid.initialSize}")
                private int initialSize;
                @Value("${druid.minIdle}")
                private int minIdle;
                @Value("${druid.maxActive}")
                private int maxActive;
                @Value("${druid.maxWait}")
                private int maxWait;
                @Value("${druid.timeBetweenEvictionRunsMillis}")
                private int timeBetweenEvictionRunsMillis;
                @Value("${druid.minEvictableIdleTimeMillis}")
                private int minEvictableIdleTimeMillis;
                @Value("${druid.validationQuery}")
                private String validationQuery;
                @Value("${druid.testWhileIdle}")
                private boolean testWhileIdle;
                @Value("${druid.testOnBorrow}")
                private boolean testOnBorrow;
                @Value("${druid.testOnReturn}")
                private boolean testOnReturn;
                @Value("${druid.removeAbandoned}")
                private boolean removeAbandoned;
                @Value("${druid.removeAbandonedTimeout}")
                private int removeAbandonedTimeout;
                @Value("${druid.logAbandoned}")
                private boolean logAbandoned;
                @Value("${druid.filters}")
                private String filters;
                @Value("${druid.logSlowSql}")
                private boolean logSlowSql;
                @Value("${druid.loginUsername}")
                private String loginUsername;
                @Value("${druid.loginPassword}")
                private String loginPassword;

            TransactionConfig事物配置

            @Configuration
            @Import(DruidPoolConfig.class)
            @EnableTransactionManagement
            public class TransactionConfig {
            
                @Autowired
                private DataSource dataSource;
            
                @Bean("transactionManager")
                public DataSourceTransactionManager transactionManager(){
                    DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
                    dataSourceTransactionManager.setDataSource(dataSource);
                    return dataSourceTransactionManager;
                }
            }

            注意:@EnableTransactionManagement注解管理事物,相當(dāng)于 <tx:annotation-driven transaction-manager="transactionManager" />

            測(cè)試

             AnnotationConfigApplicationContext context12 = new AnnotationConfigApplicationContext();
                    context12.register(ApplicationConfig.class);
                    context12.refresh();
                    UserService userService = context12.getBean(UserService.class);
                    User user = userService.save(6498);
                    System.out.println("id = [" + user.getId() + "]");
                    System.out.println("name = [" + user.getName() + "]");

            另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

            網(wǎng)頁名稱:mybatis的xml配置和注解配置-創(chuàng)新互聯(lián)
            鏈接地址:http://www.jbt999.com/article38/psjsp.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、商城網(wǎng)站、網(wǎng)站建設(shè)、ChatGPT網(wǎng)站設(shè)計(jì)公司、電子商務(wù)

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

            成都做網(wǎng)站

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 日本本一道久久久久久久 | 操屄视频大全 | 欧美精品福利视频 | 国产一级二级三级精品毛片 | 欧美成人精品导航 |