SSM框架学习之(二)Mybatis——mapper开发

SSM框架学习之(二)Mybatis——mapper开发

首先看一下工程总体结构

配置Mybatis环境

Mybatis环境配置可见:
SSM框架学习之(一)Mybatis——mapper开发

Dao层和Service层开发

  1. 创建User实体类,类的成员属性对应数据库里的字段名,同时提供set和get方法

    public class User {
        private int id;
        private String username;
        private String sex;
        private String birthday;
        private String address;
        ......
    
  2. 再就是编写Mapper接口

    public interface UserMapper {
        User findUserById(int id);
        List<User> findUserByName(String name);
        void addUser(User user);
        void delUser(int id);
    }
    
  3. 整合Mybatis

    创建mapper.xml文件,根据Dao接口编写mapper映射文件
    
    <font color="red" size="4">注意此处的namespace的值是对应的Mapper接口的包名+类名</font>
    
        <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
        <mapper namespace="cn.allene.mybatis.second.po.UserMapper">
            <!-- 按ID查询用户 -->
            <select id="findUserById" parameterType="int" resultType="cn.allene.mybatis.first.po.User">
                SELECT * FROM USER WHERE id=#{id}
            </select>
            <!-- 按名字模糊查询用户 -->
            <select id="findUserByName" parameterType="java.lang.String" resultType="cn.allene.mybatis.first.po.User">
                SELECT * FROM USER WHERE username LIKE '%${value}%'
            </select>
            <!-- 添加用户 -->
            <insert id="addUser" parameterType="cn.allene.mybatis.first.po.User" >
                insert into user(username, birthday, sex, address) value(#{username}, #{birthday}, #{sex}, #{address})
            </insert>
            <!-- 按ID删除用户 -->
            <delete id="delUser" parameterType="int">
                delete from user where id=#{id}
            </delete>
        </mapper>
    
  4. 最后在SqlMapConfig.xml文件中添加mapper.xml映射文件

    <mappers>
        <mapper resource="mapper/mapper.xml"/>
    </mappers>
    

最后测试Service层业务逻辑

这里使用到JUnit单元测试框架

    public class UserTest {
        SqlSessionFactory sqlSessionFactory;
        @Before
        public void before() throws IOException{
            String resoure = "SqlMapConfig.xml";
            InputStream urlAsStream = Resources.getResourceAsStream(resoure);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(urlAsStream);
        }
        @Test
        public void findUserById(){
            SqlSession session = sqlSessionFactory.openSession();
            UserMapper mapper = session.getMapper(UserMapper.class);
            User user = mapper.findUserById(1);
            System.out.println(user);
        }
        @Test
        public void findUserByName(){
            SqlSession session = sqlSessionFactory.openSession();
            UserMapper mapper = session.getMapper(UserMapper.class);
            List<User> list= mapper.findUserByName("小");
            System.out.println(list);
        }
        @Test
        public void addUser(){
            SqlSession session = sqlSessionFactory.openSession();
            UserMapper mapper = session.getMapper(UserMapper.class);
            User user = new User(1, "张三", "男", System.currentTimeMillis()+"", "湖南省张家界市");
            mapper.addUser(user);
        }
        @Test
        public void delUser(){
            SqlSession session = sqlSessionFactory.openSession();
            UserMapper mapper = session.getMapper(UserMapper.class);
            mapper.delUser(22);
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值