MyBatis 04

来源:互联网 发布:大数据培训多少钱 达内 编辑:程序博客网 时间:2024/05/20 19:29

整理了一下之前学习框架时候的一点笔记。如有错误欢迎指正,不喜勿喷。
上一节讲到了获得sqlsession,那么这一节我么讲利用sqlsession来完成一些数据的操作(增删改查)。

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//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对数据库的具体简单操作。

原创粉丝点击