zoukankan      html  css  js  c++  java
  • Mybatis编写初始化Dao代码

    第一步:创建User实体类(POJO)

    package com.xu.pojo;
    
    import java.util.Date;
    
    /**
     * 
     * @author 徐亮亮
     * Title: User
     * Description: POJO
     * Project: mybatis1
     * Package: com.xu.pojo
     * @date 2018年3月2日 下午11:27:29
     * @version 1.0
     */
    public class User {
        // 属性名和数据库表的字段对应
            private int id;
            private String username;// 用户姓名
            private String sex;// 性别
            private Date birthday;// 生日
            private String address;// 地址
            public int getId() {
                return id;
            }
            public void setId(int id) {
                this.id = id;
            }
            public String getUsername() {
                return username;
            }
            public void setUsername(String username) {
                this.username = username;
            }
            public String getSex() {
                return sex;
            }
            public void setSex(String sex) {
                this.sex = sex;
            }
            public Date getBirthday() {
                return birthday;
            }
            public void setBirthday(Date birthday) {
                this.birthday = birthday;
            }
            public String getAddress() {
                return address;
            }
            public void setAddress(String address) {
                this.address = address;
            }
    }

     第二步:创建UserDao接口(进行数据库的增删改查操作,方便其他类继承访问)

    package com.xu.dao;
    
    import com.xu.pojo.User;
    /**
     * 
     * @author 徐亮亮
     * Title: UserDao
     * Description: UserDao(功能:用来封装实体类与数据库的访问)
     * Project: mybatis1
     * Package: com.xu.dao
     * @date 2018年3月5日 上午12:52:11
     * @version 1.0
     */
    public interface UserDao {
        //根据id查询用户信息
        public User findUserById(int id) throws Exception;
        //添加用户信息
        public void addUser(User user) throws Exception;
        //删除用户信息
        public void deleteUSer(int id) throws Exception;
    }

    第三步:创建UserDaoImpl实现接口类

    package com.xu.dao;
    
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    
    import com.xu.pojo.User;
    /**
     * 
     * @author 徐亮亮
     * Title: UserDaoImpl
     * Description: 接口的实现类
     * Project: mybatis1
     * Package: com.xu.dao
     * @date 2018年3月5日 上午1:31:35
     * @version 1.0
     */
    public class UserDaoImpl implements UserDao {
        private SqlSessionFactory sqlSessionFactory;
        //通过构造方法创建SqlSessionFactory会话工厂
        public UserDaoImpl(SqlSessionFactory sqlSessionFactory) {
            this.sqlSessionFactory = sqlSessionFactory;
        }
        /**
         * id 查询用户信息
         */
        @Override
        public User findUserById(int id) throws Exception {
            //通过sqlSessionFactory会话工厂创建SqlSession会话
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //进行数据库的查询操作
            User user = sqlSession.selectOne("test.findUserById", id);
            //关闭SqlSession会话
            sqlSession.close();
            return user;
        }
        /**
         * 添加用户信息
         */
        @Override
        public void addUser(User user) throws Exception {
            SqlSession sqlSession = sqlSessionFactory.openSession();
            sqlSession.insert("test.addUser", user);
            //开启事务
            sqlSession.commit();
            sqlSession.close();
        }
        /**
         * 删除用户信息
         */
        @Override
        public void deleteUSer(int id) throws Exception {
            SqlSession sqlSession = sqlSessionFactory.openSession();
            sqlSession.delete("test.deleteUser", id);
            sqlSession.commit();
            sqlSession.close();
        }
    
    }

    第四步:测试代码

    package com.xu.dao;
    
    import java.io.InputStream;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.junit.Before;
    import org.junit.Test;
    
    import com.xu.pojo.User;
    
    public class UserDaoImplTest {
        private SqlSessionFactory sqlSessionFactory;
        @Before
        public void setUp() throws Exception {
            //取得全局配置文件名称
            String resource = "SqlMapConfig.xml";
            //得到配置文件流
            InputStream inputStream = Resources.getResourceAsStream(resource);
            //创建会话工厂
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        }
    
        @Test
        public void testFindUserById() throws Exception {
            //实例化UserDao接口
            UserDao userDao = new UserDaoImpl(sqlSessionFactory);
            User user = userDao.findUserById(1);
            System.out.println(user.getUsername()+","+user.getSex());
        }
    
        @Test
        public void testAddUser() throws Exception {
            UserDao userDao = new UserDaoImpl(sqlSessionFactory);
            User user = new User();
            user.setUsername("孙琪");
            user.setSex("男");
            userDao.addUser(user);
        }
    
        @Test
        public void testDeleteUSer() throws Exception {
            UserDao userDao = new UserDaoImpl(sqlSessionFactory);
            userDao.deleteUSer(33);
        }
    
    }

    总结:Mybatis框架的主要功能是支持数据的持久化,所以在web开发过程中主要应用与Dao的开发,Dao的功能是封装实体类与数据库的访问过程,则以上代码就是一个很实用的初始化代码。

          本人也是刚刚开始学习Mybatis框架,若有遗漏或理解错误的地方请各位大神评论多多指教。  

  • 相关阅读:
    重新开始学习Linux
    2006:远离windows, 拥抱linux!
    适合做首页的网站: http://www.netvibes.com/
    netvibes出问题了,登陆不进去。
    推荐开源的rss阅读器rssreader 3.0,支持中文
    ubuntu的即时通讯gaim不错, 如何连qq呢?
    linux是否能把显示改为1024x768呢?
    通过IRC学习ubuntu很不错
    Firefox 扩展软件介绍(转载) Mozine 论坛
    几个有意思的网站
  • 原文地址:https://www.cnblogs.com/x-ll123/p/8507048.html
Copyright © 2011-2022 走看看