zoukankan      html  css  js  c++  java
  • 用ssm框架简单创建一个增删改查案列

    大方向:
    1.首先要配置.xml文件(总的映射文件,加载后来写的各种xml文件,每一个映射文件都得在这里面加载
    <mappers>
      <!-- 加载映射文件 -->
      <mapper resource="org/lanqiao/mapper/studentMapper.xml"/>
      <mapper resource="org/lanqiao/mapper/studentCardMapper.xml"/>
      <mapper resource="org/lanqiao/mapper/studentClassMapper.xml"/>
    </mappers>)
    以及配置数据库信息,起别名等
    2.Reader reader = Resources.getResourceAsReader("conf.xml") ;
    通过reader去读总的配置文件
    3.SqlSessionFactory sessionFacotry = new SqlSessionFactoryBuilder().build(reader,"development") ;
    获取sql会话产生工厂,"development"是 指定数据库环境,有开发,测试,实施等几种
    4.SqlSession session = sessionFacotry.openSession() ;
    产生会话,这几步就封装了原来的jdbc的对数据库的操作,所以mybatis是对jdbc的封装

    5.StudentMapper studentMapper = session.getMapper(StudentMapper.class) ;
    StudentMapper是一个java接口文件,里面有各种接口方法,也就是未实现的 如
    Student queryStudentById(int stuno);
    Student queryStudentByIdWithHashMap(int stuno);
    List<Student> queryStudentsWithNosInGrade(Grade grade);
    StudentMapper.class 利用了Proxy动态代理反射生成类文件

    6.Student student = studentMapper.queryStudentByStunoWithConverter(1) ;//接口中的方法->SQL语句
    queryStudentByStunoWithConverter(1)这些方法在studentMapper.xml中具体实现,因为studentMapper会去找他的映射文件,也就是studentMapper.xml文件,这里面实现了方法,写在<select>里
    <select id="queryStudentById"   parameterType="int" resultMap="queryStudentByIdMap" >
      select id,name from student where id = #{id}
    </select>
    1.方法名和studentmapper.xml文件中标签的id值相同
    2.方法的 输入参数 和studentmapper.xml文件中标签的 parameterType类型一致
    3.方法的返回值  和studentmapper.xml文件中标签的 resultType类型一致

    7.System.out.println(student);
     session.close();

    另:
    studentMapper.xml的写法
    <mapper namespace="org.lanqiao.mapper.StudentMapper">
    <!-- namespace:该mapper.xml映射文件的 唯一标识 -->
    <!--查询和删除的写法-->
     <select id="queryCountByGradeWithProcedure" statementType="CALLABLE"  parameterType="HashMap" >
      {
       CALL queryCountByGradeWithProcedure(
        #{gName,jdbcType=VARCHAR,mode=IN},
        #{scount,jdbcType=INTEGER,mode=OUT}
       )
      } 
     </select>
     
     <!-- 通过存储过程实现删除 -->
     <delete id="deleteStuBynoWithProcedure" statementType="CALLABLE" parameterType="HashMap">
      {
       CALL deleteStuBynoWithProcedure(
        #{sno,jdbcType=INTEGER,mode=IN}
       )
      } 
     </delete>
    </mapper>
  • 相关阅读:
    redis系列(五):搭建redis-cluster集群
    redis系列(四):切换RDB备份到AOF备份
    python写一个随机点名软件
    java使用flink集成mybatis每五分钟实时计算小时内用户行为数据
    本地缓存google.guava及分布式缓存redis 随笔
    spring boot+spring security 使用随笔
    MVEL2.0的使用实例(一)
    springboot2.x优雅的整合mybatis
    Springboot全套技术培训和常用框架整合
    私有云篇-[1相关技术]
  • 原文地址:https://www.cnblogs.com/wl889490/p/12573523.html
Copyright © 2011-2022 走看看