zoukankan      html  css  js  c++  java
  • mybatis调用存储过程实现

    1.创建存储过程
    create or replace procedure pro_student_info_byId( in_Id
    in t_student_info.id%type,out_custInfo out sys_refcursor )is begin open out_custInfo for select a.* from t_student_info a where a.id = in_Id; end ;
    public interface StudentMapper {
    	public void getStudents(Map<String,Object> param);
    }
    

      

    <?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.study.mybatis.mapper.StudentMapper">
        <resultMap type="student" id="studentMap">
            <id column="id" property="id" />
            <result column="student_name" property="studentName" />
            <result column="sex" property="sex"
                typeHandler="org.apache.ibatis.type.EnumOrdinalTypeHandler" />
            <result column="student_note" property="studentNote" />
            <result column="student_num" property="studentNum" />
        </resultMap>
        <select id="getStudents" statementType="CALLABLE" parameterType="java.util.Map">
            {call
            pro_student_info_byId(
            #{id,jdbcType=VARCHAR,mode=IN},
            #{studentInfoList,jdbcType=CURSOR,mode=OUT,javaType=ResultSet,resultMap=studentMap})}
        </select>
    
    </mapper>
    package com.study.mybatis.util;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    /**
     * mybatis工具类
     * 
     * @author Administrator
     *
     */
    public class MybatisUtil {
    
        private static SqlSessionFactory sqlSessionFactory;
        // 类线程锁
        private static final Class CLASS_LOCK = MybatisUtil.class;
    
        public static SqlSessionFactory initSqlSessionFactory() {
            String resource = "mybatis-config.xml";
            InputStream inputStream = null;
            try {
                inputStream = Resources.getResourceAsStream(resource);
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            } catch (IOException e) {
                Logger.getLogger(MybatisUtil.class.getName()).log(Level.SEVERE, null, e);
                synchronized (CLASS_LOCK) {
                    if (sqlSessionFactory == null) {
                        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
                    }
                    return sqlSessionFactory;
                }
            }
            return sqlSessionFactory;
    
        }
    
        public static SqlSession openSqlsession() {
            if (sqlSessionFactory == null) {
                initSqlSessionFactory();
            }
            return sqlSessionFactory.openSession();
        }
    
        public static void closeSqlSession(SqlSession session) {
            if (session != null) {
                session.close();
            }
        }
    }
    public static void main(String[] args) {
            SqlSession session = null;
            try {
                session = MybatisUtil.openSqlsession();
                StudentMapper studentMapper = session.getMapper(StudentMapper.class);
                Map<String, Object> params = new HashMap<String, Object>();
                params.put("id", 1);
                params.put("studentInfoList", OracleTypes.CURSOR);
                System.out.println(params);
                studentMapper.getStudents(params);
                System.out.println(params);
                session.commit();
            } catch (Exception e) {
                System.out.println(e.getMessage());
                session.rollback();
            } finally {
                MybatisUtil.closeSqlSession(session);
            }
        }
  • 相关阅读:
    c++语法(2)
    c++语法(1)
    前端之 BOM和DOM
    JavaScript
    CSS属性相关(续)
    CSS属性相关
    CSS选择器
    前端之CSS
    HTML常用标签
    HTML介绍
  • 原文地址:https://www.cnblogs.com/youlangta/p/6789096.html
Copyright © 2011-2022 走看看