美文网首页
原始Dao开发的方法

原始Dao开发的方法

作者: Explorer_Mi | 来源:发表于2017-10-19 10:13 被阅读0次

原始Dao开发方法需要程序员编写Dao接口和Dao实现类。
6.3.1.映射文件
编写映射文件如下:(也可以使用入门程序完成的映射文件)

<?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">
<!-- namespace:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->


<mapper namespace="test">
    <!-- 根据id查询用户 -->
    <select id="queryUserById" parameterType="int"
        resultType="cn.itcast.mybatis.pojo.User">
        select * from user where id = #{id}
    </select>
    <!-- 根据username模糊查询用户 -->
    <select id="queryUserByUsername" parameterType="string"
        resultType="cn.itcast.mybatis.pojo.User">
        select * from user where username like '%${value}%'
    </select>
    <!-- 保存用户 -->
    <insert id="saveUser" parameterType="cn.itcast.mybatis.pojo.User">
        <selectKey keyProperty="id" keyColumn="id" order="AFTER"
            resultType="int">
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into user(username,birthday,sex,address)
        values(#{username},#{birthday},#{sex},#{address})
    </insert>
</mapper>

6.3.2.Dao接口
先进行DAO的接口开发,编码如下:

    /**
     * 根据id查询用户
     * 
     * @param id
     * @return
     */
    User queryUserById(int id);

    /**
     * 根据用户名模糊查询用户
     * 
     * @param username
     * @return
     */
    List<User> queryUserByUsername(String username);

    /**
     * 保存用户
     * 
     * @param user
     */
    void saveUser(User user);
}

6.3.3.Dao实现类
编写的Dao实现类如下
public class UserDaoImpl implements UserDao {
    private SqlSessionFactory sqlSessionFactory;

    public UserDaoImpl(SqlSessionFactory sqlSessionFactory) {
        super();
        this.sqlSessionFactory = sqlSessionFactory;
    }

    @Override
    public User queryUserById(int id) {
        // 创建SqlSession
        SqlSession sqlSession = this.sqlSessionFactory.openSession();
        // 执行查询逻辑
        User user = sqlSession.selectOne("queryUserById", id);
        // 释放资源
        sqlSession.close();

        return user;
    }

    @Override
    public List<User> queryUserByUsername(String username) {
        // 创建SqlSession
        SqlSession sqlSession = this.sqlSessionFactory.openSession();

        // 执行查询逻辑
        List<User> list = sqlSession.selectList("queryUserByUsername", username);
        // 释放资源
        sqlSession.close();
        return list;
    }

    @Override
    public void saveUser(User user) {
        // 创建SqlSession
        SqlSession sqlSession = this.sqlSessionFactory.openSession();

        // 执行保存逻辑
        sqlSession.insert("saveUser", user);
        // 提交事务
        sqlSession.commit();
        // 释放资源
        sqlSession.close();
    }
}

6.3.4.Dao测试
创建一个JUnit的测试类,对UserDao进行测试,测试代码如下:
public class UserDaoTest {
    private SqlSessionFactory sqlSessionFactory;

    @Before
    public void init() throws Exception {
        // 创建SqlSessionFactoryBuilder
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        // 加载SqlMapConfig.xml配置文件
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        // 创建SqlsessionFactory
        this.sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
    }

    @Test
    public void testQueryUserById() {
        // 创建DAO
        UserDao userDao = new UserDaoImpl(this.sqlSessionFactory);
        // 执行查询
        User user = userDao.queryUserById(1);
        System.out.println(user);
    }

    @Test
    public void testQueryUserByUsername() {
        // 创建DAO

        UserDao userDao = new UserDaoImpl(this.sqlSessionFactory);
        // 执行查询
        List<User> list = userDao.queryUserByUsername("张");
        for (User user : list) {
            System.out.println(user);
        }
    }

    @Test
    public void testSaveUser() {
        // 创建DAO
        UserDao userDao = new UserDaoImpl(this.sqlSessionFactory);

        // 创建保存对象
        User user = new User();
        user.setUsername("刘备");
        user.setBirthday(new Date());
        user.setSex("1");
        user.setAddress("蜀国");
        // 执行保存
        userDao.saveUser(user);

        System.out.println(user);
    }
}

相关文章

  • 原始dao开发方法及其弊端

    原始dao开发方法及其弊端 标签(空格分隔): MyBatis dao 开发方法 这里总结一下mybatis中原始...

  • Mybatis开发dao

    原始dao开发方法 思路:编写dao和daoimpl ,向dao注入 SqlSessionFactory,在方法体...

  • Mybatis 开发 Dao

    前言 | 使用Mybatis 开发 dao,通常有两个方法,即原始 dao 开发方法和 Mapper 动态代理开发...

  • mybatis框架

    mybatis 入门程序:用户的增删改查 mybatis 开发dao的两种方法 原始dao开发方法 mybaits...

  • 原始Dao开发的方法

    原始Dao开发方法需要程序员编写Dao接口和Dao实现类。6.3.1.映射文件编写映射文件如下:(也可以使用入门程...

  • MyBatis开发dao方法

    一、原始dao开发方法 1.思路(1)需要一个dao接口和dao的实现类(2)向dao实现类中注入SqlSessi...

  • Mybatis学习笔记(三)_Dao方法的代理开发

    Web后端开发中需要开发DAO层,现在先来看看在Mybatis中原始方法开发DAO. 即是通过接口—实现类的方式来...

  • mybatis开发dao的方法(原始dao开发+mapper代理

    一.SqlSession使用范围 1.SqlSessionFactoryBuilder 通过SqlSessionF...

  • 原始DAO开发

    诉讼费双方都

  • 开发dao层

    原始dao开发: 程序员需要自己定义dao接口以及dao实现类。(参考入门程序) Mapper代理dao开...

网友评论

      本文标题:原始Dao开发的方法

      本文链接:https://www.haomeiwen.com/subject/ldfuuxtx.html