Spring整合mybatis完整示例

Spring整合mybatis完整示例Spring整合mybatis完整示例  实现功能:根据id查找用户信息。 1、首先创建一个与表中数据相对应的实体类,User.javapackagebean;publicclassUser{intid;Stringname;intage;Stringsex;Stringschool;pu…

大家好,又见面了,我是你们的朋友全栈君。

Spring整合mybatis完整示例

 

 

实现功能:根据id查找用户信息。

 

1、首先创建一个与表中数据相对应的实体类,User.java

package bean;

public class User {
    int id;
    String name;
    int age;
    String sex;
    String school;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }

    @Override
    public String toString() {
        return ("姓名:"+name+"\n年龄:"+age+"\n性别"+sex+"\n学校"+school);
    }
}

 

2、写出这个类的映射接口,里面有我们要实现的查询的抽象方法。

package dao;

import bean.User;

public interface IUser {
    User getUserByID (int id);
}

 

3、写出这个类的映射Mapper文件,里面有select语句。

<?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="dao.IUser">

    <select id="getUserByID" resultType="User" parameterType="int">
        SELECT * from user where id = #{id}
    </select>


</mapper>

 

4、以上都准备好之后,后面就是与没用spring不同的地方。

  • 准备mysql.properteis的参数配置文件,里面写上数据库连接要用到的参数。
  • jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8
    jdbc.uid=root
    jdbc.password=123456

     

  • mybatis文件与之前不同,之前实在mybatis-config.xml中配置数据库连接的,现在要把这些放在spring的配置文件中,所以mybatis配置文件中只写类的别名和引用的Mapper

  • <?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="User" type="bean.User"/>
        </typeAliases>
    
        <!--<environments default="development">-->
            <!--<environment id="development">-->
                <!--<transactionManager type="JDBC"/>-->
                <!--<dataSource type="POOLED">-->
                    <!--<property name="driver" value="com.mysql.jdbc.Driver"/>-->
                    <!--<property name="url" value="jdbc:mysql://127.0.0.1/test?useUnicode=true&amp;characterEncoding=UTF-8"/>-->
                    <!--<property name="username" value="root"/>-->
                    <!--<property name="password" value="123456"/>-->
                <!--</dataSource>-->
            <!--</environment>-->
        <!--</environments>-->
    
    
        <mappers>
            <!-- // power by http://www.yiibai.com -->
            <mapper resource="xml/User.xml"/>
        </mappers>
    
    
    
    </configuration>

     

  • spring-config.xml中,我们要配置数据库连接池,和sqlSessionFactory对象,以及UserMapper对象。

    • sqlSessionFactory中引用mybatis-config.xml文件

    • userMapper中标明要实现的接口

<?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:p="http://www.springframework.org/schema/p"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:tx="http://www.springframework.org/schema/tx"
        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-4.2.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">



<!--表明引用的参数配置文件是mysql-local.properties-->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>
                mysql-local.properties
            </value>
        </list>
    </property>
</bean>


    <!--数据库连接池-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.uid}"/>
        <property name="password" value="${jdbc.password}"/>
        <!-- 初始连接池大小 -->
        <property name="initialPoolSize" value="10"/>
        <!-- 连接池中连接最小个数 -->
        <property name="minPoolSize" value="5"/>
        <property name="maxPoolSize" value="20"/>
     </bean>


    <!-- 配置SqlSessionFactory对象 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入数据库连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="mybatis-spring-config.xml"/>

    </bean>

    <!--<bean id="sqlsessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">-->
        <!--<constructor-arg index="0" ref="sqlSessionFactory" />-->
    <!--</bean>-->

    <!--配置userMapper对象-->
    <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
        <property name="mapperInterface" value="dao.IUser"/>
        <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
    </bean>

</beans>

 

5、以上3个xml文件都配置完成之后,我们调用这个查询方法就只需要短短几行代码。

package bean;

import dao.IUser;
import org.apache.ibatis.session.SqlSession;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class DemoTest {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        IUser userMapper = (IUser)context.getBean("userMapper");
        User user = userMapper.getUserByID(2);
        System.out.println(user);

    }

}

 

6、运行结果

Spring整合mybatis完整示例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131165.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ideavim怎么用_idea常用快捷键图文

    ideavim怎么用_idea常用快捷键图文学了这么久的VIM,当然还是要用在开发上。下面来介绍一下ideavim这个插件。IdeaVim是用于基于IntelliJ平台的IDE的Vim仿真插件。IdeaVim支持许多Vim功能,包括普通/插入/可视模式,动作键,删除/更改,标记,寄存器,一些Ex命令,Vimregexp,通过〜/.ideavimrc配置,宏,窗口命令等。另外还可以自定义ideavim的快捷键,定制专属的快捷键。安装I…

    2022年10月7日
    2
  • 黑苹果虚拟机安装教程

    黑苹果虚拟机安装教程黑苹果虚拟机安装教程

    2022年5月29日
    66
  • Web Worker详解

    Web Worker详解WebWorker1.WebWorker概述最近在看一些关于WebWorker的数据和视频,把以下重点分享给大家(推荐有基础的小伙伴收藏)客户端JavaScript其中一个基本的特性就是单线程,比如浏览器无法同时运行两个事件处理程序,也无法在一个事件处理程序运行的时候触发定时器。之所以设置单线程的理论就是,客户端的JavaScript的函数不能运行太长时间,否则会导致循环事件,…

    2025年5月22日
    4
  • Nginx服务器不支持PATH_INFO的问题及解决办法

    Nginx服务器不支持PATH_INFO的问题及解决办法

    2021年11月6日
    56
  • pycharm中pip install如何使用_pycharm使用pip安装第三方库

    pycharm中pip install如何使用_pycharm使用pip安装第三方库pyCharm如何使用通过CMDpipinstall方式安装的依赖包前言将pyCharm的解释器设置成Python解释器的方法前言在window下通过cmd(win+r打开运行,然后输入cmd,按下回车即可打开)方式来安装Python依赖包是一种方便快捷的方式。但是往往很多时候由于pyCharm与Python安装在不同的路径,即使你已经用cmdpipinstall的方式在你的电…

    2022年8月26日
    16
  • kali笔记(八)burpsuite抓包、截包、改包

    kali笔记(八)burpsuite抓包、截包、改包抓包如上篇所说将burpsuite和浏览器都设置好后截包打开截取即interceptison按Forward向前寻找,Drop丢掉你不想要的包,找到你想改的包改包如图我找到我要改的包,并且改掉了它的参数然后关掉,就会发送你改过之后的包然后你的浏览器就将会收到你改过之后的内容在抓过的包中可以看到你改过的包…

    2022年5月27日
    129

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号