zoukankan      html  css  js  c++  java
  • spring jpa + mybatis快速开始:

    springmvc开始搭建

    <packaging>war</packaging>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>5.1.5.RELEASE</version>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <port>9000</port>
                        <path>/</path>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
    • web.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <!--配置Spring Ioc配置文件路径-->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContent.xml</param-value>
        </context-param>
        <!--ContextLoaderListener已初始化spring IOC容器-->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <!--注意: Spring MVC 框架会根据 servlet-name 配置,找到/WEB-INF/xx-servlet.xml 作为配置文件载入 Web 工程-->
        <servlet>
            <servlet-name>flyDispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>2</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>flyDispatcher</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
    </web-app>
    
    • xxx-servlet.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:p="http://www.springframework.org/schema/p"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
            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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
    ">
        <!--使用注解驱动-->
        <mvc:annotation-driven/>
        <!--扫描装载的包-->
        <context:component-scan base-package="com.*"/>
        <!--定义视图解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
            p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"
        />
    </beans>
    
    • controller:
    @Controller
    @RequestMapping("/my")
    public class controller {
        @RequestMapping("/index")
        public ModelAndView index(){
            ModelAndView mv = new ModelAndView();
            mv.setViewName("index");
            return mv;
        }
    }
    
    • applicationContent-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
    ">
        <context:property-placeholder location="classpath:db.properties" ignore-unresolvable="true"/>
        <!--使用注解驱动-->
        <context:annotation-config/>
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value="${db.driver.class}" />
            <property name="url" value="${db.url}" />
            <property name="username" value="${db.username}" />
            <property name="password" value="${db.password}" />
            <property name="initialSize" value="3" />
            <property name="minIdle" value="3" />
            <property name="maxActive" value="20" />
            <property name="maxWait" value="10000" />
        </bean>
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
        </bean>
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"/>
        </bean>
        <!--自动扫描方式创建 mapper bean-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.dao"/>
            <property name="sqlSessionFactoryBeanName" value="transactionManager"/>
        </bean>
    </beans>
    
    • applicationContent-hibernate.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"
           xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
           xmlns:jpa="http://www.springframework.org/schema/data/jpa"
           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/aop http://www.springframework.org/schema/aop/spring-aop.xsd
                http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
                http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
        <!-- 配置读取properties文件的工具类 -->
        <context:property-placeholder location="classpath:db.properties"/>
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
            <property name="driverClassName" value="${db.driver.class}"/>
            <property name="url" value="${db.url}"/>
            <property name="username" value="${db.username}"/>
            <property name="password" value="${db.password}"/>
            <property name="initialSize" value="3"/>
            <property name="minIdle" value="3"/>
            <property name="maxActive" value="20"/>
            <property name="maxWait" value="10000"/>
        </bean>
        <!-- Spring整合JPA  配置EntityManagerFactory-->
        <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <property name="jpaVendorAdapter">
                <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                    <!-- hibernate相关的属性的注入 -->
                    <!-- 配置数据库类型 -->
                    <property name="database" value="MYSQL"/>
                    <!-- 正向工程 自动创建表 -->
                    <!--<property name="generateDdl" value="true"/>-->
                    <!-- 显示执行的SQL -->
                    <property name="showSql" value="true"/>
                </bean>
            </property>
            <!-- 扫描实体的包 -->
            <property name="packagesToScan">
                <list>
                    <value>com.pojo</value>
                </list>
            </property>
        </bean>
        
        <!-- 配置Hibernate的事务管理器 -->
        <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
            <property name="entityManagerFactory" ref="entityManagerFactory"/>
        </bean>
        
        <!-- 配置开启注解事务处理 -->
        <tx:annotation-driven transaction-manager="transactionManager"/>
        <!-- 配置springIOC的注解扫描 -->
        <context:component-scan base-package="com"/>
        <!-- Spring Data JPA 的配置 -->
        <!-- base-package:扫描 dao 接口所在的包 -->
        <jpa:repositories base-package="com.dao"/>
    </beans>
    
    • 通用:

    Users:

    @Data
    @ToString
    @Entity
    @Table(name = "users")
    public class Users {
        @Id
        @Column(name = "id")
        private Integer id;
    
        @Column(name = "firstname")
        private String firstname;
    
        @Column(name = "lastname")
        private String lastname;
    
        @Column(name = "phone")
        private String phone;
    
        @Column(name = "email")
        private String email;
    }
    

    UsersService:

    @Service
    public class UsersService {
    //    @Resource
    //    private UsersMapper usersMapper;
    
        @Autowired
        private UserDao userDao;
    
        public List<Users> selectAll() {
    //        return this.usersMapper.selectAll();
            return this.userDao.findAll();
        }
    }
    

    controller:

    @Controller
    @RequestMapping("/my")
    public class controller {
        @Autowired
        private UsersService usersService;
    
        @RequestMapping("/index")
        public ModelAndView index(){
            ModelAndView mv = new ModelAndView();
            mv.setViewName("index");
            return mv;
        }
    
        @RequestMapping("/users")
        public ModelAndView getUsers(){
            List<Users> users = this.usersService.selectAll();
            ModelAndView mv = new ModelAndView();
            mv.setViewName("users");
            mv.addObject("users",users);
            return mv;
        }
    }
    

    users.jsp:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>users</title>
    </head>
    <body>
        <h1>users</h1>
    <c:forEach items="${users}" var="user">
        <c:out value="${user.firstname}"/>
    </c:forEach>
    </body>
    </html>
    
    • mybatis:

    UsersMapper:

    public interface UsersMapper {
        List<Users> selectAll();
    }
    

    UsersMapper.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="com.dao.UsersMapper">
        <select id="selectAll" resultType="com.pojo.Users">
            select * from users
        </select>
    </mapper>
    
    • hibernate:
    public interface UserDao extends JpaRepository<Users,Integer> {
    }
    
  • 相关阅读:
    命令行推送文章到博客园
    链表的新写法
    关于vim无法复制到剪切板的问题
    Ethernet & ARP Protocol
    [从今天开始修炼数据结构]串、KMP模式匹配算法
    [从今天开始修炼数据结构]队列、循环队列、PriorityQueue的原理及实现
    [从今天开始修炼数据结构]栈、斐波那契数列、逆波兰四则运算的实现
    [从今天开始修炼数据结构]线性表及其实现以及实现有Itertor的ArrayList和LinkedList
    IntelliJ IDEA快捷键大全
    [从今天开始修炼数据结构]基本概念
  • 原文地址:https://www.cnblogs.com/fly-book/p/10456845.html
Copyright © 2011-2022 走看看