码迷,mamicode.com
首页 > 移动开发 > 详细

mybatis-03(使用mapper接口处理)

时间:2016-01-04 19:46:55      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

 

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接口处理)

标签:

原文地址:http://www.cnblogs.com/yxl0853133140/p/5099992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!