美文网首页
【MyBatis + Spring整合开发】(二)Dao式开发

【MyBatis + Spring整合开发】(二)Dao式开发

作者: 花无缺_0159 | 来源:发表于2019-02-24 10:55 被阅读0次

    复制上一节中的项目MyBatis_Spring,命名为MyBatis_Spring_DAO。

    修改Mybatis主配置文件sqlMapConfig.xml。

    <?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>
            <package name="com.test.bean"/>
        </typeAliases>
        
        <mappers>
            <!--包只适合动态接口! <package name="com.test.mapper"/> -->
            <mapper resource="com/test/mapper/UserMapper.xml"/>
            
        </mappers>
    </configuration>
    

    创建com.test.bean包,包内新建实体类User.java,代码如下:

    package com.test.bean;
    
    import java.util.Date;
    
    public class User {
    
        /**
         * CREATE TABLE `user` (
          `u_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
          `u_username` VARCHAR(64) NOT NULL COMMENT '用户名',
          `u_password` VARCHAR(64) NOT NULL COMMENT '用户密码',
          `u_sex` VARCHAR(16) DEFAULT NULL COMMENT '用户性别',
          `u_createTime` DATETIME DEFAULT NULL COMMENT '用户创建时间',
          `u_cid` INT(11) NOT NULL COMMENT '用户国家id',
         */
        
        private Integer u_id;
        private String u_username;
        private String u_password;
        private String u_sex;
        private Date u_createTime;
        private Integer u_cid;
        
        public Integer getU_id() {
            return u_id;
        }
        public void setU_id(Integer u_id) {
            this.u_id = u_id;
        }
        public String getU_username() {
            return u_username;
        }
        public void setU_username(String u_username) {
            this.u_username = u_username;
        }
        public String getU_password() {
            return u_password;
        }
        public void setU_password(String u_password) {
            this.u_password = u_password;
        }
        public String getU_sex() {
            return u_sex;
        }
        public void setU_sex(String u_sex) {
            this.u_sex = u_sex;
        }
        public Date getU_createTime() {
            return u_createTime;
        }
        public void setU_createTime(Date u_createTime) {
            this.u_createTime = u_createTime;
        }
        public Integer getU_cid() {
            return u_cid;
        }
        public void setU_cid(Integer u_cid) {
            this.u_cid = u_cid;
        }
        @Override
        public String toString() {
            return "User [u_id=" + u_id + ", u_username=" + u_username + ", u_password=" + u_password + ", u_sex=" + u_sex
                    + ", u_createTime=" + u_createTime + ", u_cid=" + u_cid + "]";
        }
        
    
    }
    

    创建com.test.bean包,包内新建实现类接口UserDAO.java和实现类UserDaoImpl.java,代码如下:
    UserDAO.java:

    package com.test.dao;
    
    import com.test.bean.User;
    
    public interface UserDao {
        
        //根据id查询用户
        public User getUserById(Integer id);
        
    }
    

    UserDaoImpl.java:

    package com.test.dao;
    import org.apache.ibatis.session.SqlSession;
    import org.mybatis.spring.support.SqlSessionDaoSupport;
    
    import com.test.bean.User;
    
    public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
       
        @Override
        public User getUserById(Integer id) {
            //从SqlSessionDaoSupport中获取一个sqlSession
            SqlSession session = getSqlSession();
            //操作数据库
            return session.selectOne("UserMapper.selectUserById", id);
        }
    
    }
    

    在Spring主配置文件applicationContext.xml中添加代码如下:

        <!-- userDao -->
        <bean id="userDaoImpl" class="com.test.dao.UserDaoImpl">
            <!-- 将工厂注入到dao的父类 sqlSessionFactory -->
            <property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/>
        </bean>
    

    创建com.test.mapper包,包内新建UserMapper.java,代码如下:

    <?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="UserMapper">
    
        <!-- 根据id查询用户 -->
        <select id="selectUserById" parameterType="Integer" resultType="user">
             select * from user where u_id = #{id}
        </select>
        
    </mapper>
    

    创建com.test.test包,包内新建测试类UserDaoTest.java,代码如下:

    package com.test.test;
    
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.test.bean.User;
    import com.test.dao.UserDaoImpl;
    
    public class UserDaoTest {
        @Test
        public void DaoTest() {
            //spring管理对象
            ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
            UserDaoImpl userDao = ac.getBean(UserDaoImpl.class);
            
            User user = userDao.getUserById(1);
            System.out.println(user);
        }
        
    }
    
    项目目录

    进行测试。

    测试结果

    相关文章

      网友评论

          本文标题:【MyBatis + Spring整合开发】(二)Dao式开发

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