• Spring整合MyBatis


    首先下载jar包  mybatis-spring.jar  

    原因spring3.0出来的早,MyBatis3.0晚,意味着Spring不愿意去在一个没有做出发布版本的MyBatis上做过多的设置。所以,最终jar包提供者第三方。

     <!--Mybatis+Spring整合-->

        <dependency>

          <groupId>org.mybatis</groupId>

          <artifactId>mybatis-spring</artifactId>

          <version>1.2.0</version>

        </dependency>0.jar包  mybatis-spring.jar  

    先建一个SpringSSM文件,在该文件中创建实体类entity层,并在该层中写上和数据库相应的属性值,并将其进行get,set封装

    添加图书分层:

    public class Book {
        private Integer bookId;
        private String bookName;
        private int bookPrice;
    创建dao层,在该层中创建BookDao接口,并写上实现方法
    public interface BookDao {
          //添加
        public  int  add(Book book);
    }
    
    写完接口之后,接着在该层中写上一个小配置BookDao.xml,需要注意的是该小配置的名要和接口一致,以免出现不必要的错误,在该配置中需要写上SQL语句
    <?xml version="1.0" encoding="UTF-8" ?>
    <!--头文件-->
    <!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="cn.happy.SpringSSM.dao.BookDao">
        <insert id="add">
            insert into book(bookname,bookprice) values(#{bookName},#{bookPrice})
        </insert>
    </mapper>
    接下来就是Service层了,同样在该层中创建一个BookService接口,并写上一个实现方法,和dao层中的方法一样
    public interface BookService {
        public  int add(Book book);
    }
    当然也要在该层中创建一个BookServiceImpl类,用它来实现接口中的方法,并且将dao层中的接口名称植入到该类中  
    public class BookServiceImpl implements BookService {
          BookDao dao;
    
        public BookDao getDao() {
            return dao;
        }
    
        public void setDao(BookDao dao) {
            this.dao = dao;
        }
    
        public int add(Book book) {
            return dao.add(book);
        }
    }
    接下来最重要的就是resources中配置了
    
    首先创建一个jdbc.properties,在这写上连接数据库的用户名,密码,数据库名等等
    jdbc.driverClassName=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql:///bookstok
    jdbc.user=sha
    jdbc.password=sha
    还有一个MyBatis-config.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    
        <!--类型别名-->
    <typeAliases>
            <package name="cn.happy.SpringSSM.entity"></package>
        </typeAliases>
    
    </configuration>
    之后就是大配置了
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:p="http://www.springframework.org/schema/p"
    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.xsd
            http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context.xsd
          http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx.xsd
            http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop.xsd
         ">
        <!-- 1.识别jdbc。properties-->
    
    <context:property-placeholder location="jdbc.properties"></context:property-placeholder>
     <!--2.dbcp数据源--> <!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql:///bookstok"></property> <property name="username" value="sha"></property> <property name="password" value="sha"></property> </bean>--> <!--2.创建数据源 Spring--><context:property-placeholder location="jdbc.properties"></context:property-placeholder> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" > <property name="driverClassName" value="${jdbc.driverClassName}"></property> <property name="url" value="${jdbc.url}"></property> <property name="username" value="${jdbc.user}" ></property> <property name="password" value="${jdbc.password}" ></property> </bean> <!--3.配置SqlSessionFactoryBean 工厂配置--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--引用数据源组件--><property name="dataSource" ref="dataSource"></property> <!--引用mybatis配置文件中的配置--><property name="configLocation" value="classpath:MyBatis-config.xml"></property> </bean><!--4.dao 实现类,映射文件的扫描可以动态的在内存中构建接口的实现类,代理对象--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="cn.happy.SpringSSM.dao"></property> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean> <!--5.service--><bean id="bookservice" class="cn.happy.SpringSSM.service.BookServiceImpl"> <property name="dao" ref="bookDao"></property> </bean>
    <!--6.事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    
    <!-- 7.AspectJ AOP 配置事务 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="buy*" isolation="DEFAULT" propagation="REQUIRED" rollback-for="StockException"/>
        </tx:attributes>
    </tx:advice>
    
    <aop:config>
        <!--配置了切点Pointcut-->
    <aop:pointcut id="mypoint" expression="execution(* *..service.*.*(..))"/>
        <!--顾问-->
    <aop:advisor advice-ref="txAdvice" pointcut-ref="mypoint"></aop:advisor>
    </aop:config>
    </beans>
    接下来就到测试类了
    public class SpringSSMText {
        @Test
        public  void  ssmtest(){
            ApplicationContext appl=new ClassPathXmlApplicationContext("applicationContextSpringSSM.xml");
            BookService  bb= (BookService) appl.getBean("bookservice");
            Book  bk=new Book();
            bk.setBookName("12");
            bk.setBookPrice(23);
            bb.add(bk);
    
        }
  • 相关阅读:
    TCP三次握手四次挥手
    TCP与UDP的区别
    mysql从库设置全局只读,并创建普通账号
    docker安装mysql主从
    mysql 更换数据目录
    Docker 部署 ElasticSearch
    js获取地址栏传参
    PHP-MySQL基本操作
    基于element-tree-table树型表格点击节点请求数据展开树型表格
    拖拽读取文件
  • 原文地址:https://www.cnblogs.com/wangbenqing/p/7296049.html
Copyright © 2020-2023  润新知