近来打算开发一个技术框架,并应用此框架开发出一个论坛,开始打算用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.
- mybatis1.zip (4.6 MB)
- 下载次数: 847
相关推荐
mybatis3.0配置,sql语句查询,编写,怎么使用都有
《Spring3.0与myBatis3.0整合详解》 在现代Java开发中,Spring框架因其强大的依赖注入和面向切面编程能力,已经成为企业级应用的首选。而myBatis作为一款轻量级的持久层框架,以其灵活的SQL映射和简单的对象关系...
mybatis3.0官方中文文档: 网页版、内容非常详细、还有对应jar包介绍
标题中的"Struts2+Spring3.0+MyBatis3.0平台搭建"涉及到的是一个常见的企业级Java Web开发框架组合。这个平台基于Struts2作为MVC框架,Spring3.0作为核心容器,负责依赖注入(DI)和面向切面编程(AOP),而MyBatis...
本项目“springmvc4.0+mybatis3.0+log4j整合.rar”是一个典型的Java Web项目示例,展示了如何将SpringMVC 4.0、MyBatis 3.0和Log4j有效地集成在一起,实现高效、可控的Web应用开发。通过对这些核心组件的理解和实践...
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 ...
### Spring3.0与MyBatis3.0环境搭建知识点详解 #### 一、环境准备与组件理解 在搭建Spring3.0与MyBatis3.0的开发环境之前,理解各个组件及其作用至关重要。 **1. Spring Framework** Spring3.0.6是Spring框架的...
Struts2、Spring3.0和MyBatis3.0是经典的Java Web开发框架组合,它们各自承担着不同的职责,协同工作以构建高效、灵活的应用系统。Struts2作为MVC(模型-视图-控制器)框架,负责处理HTTP请求并转发到相应的业务逻辑...
总的来说,"springmvc4.2+mybatis3.0+jboss"这个项目组合提供了一种高效、可维护的Java Web开发方式,利用Spring MVC的MVC架构,MyBatis的数据持久层能力,以及JBoss的运行环境,共同构建出强大的企业级应用。
在本项目中,我们主要探讨的是如何将SpringBoot 2.0、MyBatis 3.0、Redis以及Lombok这四个技术组件进行整合,构建一个高效、简洁且易于维护的后端应用。以下是关于这些技术及其整合的详细知识点: **SpringBoot 2.0...
《SpringMVC4.0与MYBATIS3.0整合实现增删改查操作详解》 在现代企业级Web开发中,SpringMVC和MYBATIS是两个非常重要的框架,它们各自在不同的层面发挥着核心作用。SpringMVC作为Spring框架的一部分,负责处理HTTP...
标题 "spring3.0 mvc+mybatis3.0" 提到的是一个集成Spring MVC 3.0和MyBatis 3.0的项目实例,这两大框架在Java Web开发中占据重要地位。Spring MVC是Spring框架的一部分,专门用于构建Web应用程序的前端控制器,而...
在本项目"MyBatis3.0源码改进版DLL.zip"中,作者对原始的MyBatis.NET3.0源代码进行了优化和改进,旨在提升开发效率并提供更丰富的数据访问功能。 首先,对于MyBatis.NET的基本概念,它允许程序员将SQL语句直接写在...
这个是基于Spring的一个小例子 , 主要是为了帮助大家学习SpringSecurity和SpringMvc 和Mybatis3.0 1.SS不用再数据库建表 2.使用了SS提供的登录方式,在输入用户名和密码时,访问到服务器后台 3.判断如果是用户名是...
本话题主要关注的是"Spring 3.0"、"Struts 2" 和 "MyBatis 3.0" 这三大主流Java开源框架的集成,以实现增、删、查、改(CRUD)以及LIKE查询等基本功能。下面我们将详细探讨这些框架各自的功能以及它们如何协同工作。...
本文将深入探讨MyBatis3.0的基础操作,帮助新手快速上手。 首先,每个MyBatis应用的核心是`SqlSessionFactory`对象。`SqlSessionFactory`是用来创建`SqlSession`实例的工厂,`SqlSession`是执行SQL语句和操作数据库...
在这个"mybatis3.0的演示项目"中,我们可以学习到MyBatis 3.0版本的核心功能和常见应用场景。下面将详细介绍MyBatis的主要知识点: 1. **配置文件**:在MyBatis中,主要的配置文件是`mybatis-config.xml`,它定义了...
MyBatis 3.0.6 是一个流行的Java持久层框架,它简化了与数据库的交互,而Spring 3.0则是一个全面的企业级应用框架,提供了依赖注入、AOP(面向切面编程)、事务管理等功能。将这两个框架整合在一起可以实现更高效、...
Mybatis3.0是一款强大的Java持久层框架,它简化了数据访问层的开发,通过XML或注解方式灵活地映射SQL语句。这个压缩包包含的"Mybaits3.0代码示例(全)"提供了全面的增删改查操作,是初学者了解和学习Mybatis3.0的...