`
eassen
  • 浏览: 5365 次
  • 来自: ...
社区版块
存档分类
最新评论

MyBatis3.0单独例子。

 
阅读更多

    近来打算开发一个技术框架,并应用此框架开发出一个论坛,开始打算用sturts2+spring+hibernate+jquery为基础,然后再进行封装,最后形成技术框架,但通过此网站获知mybatis比hibernate更灵活,实用。因此开始逐步接触mybatis。

     以下是mybatis3.0的开发实例,使用的java环境jdk5.0,ide为eclipse3.7,数据库是oracle11g。

1.数据环境配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "mybatis-3-config.dtd">

<configuration>
    <!-- - - - - - - 数据库环境配置- - - - - - - - - -->
    <environments default="environments">
        <environment id="eassen">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
                <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:eassen"/>
                <property name="username" value="eassen"/>
                <property name="password" value="oracle"/>
            </dataSource>
        </environment>
    </environments>
    <!-- - - - - - - -映射文件路径- - - - - - -->
    <mappers>
        <mapper resource="com/pojo/sql/DmMydwtMapper.xml"/>
    </mappers>
</configuration>

2.数据库表映射(DM_MYDWT)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.dao.DmMydwtMapper">
	<resultMap id="BaseResultMap" type="com.pojo.DmMydwt">
		<id column="MYDWT_DM" property="mydwtDm" jdbcType="CHAR" javaType="String" />
		<result column="MYDWT_MC" property="mydwtMc" jdbcType="VARCHAR"
			javaType="String" />
		<result column="YXBZ" property="yxbz" jdbcType="CHAR" javaType="String" />
		<result column="XYBZ" property="xybz" jdbcType="CHAR" javaType="String" />
	</resultMap>
	<sql id="Base_Column_List">
		MYDWT_DM, MYDWT_MC, YXBZ, XYBZ
	</sql>
	<select id="selectByPrimaryKey" resultMap="BaseResultMap"
		parameterType="java.lang.String">
		select
		<include refid="Base_Column_List" />
		from EASSEN.DM_MYDWT
		where MYDWT_DM = #{mydwtDm,jdbcType=CHAR}
	</select>
	<delete id="deleteByPrimaryKey" parameterType="java.lang.String"
		flushCache="true">
		delete from EASSEN.DM_MYDWT
		where MYDWT_DM =
		#{mydwtDm,jdbcType=CHAR}
	</delete>
	<insert id="insert" parameterType="com.pojo.DmMydwt" flushCache="true">
		insert into EASSEN.DM_MYDWT (MYDWT_DM, MYDWT_MC, YXBZ,
		XYBZ)
		values
		(#{mydwtDm,jdbcType=CHAR}, #{mydwtMc,jdbcType=VARCHAR},
		#{yxbz,jdbcType=CHAR},
		#{xybz,jdbcType=CHAR})
	</insert>
	<insert id="insertSelective" parameterType="com.pojo.DmMydwt"
		flushCache="true">
		insert into EASSEN.DM_MYDWT
		<trim prefix="(" suffix=")" suffixOverrides=",">
			MYDWT_DM,
			MYDWT_MC,
			YXBZ,
			XYBZ,
		</trim>
		<trim prefix="values (" suffix=")" suffixOverrides=",">
			#{mydwtDm,jdbcType=CHAR},
			#{mydwtMc},
			#{yxbz,jdbcType=CHAR},
			#{xybz,jdbcType=CHAR},
		</trim>
	</insert>
	<update id="updateByPrimaryKeySelective" parameterType="com.pojo.DmMydwt"
		flushCache="true">
		update EASSEN.DM_MYDWT
		<set>
			<if test="mydwtMc != null">
				MYDWT_MC = #{mydwtMc,jdbcType=VARCHAR},
			</if>
			<if test="yxbz != null">
				YXBZ = #{yxbz,jdbcType=CHAR},
			</if>
			<if test="xybz != null">
				XYBZ = #{xybz,jdbcType=CHAR},
			</if>
		</set>
		where MYDWT_DM = #{mydwtDm,jdbcType=CHAR}
	</update>
	<update id="updateByPrimaryKey" parameterType="com.pojo.DmMydwt"
		flushCache="true">
		update EASSEN.DM_MYDWT
		set MYDWT_MC =
		#{mydwtMc,jdbcType=VARCHAR},
		YXBZ = #{yxbz,jdbcType=CHAR},
		XYBZ =
		#{xybz,jdbcType=CHAR}
		where MYDWT_DM = #{mydwtDm,jdbcType=CHAR}
	</update>
</mapper>

 3.数据库表(DM_MYDWT)java

package com.pojo;

import java.io.Serializable;

public class DmMydwt implements Serializable {
    /**
	 * 
	 */
	private static final long serialVersionUID = 1078518054837885063L;

	/**
     * EASSEN.DM_MYDWT.MYDWT_DM
     * @ibatorgenerated 2012-02-05 20:14:30
     */
    private String mydwtDm;

    /**
     * EASSEN.DM_MYDWT.MYDWT_MC
     * @ibatorgenerated 2012-02-05 20:14:30
     */
    private String mydwtMc;

    /**
     * EASSEN.DM_MYDWT.YXBZ
     * @ibatorgenerated 2012-02-05 20:14:30
     */
    private String yxbz;

    /**
     * EASSEN.DM_MYDWT.XYBZ
     * @ibatorgenerated 2012-02-05 20:14:30
     */
    private String xybz;

    public String getMydwtDm() {
        return mydwtDm;
    }

    public void setMydwtDm(String mydwtDm) {
        this.mydwtDm = mydwtDm;
    }

    public String getMydwtMc() {
        return mydwtMc;
    }

    public void setMydwtMc(String mydwtMc) {
        this.mydwtMc = mydwtMc;
    }

    public String getYxbz() {
        return yxbz;
    }

    public void setYxbz(String yxbz) {
        this.yxbz = yxbz;
    }

    public String getXybz() {
        return xybz;
    }

    public void setXybz(String xybz) {
        this.xybz = xybz;
    }
}

 

 4.DAO

package com.dao;

import com.pojo.DmMydwt;

public interface DmMydwtMapper {
    /**
     * 根据主键删除
     * 参数:主键
     * 返回:删除个数
     * @ibatorgenerated 2012-02-05 20:14:58
     */
    int deleteByPrimaryKey(String mydwtDm);

    /**
     * 插入,空属性也会插入
     * 参数:pojo对象
     * 返回:删除个数
     * @ibatorgenerated 2012-02-05 20:14:58
     */
    int insert(DmMydwt record);

    /**
     * 插入,空属性不会插入
     * 参数:pojo对象
     * 返回:删除个数
     * @ibatorgenerated 2012-02-05 20:14:58
     */
    int insertSelective(DmMydwt record);

    /**
     * 根据主键查询
     * 参数:查询条件,主键值
     * 返回:对象
     * @ibatorgenerated 2012-02-05 20:14:58
     */
    DmMydwt selectByPrimaryKey(String mydwtDm);

    /**
     * 根据主键修改,空值条件不会修改成null
     * 参数:1.要修改成的值
     * 返回:成功修改个数
     * @ibatorgenerated 2012-02-05 20:14:58
     */
    int updateByPrimaryKeySelective(DmMydwt record);

    /**
     * 根据主键修改,空值条件会修改成null
     * 参数:1.要修改成的值
     * 返回:成功修改个数
     * @ibatorgenerated 2012-02-05 20:14:58
     */
    int updateByPrimaryKey(DmMydwt record);
}

 

 5.mybatis加载

package com.db;

import java.io.IOException;
import java.io.Reader;
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 ConnectionFactory {
    private static SqlSessionFactory factory;
    private static SqlSession sqlSession = null;

    
    // 读取MyBatis配置文件,创建SqlSessionFactory
    static {
        try {
            Reader reader = Resources.getResourceAsReader("sqlMapConfig.xml");
            factory = new SqlSessionFactoryBuilder().build(reader, "eassen");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取SqlSession
     * @return
     */
    public static SqlSession getSession() {
    	if(sqlSession == null){
    		sqlSession = factory.openSession();
    	}
        return sqlSession;
    }

    /**
     * 从配置文件中获取数据库表映射对象信息
     * @param mapper
     * @return
     */
    public static <T> T getMapper(Class<T> mapper) {
        SqlSession session = getSession();
        return (T) session.getMapper(mapper);
    }
    
    /**
     * 数据提交
     */
    public static void commit(){
    	sqlSession.commit();
    }
    /**
     * 数据回滚
     */
    public static void rollback(){
    	sqlSession.rollback();
    }
    /**
     * 关闭sqlsession
     */
    public static void close(){
    	if(sqlSession != null){
    		sqlSession.close();
    	}
    }
    
    
}

 6.数据查询,插入,更新,删除测试

package com.test;

import com.dao.DmMydwtMapper;
import com.db.ConnectionFactory;
import com.pojo.DmMydwt;

public class MydTest {

	public static void main(String[] args) {
		try {
			// 获取对象
			DmMydwtMapper mydwtMapper = ConnectionFactory
					.getMapper(com.dao.DmMydwtMapper.class);

			// 查询相关MYDWT_DM为“1001”的信息
			DmMydwt mydwt = mydwtMapper.selectByPrimaryKey("1001");
			System.out.println("mybatis查询测试:=================================");
			System.out.println("MYDWT_DM:" + mydwt.getMydwtDm());
			System.out.println("MYDWT_MC:" + mydwt.getMydwtMc());
			
			// 插入数据
			System.out.println("mybatis保存测试:=================================");
			mydwt = new DmMydwt();
			mydwt.setMydwtDm("aaaa");
			mydwt.setMydwtMc("mybatis保存");
			mydwt.setYxbz("Y");
			mydwt.setXybz("Y");
			mydwtMapper.insert(mydwt);
			// 更新数据
			System.out.println("mybatis更新测试:=================================");
			mydwt.setMydwtMc(new String("mybatis保存".getBytes(),"UTF-8"));
			mydwtMapper.updateByPrimaryKey(mydwt);
			
			// 删除数据
			System.out.println("mybatis删除测试:=================================");
			mydwtMapper.deleteByPrimaryKey("1001");
			ConnectionFactory.commit();
		} catch (Exception e) {
			ConnectionFactory.rollback();
			e.printStackTrace();
		} finally {
			// 关闭sqlsession
			ConnectionFactory.close();
		}
	}
}

 7.控制台信息输出

2012-02-08 11:43:01  Logging initialized using 'org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl' adapter.
2012-02-08 11:43:01  PooledDataSource forcefully closed/removed all connections.
2012-02-08 11:43:01  PooledDataSource forcefully closed/removed all connections.
2012-02-08 11:43:01  PooledDataSource forcefully closed/removed all connections.
2012-02-08 11:43:01  PooledDataSource forcefully closed/removed all connections.
2012-02-08 11:43:02  Created connection 17671659.
2012-02-08 11:43:02  ooo Connection Opened
2012-02-08 11:43:02  ==>  Executing: select MYDWT_DM, MYDWT_MC, YXBZ, XYBZ from EASSEN.DM_MYDWT where MYDWT_DM = ? 
2012-02-08 11:43:02  ==> Parameters: 1001(String)
2012-02-08 11:43:02  <==    Columns: MYDWT_DM, MYDWT_MC, YXBZ, XYBZ
2012-02-08 11:43:02  <==        Row: 1001, 您经常访问的网站包括:, Y, Y
mybatis查询测试:=================================
MYDWT_DM:1001
MYDWT_MC:您经常访问的网站包括:
mybatis保存测试:=================================
2012-02-08 11:43:02  ==>  Executing: insert into EASSEN.DM_MYDWT (MYDWT_DM, MYDWT_MC, YXBZ, XYBZ) values (?, ?, ?, ?) 
2012-02-08 11:43:02  ==> Parameters: aaaa(String), mybatis保存(String), Y(String), Y(String)
mybatis更新测试:=================================
2012-02-08 11:43:02  ==>  Executing: update EASSEN.DM_MYDWT set MYDWT_MC = ?, YXBZ = ?, XYBZ = ? where MYDWT_DM = ? 
2012-02-08 11:43:02  ==> Parameters: mybatis保存(String), Y(String), Y(String), aaaa(String)
mybatis删除测试:=================================
2012-02-08 11:43:02  ==>  Executing: delete from EASSEN.DM_MYDWT where MYDWT_DM = ? 
2012-02-08 11:43:02  ==> Parameters: 1001(String)
2012-02-08 11:43:02  xxx Connection Closed
2012-02-08 11:43:02  Returned connection 17671659 to pool.
分享到:
评论
1 楼 tomakemyself 2013-10-10  
数据库表?

相关推荐

    mybatis3.0中文教程

    mybatis3.0配置,sql语句查询,编写,怎么使用都有

    Spring3.0+myBatis3.0

    《Spring3.0与myBatis3.0整合详解》 在现代Java开发中,Spring框架因其强大的依赖注入和面向切面编程能力,已经成为企业级应用的首选。而myBatis作为一款轻量级的持久层框架,以其灵活的SQL映射和简单的对象关系...

    mybatis3.0官方中文文档

    mybatis3.0官方中文文档: 网页版、内容非常详细、还有对应jar包介绍

    Struts2+Spring3.0+MyBatis3.0平台搭建spring+json+gson+mysql,经典版本spring3.0+,完整架包

    标题中的"Struts2+Spring3.0+MyBatis3.0平台搭建"涉及到的是一个常见的企业级Java Web开发框架组合。这个平台基于Struts2作为MVC框架,Spring3.0作为核心容器,负责依赖注入(DI)和面向切面编程(AOP),而MyBatis...

    springmvc4.0+mybatis3.0+log4j整合.rar

    本项目“springmvc4.0+mybatis3.0+log4j整合.rar”是一个典型的Java Web项目示例,展示了如何将SpringMVC 4.0、MyBatis 3.0和Log4j有效地集成在一起,实现高效、可控的Web应用开发。通过对这些核心组件的理解和实践...

    mybatis3.0原理+API注意事项

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 ...

    Spring3.0+mybatis3.0环境搭建

    ### Spring3.0与MyBatis3.0环境搭建知识点详解 #### 一、环境准备与组件理解 在搭建Spring3.0与MyBatis3.0的开发环境之前,理解各个组件及其作用至关重要。 **1. Spring Framework** Spring3.0.6是Spring框架的...

    Struts2+Spring3.0+MyBatis3.0

    Struts2、Spring3.0和MyBatis3.0是经典的Java Web开发框架组合,它们各自承担着不同的职责,协同工作以构建高效、灵活的应用系统。Struts2作为MVC(模型-视图-控制器)框架,负责处理HTTP请求并转发到相应的业务逻辑...

    springmvc4.2+mybatis3.0+jboss

    总的来说,"springmvc4.2+mybatis3.0+jboss"这个项目组合提供了一种高效、可维护的Java Web开发方式,利用Spring MVC的MVC架构,MyBatis的数据持久层能力,以及JBoss的运行环境,共同构建出强大的企业级应用。

    SpringBoot2.0+mybatis3.0+redis+lombok

    在本项目中,我们主要探讨的是如何将SpringBoot 2.0、MyBatis 3.0、Redis以及Lombok这四个技术组件进行整合,构建一个高效、简洁且易于维护的后端应用。以下是关于这些技术及其整合的详细知识点: **SpringBoot 2.0...

    SpringMVC4.0+MYBATIS3.0

    《SpringMVC4.0与MYBATIS3.0整合实现增删改查操作详解》 在现代企业级Web开发中,SpringMVC和MYBATIS是两个非常重要的框架,它们各自在不同的层面发挥着核心作用。SpringMVC作为Spring框架的一部分,负责处理HTTP...

    spring3.0 mvc+mybatis3.0

    标题 "spring3.0 mvc+mybatis3.0" 提到的是一个集成Spring MVC 3.0和MyBatis 3.0的项目实例,这两大框架在Java Web开发中占据重要地位。Spring MVC是Spring框架的一部分,专门用于构建Web应用程序的前端控制器,而...

    MyBatis3.0源码改进版DLL.zip

    在本项目"MyBatis3.0源码改进版DLL.zip"中,作者对原始的MyBatis.NET3.0源代码进行了优化和改进,旨在提升开发效率并提供更丰富的数据访问功能。 首先,对于MyBatis.NET的基本概念,它允许程序员将SQL语句直接写在...

    spring3.0+mybatis3.0+springSecurity+SpringMVC

    这个是基于Spring的一个小例子 , 主要是为了帮助大家学习SpringSecurity和SpringMvc 和Mybatis3.0 1.SS不用再数据库建表 2.使用了SS提供的登录方式,在输入用户名和密码时,访问到服务器后台 3.判断如果是用户名是...

    spring3.0+struts2+mybatis3.0整合

    本话题主要关注的是"Spring 3.0"、"Struts 2" 和 "MyBatis 3.0" 这三大主流Java开源框架的集成,以实现增、删、查、改(CRUD)以及LIKE查询等基本功能。下面我们将详细探讨这些框架各自的功能以及它们如何协同工作。...

    mybatis3.0基础操作.doc

    本文将深入探讨MyBatis3.0的基础操作,帮助新手快速上手。 首先,每个MyBatis应用的核心是`SqlSessionFactory`对象。`SqlSessionFactory`是用来创建`SqlSession`实例的工厂,`SqlSession`是执行SQL语句和操作数据库...

    mybatis3.0的演示项目

    在这个"mybatis3.0的演示项目"中,我们可以学习到MyBatis 3.0版本的核心功能和常见应用场景。下面将详细介绍MyBatis的主要知识点: 1. **配置文件**:在MyBatis中,主要的配置文件是`mybatis-config.xml`,它定义了...

    完整mybatis3.0.6与spring3.0整合例子

    MyBatis 3.0.6 是一个流行的Java持久层框架,它简化了与数据库的交互,而Spring 3.0则是一个全面的企业级应用框架,提供了依赖注入、AOP(面向切面编程)、事务管理等功能。将这两个框架整合在一起可以实现更高效、...

    Mybaits3.0代码示例(全)

    Mybatis3.0是一款强大的Java持久层框架,它简化了数据访问层的开发,通过XML或注解方式灵活地映射SQL语句。这个压缩包包含的"Mybaits3.0代码示例(全)"提供了全面的增删改查操作,是初学者了解和学习Mybatis3.0的...

Global site tag (gtag.js) - Google Analytics