zoukankan      html  css  js  c++  java
  • SSM整合Mybatis-Spring

    mybatis -Spring 整合

    cn.kitty.bean

    public class Book {
        private  int bookid;
        private String bookname;
        private int bookprice ;
    
        public Book() {
        }
    
        public Book(int bookid, String bookname, int bookprice) {
            this.bookid = bookid;
            this.bookname = bookname;
            this.bookprice = bookprice;
        }

    cn.kitty.dao

    
    
    public interface IBookDao {
        public  void addBook(Book book);
    }
    
    

    cn.kitty.daoi.mpl

    <?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="cn.kitty.dao.IBookDao">
        <insert id="addBook">
      insert book (bookname,bookprice) VALUES (#{bookname},#{bookprice})
        </insert>
    </mapper>

    cn.kitty.service

     
    public interface IBookService {
        public  void addBook(Book book);
    }

    cn.kitty.service.impl

    package cn.kitty.service.impl;
    
    import cn.kitty.bean.Book;
    import cn.kitty.dao.IBookDao;
    import cn.kitty.service.IBookService;
    
    public class BookServiceImpl implements IBookService {
        private IBookDao dao;
        public void addBook(Book book) {
          dao.addBook(book);
        }
    
        public IBookDao getDao() {
            return dao;
        }
    
        public void setDao(IBookDao dao) {
            this.dao = dao;
        }
    }

    ApplicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:context="http://www.springframework.org/schema/context"
           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/aop http://www.springframework.org/schema/aop/spring-aop.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
    ">
        <!--01.识别jdbc.properties文件-->
        <context:property-placeholder location="jdbc.properties"></context:property-placeholder>
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="jdbcUrl" value="jdbc:mysql:///aount"></property>
            <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
            <property name="user" value="root"></property>
            <property name="password" value=""></property>
        </bean>
        <!--03.工厂配置-->
        <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"></property>
            <!--big config path-->
            <property name="configLocation" value="classpath:Mybatis-config.xml"></property>
        </bean>
        <!--dao  实现类 映射文件的扫描器可以动态的在内存中构建接口的实现类,代理对象-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="cn.kitty.dao"></property>
        </bean>
        <!--service-->
        <bean id="bookService" class="cn.kitty.service.impl.BookServiceImpl">
            <property name="dao" ref="IBookDao"></property>
        </bean>
        <!--06.事务管理器-->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
        <!-- 07.AspectJ AOP 配置事务 -->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="addBook" isolation="DEFAULT" propagation="REQUIRED"/>
        </tx:attributes>
    </tx:advice>
        <aop:config>
            <!--配置了切点Pointcut  * *..service.*.*(..))-->
            <aop:pointcut id="mypoint" expression="execution(* *..service.*(..))"/>
            <!--顾问-->
            <aop:advisor advice-ref="txAdvice" pointcut-ref="mypoint"></aop:advisor>
        </aop:config>
    
    </beans>

    jdbc.properties

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql:///aount
    jdbc.username=root
    jdbc.password=

    Mybatis-config.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>
        <!--<typeAliases>
            <package name="cn.kitty.bean"></package>
        </typeAliases>-->
        <mappers>
            <!--<package name="cn.kitty.dao"></package>-->
            <mapper resource="cn/kitty/dao/IBookDao.xml"/>
        </mappers>
    </configuration>

    Test测试

    package cn;
    
    import cn.kitty.bean.Book;
    import cn.kitty.service.IBookService;
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class TestSSM {
        @Test
        public void  ssm(){
            ApplicationContext context=new ClassPathXmlApplicationContext("ApplicationContext.xml");
          IBookService bookService =(IBookService)context.getBean("bookService");
          Book book=new Book();
          book.setBookname("mybatis-Spring-");
          book.setBookprice(23);
          bookService.addBook(book);
        }
    }

     运行结果

     
  • 相关阅读:
    课后作业-阅读任务-阅读提问-1
    Android:XML简介 & 解析方式对比(DOM、SAX、PULL)
    Android Handler
    Android BroadcastReceiver解析
    Android:(本地、可通信的、前台、远程)Service使用全面介绍
    android 服务解析
    android 解决子线程进行UI操作
    android 基础题
    java中的synchronized(同步代码块和同步方法的区别)
    Java 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
  • 原文地址:https://www.cnblogs.com/cuixiaomeng/p/7704509.html
Copyright © 2011-2022 走看看