ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

mybatis和spring的整合

2022-03-25 17:33:27  阅读:144  来源: 互联网

标签:userName String userCode spring phone 整合 address mybatis public


7.1、Mybatis步骤

  1. 编写实体类

    public class User {
    
        private String userCode;
        private String userName;
        private String phone;
        private String address;
    
        public User() {
        }
    
        public User(String userCode, String userName, String phone, String address) {
            this.userCode = userCode;
            this.userName = userName;
            this.phone = phone;
            this.address = address;
        }
    
        public String getUserCode() {
            return userCode;
        }
    
        public void setUserCode(String userCode) {
            this.userCode = userCode;
        }
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getPhone() {
            return phone;
        }
    
        public void setPhone(String phone) {
            this.phone = phone;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "userCode='" + userCode + '\'' +
                    ", usrName='" + userName + '\'' +
                    ", phone='" + phone + '\'' +
                    ", address='" + address + '\'' +
                    '}';
        }
    }
    
  2. 编写核心配置文件

    <?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>
        <properties resource="jdbc.properties"/>
    
        <settings>
            <setting name="logImpl" value="STDOUT_LOGGING"/>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
            <setting name="cacheEnabled" value="true"/>
        </settings>
    
        <typeAliases>
            <typeAlias type="com.mhy.pojo.User" alias="user"/>
        </typeAliases>
    
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="${driver}"/>
                    <property name="url" value="${url}"/>
                    <property name="username" value="${username}"/>
                    <property name="password" value="${password}"/>
                </dataSource>
            </environment>
        </environments>
    
        <mappers>
            <mapper class="com.mhy.mapper.UserMapper"/>
        </mappers>
    
    </configuration>
    
  3. 编写接口

    public interface UserMapper {
    
        List<User> queryAllUser();
    
    }
    
  4. 编写Mapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    
    
    <mapper namespace="com.mhy.mapper.UserMapper">
        <select id="queryAllUser" resultType="user">
            select user_code,user_name,phone,address from t_user;
        </select>
    </mapper>
    
  5. 测试

    public class UserMapperTest {
    
        @Test
        public void queryAllUser() throws IOException {
            String resource = "mybatis-config.xml";
    
            InputStream inputStream = Resources.getResourceAsStream(resource);
    
            SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    
            SqlSession sqlSession = sessionFactory.openSession();
    
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    
            List<User> users = mapper.queryAllUser();
    
            for (User user : users) {
                System.out.println(user);
            }
    
        }
    
    }
    

7.2、mybatis和spring的整合

7.2.1、方式一
  1. 创建spring的xml文件

  2. 编写数据源

        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="url" value="jdbc:mysql://localhost:3306/commodity?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
            <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
            <property name="username" value="root"/>
            <property name="password" value="123456"/>
        </bean>
    
  3. 编写 SqlSessionFactoryBean的注入数据源和管理mybatis.xml

    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
          <property name="dataSource" ref="dataSource"/>
          <property name="configLocation" value="classpath:mybatis-config.xml"/>
          <property name="mapperLocations" value="classpath:com/mhy/mapper/*.xml"/>
    </bean>
    
  4. 编写SqlSessionTemplate来获取sqlSession来获取Mapper操作数据库

        <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
    <!--        使用构造器注入sessionFactory,因为没有set方法-->
            <constructor-arg index="0" ref="sessionFactory"/>
        </bean>
    
  5. 需要给Mapper接口加实现类并在没有spring中注册

    public class UserMapperImpl implements UserMapper {
        private SqlSessionTemplate sqlSessionTemplate;
        public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
            this.sqlSessionTemplate = sqlSessionTemplate;
        }
        
        @Override
        public List<User> queryAllUser() {
            return sqlSessionTemplate.getMapper(UserMapper.class).queryAllUser();
        }
    }
    
        <bean id="userMapper" class="com.mhy.mapper.UserMapperImpl">
            <property name="sqlSessionTemplate" ref="sqlSessionTemplate"/>
        </bean>
    
7.2.2、方式二
  1. 前三步与方式一一样

  2. Impl类需要继承SqlSessionDaoSupport并实现Mapper接口

  3. 然后set注入sessionFactory就可以了(这里使用的注解Autowired和Qualifier自动装配的)

    @Repository(value = "userMapperImpl2")
    public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper {
    
        @Autowired
        @Qualifier(value = "sessionFactory")
        @Override
        public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
            super.setSqlSessionFactory(sqlSessionFactory);
        }
    
        @Override
        public List<User> queryAllUser() {
            return getSqlSession().getMapper(UserMapper.class).queryAllUser();
        }
    }
    

标签:userName,String,userCode,spring,phone,整合,address,mybatis,public
来源: https://www.cnblogs.com/shuisanya/p/16055792.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有