mybatis-03(使用mapper介面處理)

來源:互聯網
上載者:User

標籤:

 

1、建立mybatis-config.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>    <properties resource="db.properties"/>    <typeAliases>        <!-- 兩種方法隨便用,建議用第二種 -->        <!--<typeAlias type="com.huawei.bean.Student" alias="Student"/>-->        <package name="com.huawei.bean"/>        </typeAliases>    <environments default="development">        <environment id="development">            <!-- 配置事務 -->            <transactionManager type="JDBC" />            <!-- 設定資料庫串連資訊 -->            <dataSource type="POOLED">                <property name="driver" value="${driver}" />                <property name="url" value="${url}" />                <property name="username" value="${username}" />                <property name="password" value="${password}" />            </dataSource>        </environment>    </environments>    <mappers>        <mapper resource="com/huawei/bean/Student.xml"/>    </mappers></configuration>


2、根據資料表建立相應的實體類

package com.huawei.bean;public class Student {    private Integer id;    private String name;    private Integer grade;    private String className;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getGrade() {        return grade;    }    public void setGrade(Integer grade) {        this.grade = grade;    }    public String getClassName() {        return className;    }    public void setClassName(String className) {        this.className = className;    }}


3、建立mapper檔案完成對實體類的映射,該檔案同樣是xml檔案

<?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.huawei.mapper.StudentMapper">    <insert id="add" parameterType="Student">        insert into student(id,name,grade,classname) values(seq_student_id.nextval,#{name},#{grade},#{className})    </insert><resultMap type="Student" id="student">    <result column="grade_id" property="grade"/></resultMap><select id="getStudents" resultMap="student">        select *        from student    </select></mapper>


4、建立SQLSession,並且通過SqlSession完成對資料庫的操作

package com.huawei.jutilTest;import java.util.List;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import com.huawei.bean.Student;import com.huawei.mapper.StudentMapper;import com.huawei.util.MybatisUtil;public class JutilTest {    @Test    public void doAdd() {        SqlSession session = null;            try {                session = MybatisUtil.createSession();                Student bean = new Student();                bean.setName("小明");                bean.setGrade(2);                bean.setClassName("三年級");                //注意區別                session.getMapper(StudentMapper.class).add(bean);                System.out.println("執行成功");                session.commit();            } catch (Exception e) {                e.printStackTrace();                session.rollback();            }finally{                MybatisUtil.sessionClose(session);            }    }            @Test    public void getStudents(){        SqlSession session = null;        List<Student>list =null;            session = MybatisUtil.createSession();            //注意            list=session.getMapper(StudentMapper.class).getStudents();            for(int i=0;i<list.size();i++){                System.out.println(list.get(i).getName()+","+list.get(i).getGrade());            }            MybatisUtil.sessionClose(session);    } }

 


5、最佳實現
 1)建立相應的MynbatisUtil完成對Session的擷取

package com.huawei.util;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;public class MybatisUtil {    //初始化    private static  SqlSessionFactory factory;    static{        try {            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");            factory = new SqlSessionFactoryBuilder().build(is);        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }        //建立SQLSession    public static SqlSession createSession(){        return factory.openSession();    }    //關閉SQLSession    public static void sessionClose(SqlSession session){        if(session!=null) session.close();    }}


 2)注意參數名
 3)使用mapper介面處理

package com.huawei.mapper;import java.util.List;import com.huawei.bean.Student;public interface StudentMapper {    public void add(Student bean);    public List<Student> getStudents();}

 

項目結構

 

mybatis-03(使用mapper介面處理)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.