使用maven 一步一步搭建Spring+mybatis环境

来源:互联网 发布:网络直播需要哪些设备 编辑:程序博客网 时间:2024/05/22 08:21

本文章适合初学者学习 spring mybatis的一个操作 指导
首先看一下项目整体架构
这里写图片描述
看看这个项目是不是你想要的如果不是,就不用跟我这篇博客浪费时间了

  • 从spring的配置文件开始讲起
    applicationConetxt.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:p="http://www.springframework.org/schema/p"         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/aop                  http://www.springframework.org/schema/aop/spring-aop-3.0.xsd                 http://www.springframework.org/schema/tx                 http://www.springframework.org/schema/tx/spring-tx-3.0.xsd                 http://www.springframework.org/schema/context                 http://www.springframework.org/schema/context/spring-context-3.0.xsd">          <!-- 1.采用注释的方式配置bean -->            <context:annotation-config />            <!-- 2.配置要扫描的包 -->            <context:component-scan base-package="com.l"></context:component-scan>          <!-- 3.加载 jdbc.properties 配置文件 -->          <bean              class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">              <property name="locations">                  <list>                      <value>classpath:jdbc.properties</value>                  </list>              </property>          </bean>          <!-- 4.配置数据源 这里用的是阿里巴巴的德鲁伊 也可以配置成别的 -->       <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"        destroy-method="close" init-method="init" p:driverClassName="${jdbc.driverClassName}"        p:url="${jdbc.url}" p:connectionProperties="druid.stat.slowSqlMillis=1000;druid.stat.logSlowSql=true"        p:username="${jdbc.name}" p:password="${jdbc.pass}" p:minIdle="30"        p:maxActive="200" p:poolPreparedStatements="true"        p:maxPoolPreparedStatementPerConnectionSize="20" p:initialSize="100"        p:maxWait="60000" p:testWhileIdle="true" p:validationQuery="select 1"        p:timeBetweenEvictionRunsMillis="60000" >        <description>数据源配置</description>    </bean>         <!-- 5.Session工厂 -->          <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">              <property name="dataSource" ref="dataSource" />              <!-- mybatis配置文件 -->              <property name="configLocation" value="classpath:mybatis.xml" />          </bean>          <!-- 6. 配置SqlSessionTemplate 为了程序中调用使用-->            <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">                <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />            </bean>      </beans>     
  • mybatis的配置文件
<?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>              <typeAlias alias="personal" type="com.l.models.User"/>          </typeAliases>          <!-- 指定映射文件 这个文件就是你sql脚本所在的文件 可以配置多个 -->          <mappers>              <mapper resource="sqlmap/Usersmapping.xml" />          </mappers>      </configuration>  
  • Usersmapping.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">                  <!--命名空间可以指向具体的 dao接口这样可以不写实现类自动调用  -->    <mapper namespace="com.darren.daointerface">          <cache />          <select id="queryById" resultType="personal" parameterType="int">              SELECT              UID,              USERNAME,              PASSWORD              FROM USERS              WHERE UID = #{id}          </select>      </mapper>  
  • QuerUser.java
    这个就是个servlet 测试用的 模拟页面上点击一个按钮
    就是从 spring 的容器里面 拿出来一个 service
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        ServletContext servletContext = this.getServletContext();        WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext);        UserService user= (UserService) context.getBean("userService");        user.queryone(1);    }
  • UserServiceImpl.java
    UserService 这个接口就不写了,这里起了个名字 跟上述servelet相呼应上
    注入进去了一个Dao层,调用方法 在控制台输出结果
package com.l.service;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.l.daointerface.UserDao;import com.l.models.User;@Service(value="userService")public class UserServiceImpl implements UserService {    @Autowired      UserDao userDao;    public void queryone(int id) {        System.out.println("开始查询         " + id);        User usr = userDao.queryById(id);        System.out.println(usr.toString());    }}
  • UserDaoImpl
    接口就不写了,把在配置文件里面刚刚写的 template注入进去(spring就是封装了一个一个 template),之后调用selectone方法 ,第一个参数是 sql名字 第二个参数是传入的参数
@Repositorypublic class UserDaoImpl implements UserDao {        @Autowired          private SqlSessionTemplate sqlSessionTemplate;          public User queryById(int id) {              return (User) sqlSessionTemplate.selectOne("queryById", id);          }        }
  • 测试
    我不太喜欢junit 所以就是直接部署在tomcat中 访问 那个servelet的地址
    web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">  <display-name>Archetype Created Web Application</display-name>  <context-param>    <param-name>contextConfigLocation</param-name>    <param-value>            classpath:applicationContext.xml        </param-value>  </context-param>  <listener>    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>  <servlet>    <description></description>    <display-name>QueryUser</display-name>    <servlet-name>QueryUser</servlet-name>    <servlet-class>com.l.controller.QueryUser</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>QueryUser</servlet-name>    <url-pattern>/QueryUser</url-pattern>  </servlet-mapping></web-app>

在浏览器输入 http://127.0.0.1:8080/mevandemo2/QueryUser
这里写图片描述
能看见输出的结果和数据库的结果是一样的 说明就完成了

  • pom文件参考
          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-core</artifactId>              <version>4.1.4.RELEASE</version>         </dependency>        <!-- 添加spring-context包 -->          <dependency>             <groupId>org.springframework</groupId>              <artifactId>spring-context</artifactId>              <version>4.1.4.RELEASE</version>         </dependency>          <!-- 添加spring-tx包 -->          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-tx</artifactId>              <version>4.1.4.RELEASE</version>       </dependency>          <!-- 添加spring-jdbc包 -->         <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-jdbc</artifactId>             <version>4.1.4.RELEASE</version>         </dependency>          <!-- 为了方便进行单元测试,添加spring-test包 -->          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-test</artifactId>              <version>4.1.4.RELEASE</version>          </dependency>          <!--添加spring-web包 -->          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-web</artifactId>              <version>4.1.4.RELEASE</version>          </dependency>          <!--添加aspectjweaver包 -->          <dependency>              <groupId>org.aspectj</groupId>              <artifactId>aspectjweaver</artifactId>              <version>1.8.5</version>          </dependency>          <!-- 添加mybatis的核心包 -->          <dependency>              <groupId>org.mybatis</groupId>              <artifactId>mybatis</artifactId>              <version>3.2.8</version>          </dependency>          <!-- 添加mybatis与Spring整合的核心包 -->          <dependency>              <groupId>org.mybatis</groupId>              <artifactId>mybatis-spring</artifactId>              <version>1.2.2</version>          </dependency>           <dependency>              <groupId>mysql</groupId>              <artifactId>mysql-connector-java</artifactId>              <version>5.1.34</version>          </dependency>          <!-- 添加druid连接池包 -->         <dependency>              <groupId>com.alibaba</groupId>              <artifactId>druid</artifactId>              <version>1.0.12</version>          </dependency>                    <dependency>              <groupId>javax.servlet</groupId>              <artifactId>jstl</artifactId>              <version>1.2</version>          </dependency>
阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝卖家拒绝退款申请怎么办 运费险赔付少了怎么办 买了运费险退货怎么办 卖家运费险退货怎么办 京东生鲜有坏的怎么办 与上级意见不一致时你将怎么办 物金所倒闭投资怎么办 电商平台欺骗客户怎么办 pdf电脑打开是乱码怎么办 excel表格打开是乱码怎么办 win10安装软件出现乱码怎么办 华为手机速度越来越慢怎么办 oppo手机速度越来越慢怎么办 安卓手机速度越来越慢怎么办 青桔单车忘了锁怎么办 华为手机反应太慢了怎么办 魅族关机键失灵怎么办 oppa79手机开不开机怎么办 黑衣服洗完发白怎么办 白衣服被黑衣服染色了怎么办 评职称单位领导不推荐怎么办 支付宝被限制收款怎么办 在淘宝上下单想写两个地址怎么办 注销了的支付宝怎么办 狗狗黑色毛发红怎么办 蘑菇街直播间被禁言了怎么办 收了发票不付款怎么办 退款要先收发票怎么办 淘宝退款了又收到货怎么办 商家收货后拒绝退款怎么办 申请退货退款卖家不处理怎么办 淘宝买东西换货卖家不发货怎么办 淘宝自动默认付款没发货怎么办 支付宝支付失败可钱扣了怎么办 苹果nfc感应坏了怎么办 老鼠添过的盘子怎么办 ie浏览器页面显示网页错误怎么办 Ⅵvo手机声音小怎么办 小米手机预约错了怎么办 小米note二手没解锁怎么办 艾灸后脸色越黑怎么办