zoukankan      html  css  js  c++  java
  • MyBatis 04

    上一节讲到了获得sqlsession,那么这一节我么讲利用sqlsession来完成一些数据的操作(增删改查)。

    <?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="com.demo.entity.emp">
        <!-- 全部查找 -->
        <select id="findAll" resultType="com.demo.entity.emp">
            select *from emp
        </select>
        <!-- 模糊查找 -->
        <select id="findLikeName"
            parameterType="int"
            resultType="com.demo.entity.emp">
            select*from emp where name like #{name}
        </select>
        <!-- 精确查找 -->
        <select id="findById"
            parameterType="int"
            resultType="com.demo.entity.emp">
            select*from emp where id = #{id}
        </select>
        <!-- 插入操作 -->
        <insert id="save" 
        parameterType="com.demo.entity.emp">
            insert into emp(name,salary,age) 
            values(#{name},#{salary},#{age})
        </insert>
    
        <!-- 删除操作 -->
        <delete id="delete" parameterType="int">
            delete form emp where id=#{eid}
        </delete>
    
        <!-- 更新操作 -->
        <update id="update" parameterType="com.demo.entity.emp">
            update emp set salary=#{salary}
            where id=#{id}
        </update>  
    </mapper>

    以上是对sql语句的定义。 

    parameterType=”int” 这个属性是对参数类型的定义,MyBatis提供了一套简单的定义,有:int,string,double等,都是小写开头。如果不用MyBatis提供的定义,那么参数定义里必须填写参数的具体类型(包名.类名,例如:java.lang.String)。

    这里的参数表示和我们的jdbc有些区别,不是用?表示位置参数,而是用#{XXX}替代。 

    当参数只有一个时候,#{xxx}里面的占位符可以随意填写。但是像插入操作有三个参数,就要填写实体类中的域名。

    <!-- 插入操作 -->
        <insert id="save" 
        parameterType="com.demo.entity.emp">
            insert into emp(name,salary,age) 
            values(#{name},#{salary},#{age})
        </insert>

    以上是empMapper中的sql语句定义。 

    接下来我们来看看测试语句:

    package Test;
    import java.util.List;
    
    import org.apache.ibatis.session.SqlSession;
    
    import com.demo.Utils.MybatisUtil;
    import com.demo.entity.emp;
    public class TestEmp {
        public static void main(String[] args){
            SqlSession session = MybatisUtil.getSqlSession();
            //查询所有
    //      List<emp> list=
    //              session.selectList("findAll");
    //      for(emp e:list){
    //          System.out.println(e.getAge());
    //      }
            //session.close();
    
            //条件查询
    //      emp e=session.selectOne("findById",1);
    //      System.out.println(e.getName());
    //      session.close();
    
            // 插入操作
    //      emp e=new emp();
    //      e.setName("wch");
    //      e.setSalary(5000000.0);
    //      e.setAge(22);
    //      session.insert("save",e);
    //      session.commit();
    //      //若想修改或者添加数据,需要提交即:session.commit。
    //      //我们以前使用的jdbc是自动提交,这里的框架将自动提交关闭了。
    //      session.close();
    
            //删除操作
    //      session.delete("delete",1);
    //      session.commit();
            //更新操作
            emp e=new emp();
            e.setId(1);
            e.setSalary(100000.0);
            session.update("update", e);
            session.commit();
            session.close();
        }
    
    }

    以上就是利用MyBatis对数据库的具体简单操作。

    版权声明:本文为博主原创文章,如需转载请表明出处。 https://blog.csdn.net/qq_39266910/article/details/77920761

  • 相关阅读:
    es6-字符串常用方法
    新增行数据校验
    python-Django路由传参
    递归算法
    CSS动画效果
    克隆远程仓库
    添加git仓库
    滚动条——overflow:auto 自定义样式
    CSS——链接伪类选择器
    进程,线程,同步 ,异步
  • 原文地址:https://www.cnblogs.com/chengshun/p/9782907.html
Copyright © 2011-2022 走看看