zoukankan      html  css  js  c++  java
  • Spring与MyBatis整合

    1、Spring

            Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

    2、MyBatis

           MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

    1.Maven引入jar包

    <!--druid数据源-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.29</version>
            </dependency>
    
    
            <!--MyBatis-->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.2.2</version>
            </dependency>
    
    
            <!--单测-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.3</version>
                <scope>test</scope>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>4.2.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>4.2.0.RELEASE</version>
            </dependency>
            <!--mybatis jar包-->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.2.2</version>
            </dependency>
    
            <!--Mybatis+Spring整合-->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>1.2.1</version>
            </dependency>
    
            <!-- Spring整合JavaWeb的包 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>4.2.0.RELEASE</version>
            </dependency>
    
    
            <!--jstl表达式-->
            <dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>
    
            <!--java ee-->
            <dependency>
                <groupId>javaee</groupId>
                <artifactId>javaee-api</artifactId>
                <version>5</version>
            </dependency>
    
            <!-- MySQLjar -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.38</version>
            </dependency>
    
            <!--aop使用的jar-->
            <dependency>
                <groupId> org.aspectj</groupId >
                <artifactId> aspectjweaver</artifactId >
                <version> 1.8.7</version >
            </dependency>
    

      

    2.创建JDBC.properties文件

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/y2167?useUnicode=true&characterEncoding=utf8
    jdbc.username=root
    jdbc.password=
    

      

    3.创建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"
           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">
    
        <!--配置数据源-->
        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    
            <property name="driverClassName" value="${jdbc.driver}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
        </bean>
    
        <!--识别jdbc.properties文件-->
        <context:property-placeholder location="classpath:jdbc.properties"/>
    
        <!--把SqlSessionFactory生产权交给spring-->
        <bean class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
    
        </bean>
    
        <!--DAO-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <!--设置包路径-->
            <property name="basePackage" value="cn.happy.day16SSM.dao"/>
        </bean>
        <!--service-->
        <bean id="bookservice" class="cn.happy.day16SSM.service.BookServiceImpl">
          <!--注意事项:如果接口是以I开头,那么会默认在内存中默认生成一个与接口名字一样的实现类如IXXXDAO
             如果不是一I开头,则默认生成第一个小写字母开头如 xXXDAO
          --> <property name="dao" ref="IBookDAO"/> </bean> </beans>

     

    4.数据库结构

    4.创建接口实体类

     

    代码如下

    package cn.happy.day16SSM.dao;
    
    import cn.happy.day16SSM.entity.Book;
    
    /**
     * Created by Administrator on 2018/3/16.
     */
    public interface IBookDAO {
        //添加图书
        public int addBook(Book book);
    }
    

     DAO.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">
    <!--namespace:接口绝对路径-->
    <mapper namespace="cn.happy.day16SSM.dao.IBookDAO">
        <!--根据Id修改Name-->
        <insert id="addBook">
            INSERT into book(bookName,bookAuthor,bookPrice)VALUES (#{bookName},#{bookAuthor},#{bookPrice})
        </insert>
    
    </mapper>
    

      

    entity

    package cn.happy.day16SSM.entity;
    
    /**
     * Created by Administrator on 2018/3/16.
     */
    public class Book {
        private Integer bookId;
        private String bookName;
        private String bookAuthor;
        private Integer bookPrice;
    
        public Integer getBookId() {
            return bookId;
        }
    
        public void setBookId(Integer bookId) {
            this.bookId = bookId;
        }
    
        public String getBookName() {
            return bookName;
        }
    
        public void setBookName(String bookName) {
            this.bookName = bookName;
        }
    
        public String getBookAuthor() {
            return bookAuthor;
        }
    
        public void setBookAuthor(String bookAuthor) {
            this.bookAuthor = bookAuthor;
        }
    
        public Integer getBookPrice() {
            return bookPrice;
        }
    
        public void setBookPrice(Integer bookPrice) {
            this.bookPrice = bookPrice;
        }
    }
    

      

    serviceImpl

    package cn.happy.day16SSM.service;
    
    import cn.happy.day16SSM.dao.IBookDAO;
    import cn.happy.day16SSM.entity.Book;
    
    /**
     * Created by Administrator on 2018/3/16.
     */
    public class BookServiceImpl implements BookService {
        //
        private IBookDAO dao;
    
        public IBookDAO getDao() {
            return dao;
        }
    
        public void setDao(IBookDAO dao) {
            this.dao = dao;
        }
    
        public int addBook(Book book) {
            return dao.addBook(book);
        }
    }
    

      

    5.测试类

    package day16SSM;
    
    import cn.happy.day15tx.service.IStockService;
    import cn.happy.day16SSM.dao.IBookDAO;
    import cn.happy.day16SSM.entity.Book;
    import cn.happy.day16SSM.service.BookService;
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    /**
     * Created by Administrator on 2018/3/3.
     */
    public class Test20180316 {
    
        //Spring+MyBatis整合
        @Test
        public void Spring(){
            ApplicationContext ctx=new ClassPathXmlApplicationContext("Spring-MyBatis.xml");
            BookService service=(BookService)ctx.getBean("bookservice");
            Book book=new Book();
            book.setBookName("JAVA Web");
            book.setBookAuthor("许令波");
            book.setBookPrice(60);
            service.addBook(book);
        }
    
    
    }
    

      

    测试结果

  • 相关阅读:
    Pytorch使用tensorboardX实现loss曲线可视化。超详细!!!
    numpy安装失败:numpy和cv2的版本不一样吧 pip安装/卸载
    问题解决:RuntimeError: CUDA out of memory.(....; 5.83 GiB reserved in total by PyTorch)
    前端刷题网站
    vscode如何使用ssh连接远程linux
    marginnote使用
    前端知识点
    HTTP状态码
    内置对象总结
    微信小程序
  • 原文地址:https://www.cnblogs.com/xuchangqi1/p/8595381.html
Copyright © 2011-2022 走看看