• MyBatis与Spring框架整合实现对数据库的增删改查


    代码结构

    在这里插入图片描述

    持久化类

    public class MyUser {
        private Integer uid; //主键
        private String uname;
        private String usex;
        
        //setter和getter方法
      
        @Override
        public String toString() {
            return "MyUser{" +
                    "uid=" + uid +
                    ", uname='" + uname + '\'' +
                    ", usex='" + usex + '\'' +
                    '}';
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    SQL映射文件UserMapper.xml

    
    DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.mybatis.dao.UserDao">
        
        <select id="selectUserById" parameterType="Integer"
                resultType="com.mybatis.po.MyUser">
            select * from user where uid=#{uid}
        select>
    
        
        <select id="selectAllUser" resultType="com.mybatis.po.MyUser">
            select * from user
        select>
    
        
        <insert id="addUser" parameterType="com.mybatis.po.MyUser">
            insert into user (uname,usex) values (#{uname},#{usex})
        insert>
    
        
        <update id="updateUser" parameterType="com.mybatis.po.MyUser">
            update user set uname=#{uname},usex=#{usex} where uid=#{uid}
        update>
    
        
        <delete id="deleteUser" parameterType="Integer">
            delete from user where uid=#{uid}
        delete>
    mapper>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    MyBatis核心配置文件mybatis-config.xml

    
    DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <mappers>
            <mapper resource="com/mybatis/mapper/UserMapper.xml"/>
        mappers>
    configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    创建数据访问接口

    @Repository("userDao")
    @Mapper
    /**
     * 使用Spring自动扫描MyBatis的接口并进行装配
     *(Spring中将指定包中所有被@Mapper注解的接口自动装配为MyBatis映射接口)
    */
    public interface UserDao {
        //接口方法对应映射文件UserMapper.xml中的id
        MyUser selectUserById(Integer uid);
        List<MyUser> selectAllUser();
        int addUser(MyUser myUser);
        int updateUser(MyUser myUser);
        int deleteUser(Integer uid);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    创建控制层

    @Controller("userController")
    public class UserController {
        @Autowired
        private UserDao userDao;
        public void test(){
            MyUser auser=userDao.selectUserById(1);
            System.out.println(auser);
            System.out.println("============");
            //添加一个用户
            MyUser addmu=new MyUser();
            addmu.setUname("小强");
            addmu.setUsex("男");
            int add=userDao.addUser(addmu);
            System.out.println("添加了"+add+"条记录!");
            System.out.println("============");
            //修改一个用户
            MyUser updatemu=new MyUser();
            updatemu.setUid(1);
            updatemu.setUname("王五");
            updatemu.setUsex("男");
            int up=userDao.updateUser(updatemu);
            System.out.println("修改了"+up+"条纪录");
            System.out.println("============");
            //删除一个用户
            int dl=userDao.deleteUser(9);
            System.out.println("删除了"+dl+"条记录");
            System.out.println("============");
            //查询所有用户
            List<MyUser> list=userDao.selectAllUser();
            for(MyUser myUser:list){
                System.out.println(myUser);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    创建Spring的配置文件application.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: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.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx.xsd">
        <!--指定需要扫描的包(包括子包),使注解生效-->
        <context:component-scan base-package="com.mybatis.dao"/>
        <context:component-scan base-package="com.mybatis.controller"/>
    
        <!--配置数据源-->
        <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
            <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/springtest?characterEncoding=utf8"/>
            <property name="username" value="root"/>
            <property name="password" value="123456"/>
            <!--最大连接数-->
            <property name="maxTotal" value="30"/>
            <!--最大空闲数-->
            <property name="maxIdle" value="10"/>
            <!--初始化连接数-->
            <property name="initialSize" value="5"/>
        </bean>
    
        <!--添加事务支持-->
        <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"/>
        </bean>
        <!--开启事务注解-->
        <tx:annotation-driven  transaction-manager="txManager"/>
        <!--配置MyBatis工厂,同时指定数据源,并于MyBatis完美整合-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <property name="configLocation" value="classpath:com/mybatis/mybatis-config.xml"/>
        </bean>
    
        <!--Mapper代理开发,使用Spring自动扫描MyBatis的接口并装配
        (Spring指定包中所有被@Mapper注解标注的接口自动装配为Mybatis的映射接口)
        -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <!--mybatis-spring组件扫描器-->
            <property name="basePackage" value="com.mybatis.dao"/>
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        </bean>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    测试类

    public class TestController {
        public static void main(String[] args) {
            ApplicationContext appCon=new ClassPathXmlApplicationContext("application.xml");
            UserController uc= (UserController) appCon.getBean("userController");
            uc.test();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    信号量(信号量操作 & 基于信号量实现的生产者消费者模型)
    Python面试题:如何在 Python 中处理大数据集?
    03 【流程控制语句】
    Linux中mysql的安装、远程访问、基础操作、文件导入
    IDEA代码重构技巧--抽取+内联
    一文读懂 TsFile
    数据库基本操作:如何查询数据库和创建表,以及查看表,复制表,删除表,添加主键,修改主键,删除主键
    Dubbo+ZK入门使用
    前端进击笔记第十七节 提升开发效率:数据抽象与配置化
    MySQL告警“Connection attributes of length 570 were truncated“
  • 原文地址:https://blog.csdn.net/weixin_44948424/article/details/128150753