zoukankan      html  css  js  c++  java
  • 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 的整合大有帮助

  • 相关阅读:
    tcp/ip_properties_file
    tcp_ip/udp
    笔记1
    css样式使用_css
    常用的html标签总结_html
    利用sqlalchemy(ORM框架)连接操作mysql_mysql
    mysql基础命令_mysql
    redis使用_python
    RabitMQ使用_python
    后台管理页面2种常用模板_html
  • 原文地址:https://www.cnblogs.com/gxlaqj/p/11337114.html
Copyright © 2011-2022 走看看