MyBatis編寫映射文件實現增刪改操作 附說明即源碼
阿新 • • 發佈:2017-09-23
其他 以及 clas insert utf close ini base void
1.看一下我們接口
package cn.bdqn.mybatis.dao; import org.apache.ibatis.annotations.Select; import cn.bdqn.mybatis.been.Emp; /** * 這個接口不用寫實現類,是用來給empMapper.xml進行動態綁定的 * @author Administrator * */ public interface EmpMapper { public Emp getEmpById(Integer id); public void addEmp(Emp emp); /** * MyBatis允許增刪改直接定義一下類型返回值 * int long boolean 以及相應的包裝類, * 在接口中定義方法的時候,直接定義相應的返回值即可,無其他操作 * @param emp * @return */ public boolean updateEmp(Emp emp); public void deleteEmpById(Integer id); }
2.編寫mapper
<?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"> <!--namespace:名稱空間 --> <mapper namespace="cn.bdqn.mybatis.dao.EmpMapper"> <!-- id,唯一標識 resultType:返回值類型,bean的全限定名稱 #{id},從傳遞過來的參數中取出id值,相當於換位符 public Emp getEmpById(Integer id); --> <select id="getEmpById" resultType="cn.bdqn.mybatis.been.Emp" databaseId="mysql"> select * from emp where id = #{id} </select><select id="getEmpById" resultType="cn.bdqn.mybatis.been.Emp" databaseId="oracle"> select * from emp where id = #{id} </select> <!-- public void addEmp(Emp emp); insert標簽: id:對應我們javaBean的方法名 parameterType 可以省略,如果要寫就是javaBean的全限定名稱 insert into emp(last_name,gender,email) values(#{last_name},#{gender},#{email}) 結尾不需要分號,values值的#{對應的javaBean的屬性名} --> <insert id="addEmp" parameterType="cn.bdqn.mybatis.been.Emp"> insert into emp(last_name,email,gender) values(#{last_name},#{email},#{gender}) </insert><!-- update標簽: public void updateEmp(Emp emp); id:對應我們javaBean的方法名 parameterType 可以省略,如果要寫就是javaBean的全限定名稱 update emp set last_name=#{last_name},email=#{email},gender=#{gender} while id=#{id} 結尾不需要分號,#{}相當於占位符,等於我們傳過來的值 --> <update id="updateEmp"> update emp set last_name=#{last_name},email=#{email},gender=#{gender} where id=#{id} </update> <!-- delet標簽: public void deleteEmpById(Integer id); --> <delete id="deleteEmpById"> delete from emp where id=#{id} </delete> </mapper>
3.編寫測試類
package cn.bdqn.mybatis.test; import java.io.IOException; import java.io.InputStream; 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 cn.bdqn.mybatis.been.Emp; import cn.bdqn.mybatis.dao.EmpMapper; public class MyBatisTest_02 { public static void main(String[] args) throws IOException { //獲取SqlSessionFactory實例 String resource="mybatis-config.xml"; InputStream is = Resources.getResourceAsStream(resource); SqlSessionFactory build = new SqlSessionFactoryBuilder().build(is); //獲取到的sqlsession不會自動提交 SqlSession openSession = build.openSession(); try{ //測試添加 EmpMapper mapper = openSession.getMapper(EmpMapper.class); /* Emp emp = new Emp(null,"liyuanfeng","[email protected]","1"); mapper.addEmp(emp);*/ //測試修改 Emp emp = new Emp(1,"liyuanfeng","[email protected]","1"); mapper.updateEmp(emp); //進行手動提交 openSession.commit(); }finally{ openSession.close(); } } }
MyBatis編寫映射文件實現增刪改操作 附說明即源碼