• mybatis


    因为一开始学的不是太好,从头缕一遍ssm开发,发现ssm并不是刚开始学的那么难以理解了

    这个项目是一个简单的web工程

    单纯的mybatis项目需要两个配置文件

    一。数据源配置文件

    这个文件是配置数据库的文件,首先创建一个web项目,在src同级目录下新建一个文件夹,我这里以config为例,在这个文件夹下创建一个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>
        <!-- 和spring整合后environments配置将废除 -->
        <environments default="development">
            <environment id="development">
                <!-- shiyong使用jdbc事务管理 -->
                <transactionManager type="JDBC"></transactionManager>
                <!-- 数据库连接池 -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8"/>
                    <property name="username" value="root"/>
                    <property name="password" value="123456"/>
                </dataSource>
            </environment>
        </environments>
        
        <!-- 查找sql映射文件 -->
        <mappers>
        <mapper resource="mapper/CustomerMapper.xml"/>
        </mappers>
    </configuration>

    二。第二个配置文件就是存放sql语句的文件,可以再congfig文件夹下面再创建一个文件夹,我这里创建的是mapper文件夹,文件名是CustomerMapper,这个配置文件和dao层的接口是相对应的,同时这个配置文件需要集成(也可以说是注入)到数据库配置文件中

    <?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">
    <!-- 该文件主要是编写mybaties中的mapper接口里面的方法提供对应的sql语句 -->
    <!--这里的namespace指的是dao层接口的全名称--> <mapper namespace="dao.SaveUsersss"> <!-- 添加客户 --> <!--id指的是dao层接口的方法名,parameterType:传入的参数名称--> <insert id="saveUsers" parameterType="java.util.List"> insert into ssm.t_customer(name,gender,telephone,address) values
        <!--collection=""具体里面写入什么值,根据传递过来的参数而定,若是数组,则用array-->
        <!--具体的请参考:https://www.cnblogs.com/yy3b2007com/p/10417242.html#autoid-3-0-0,里面介绍的挺详细-->
          <!--collection="list"表示这个传过来额参数为List集合,item:每一次遍历获得的结果对象,separator=",":每一次遍历的结果用","隔开-->
    <foreach collection="list" item="HAHA" index="index" separator=","> ( #{HAHA.name}, #{HAHA.gender}, #{HAHA.telephone}, #{HAHA.address} ) </foreach> </insert>

      <!-- 查询 -->

      <!--resultType:返回的结果集-->
      <select id="saveMessage" resultType="entity.UserEntity"
        parameterType="java.util.List">
        select * from ssm.t_customer where id in

          <!--open:遍历过程中以什么开始,close:遍历过程中以什么结束-->
          <foreach item="item" index="index" collection="list" open="("
            separator="," close=")">
            #{item}
          </foreach>
      </select>

    </mapper>

    测试代码:

    package mytest;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.junit.Test;
    
    import dao.UserMapper;
    import entity.UserEntity;
    
    public class MyTest {
    //    private SqlSessionFactoryBuilder sqlSessionFactoryBuilder;
    
        @Test
        public void getMessage() throws IOException{
            //1创建sqlsessionfactorybuild
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            //2读取mybatis配置文件
            InputStream inputStream = Resources.getResourceAsStream("myMapConfig.xml");
            //3创建sqlsessionfactory
            SqlSessionFactory build = sqlSessionFactoryBuilder.build(inputStream);
            //4打开session
            SqlSession openSession = build.openSession();
            
            //5获取Mapper接口对象,接收CustomerMapper生成的代理类对象
            UserMapper mapper = openSession.getMapper(UserMapper.class);
            List<Integer> list = new ArrayList<Integer>();
            list.add(1);
            list.add(2);
            list.add(3);
            List<UserEntity> saveMessage = mapper.saveMessage(list);
    
            System.out.println(saveMessage);
            //提交事务
            openSession.commit();
            //关闭连接
            openSession.close();
        }
    }

     熟悉测试代码,对于 mybatis-spring 的整合大有帮助

  • 相关阅读:
    hdu 4813(2013长春现场赛A题)
    NEFU 628 Garden visiting (数论)
    FZU 2020 组合 (Lucas定理)
    HDU 3304 Interesting Yang Yui Triangle (Lucas定理)
    HDU 3037 Saving Beans (数论,Lucas定理)
    UVa 1161 Objective: Berlin (最大流)
    Vijos P1951 玄武密码 (AC自动机)
    LA 4670 Dominating Patterns (AC自动机)
    HDU 2340 Obfuscation (暴力)
    HDU 5510 Bazinga (KMP)
  • 原文地址:https://www.cnblogs.com/gxlaqj/p/11337114.html
Copyright © 2020-2023  润新知