`
jysemel
  • 浏览: 6624 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

mybatis基于配置示例

 
阅读更多

 

版本

 

mybatis-3.3.3.jar

 

下载地址:

 

http://code.google.com/p/mybatis/downloads/detail?name=mybatis-3.2.3.zip

 

依赖jar

 

 

 

实践

 

基于配置文件(mybatis

 

工程结构

 

 

 

定义javabeanPerson

 

package com.mybatis.domain;

 

publicclass Person {

    private Integer id;

    private String name;

 

    @Override

    public String toString() {

       returnid + "," + name;

    }

 

    public Integer getId() {

       returnid;

    }

 

    publicvoid setId(Integer id) {

       this.id = id;

    }

 

    public String getName() {

       returnname;

    }

 

    publicvoid setName(String name) {

       this.name = name;

    }

 

    @Override

    publicboolean equals(Object obj) {

       returnsuper.equals(obj);

    }

 

    @Override

    publicint hashCode() {

       returnsuper.hashCode();

    }

}

 

编写Personmapper配置文件为PersonMapper.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.mybatis.dao.PersonMapper">

    <insert id="insertPerson" parameterType="Person" flushCache="true" statementType="PREPARED">

       INSERT INTO person (id,name) VALUES (#{id},#{name})

    </insert>

</mapper>

 

注意:

 

namespace必须具有唯一性

 

insert 为标签名

 

id可以理解为被调用的方法名

 

paramterType参数值为Person 可以修改获取Person的完整包名和类名

 

<?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.mybatis.dao.PersonMapper">

    <insert id="insertPerson" parameterType="com.mybatis.domain.Person" flushCache="true" statementType="PREPARED">

       INSERT INTO person (id,name) VALUES (#{id},#{name})

    </insert>

</mapper>

 

直接取Person为第3mybatis-config.xml文件中定义的别名

 

<typeAliases>

       <typeAlias alias="Person" type="com.mybatis.domain.Person" />  </typeAliases>

 

里面sql语句为标准的sql  insert 语句,其中(#{id},#{name})Person类属性名称,注意格式必须为#{xx}

 

编写mybatis配置文件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 alias="Person" type="com.mybatis.domain.Person" />

    </typeAliases>

    <environments default="default">

       <environment id="default">

           <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/mybatis/dao/PersonMapper.xml" />

    </mappers>

</configuration>

 

注意

 

<properties resource="db.properties"/> 

为引入第4步的数据源信息

typeAliases javabean 实体类起一个别名

environments 为配置数据源信息

mappers 为加载mapper配置文件

 

 

 

编写数据源配置db.properties

 

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/test

username=root

password=root

 

编写测试类

 

package com.mybatis.test;

 

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.mybatis.domain.Person;

import com.mybatis.utils.MyBatisUtils;

 

publicclass PersonTest {

   

    privatestatic SqlSessionFactory factory ;

   

    static{

//加载mybatis配置文件

       InputStream in = PersonTest.class.getClassLoader().getResourceAsStream("mybatis-config.xml");

       factory = new SqlSessionFactoryBuilder().build(in);

    }

   

    publicstaticvoid main(String args[]){

         //打开session

       SqlSession session = factory.openSession();

       Person person = new Person();

       person.setName("jysemel");

        //指定namespace空间名和调用的方法名

       session.insert("com.mybatis.dao.PersonMapper.insertPerson", person);

         //提交事务和关闭session

       session.commit();

       session.close();

    }

}

 

 

 

 

 

 

 

 

 

 

 

 

commit事务提交

 

mybatis提供了SqlSessionFactory类解析数据库配置和持久类已经sessioncommit, SqlSessionFactory最终是通过java.sql.Connection中的commit提交,同时使用单例模式和静态单例模式创建

 

 

 

 

 

如何加载接口同时调用配置的实现的方法

 

接口名称映射

 

mapper.xml配置详解

 

1namespace 应是接口完整的包名+接口名称,不然会报(找不到对应的实现接口)

 

         org.apache.ibatis.binding.BindingException: Type interface com.mybatis.dao.UserMapper is not known to the MapperRegistry.

 

2resultMap

 

mybatis-config.xml配置详解

 

1、详细参见官网(xml映射配置文件)

 

2、实例参见mybatis-one工程,数据源的连接配置

 

工程结构

 

 

 

3

 

 

 

 

 

缓存的配置

 

java注解

 

简单的sql语句建议使用、复杂的建议通过配置文件编写

 

spring集成

 

打印出sql语句

 

配置log4j文件,配置如下(注意rootLogger对应的值为debug)

 

log4j.rootLogger=debug,stdout,R

 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

 

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

 

log4j.appender.stdout.layout.ConversionPattern=[service]%d-%c-%-4r[%t]%-5p%c%x-%m%n

 

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

 

log4j.appender.R.File=../logs/service.log

 

log4j.appender.R.layout=org.apache.log4j.PatternLayout

 

log4j.appender.R.layout.ConversionPattern=[service]%d-%c-%-4r[%t]%-5p%c%x-%m%n

 

log4j.logger.com.ibatis = debug

 

log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = debug

 

log4j.logger.com.ibatis.common.jdbc.ScriptRunner = debug

 

log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = debug

 

log4j.logger.java.sql.Connection = debug

 

log4j.logger.java.sql.Statement = debug

 

log4j.logger.java.sql.PreparedStatement = debug,R

 

log4j.logger.java.sql.ResultSet =debug

 

 

 

总结

 

1、  搭建java工程

 

2、  参考MyBatis-3-User-Guide-Simplified-Chinese文档

 

参考文档

 

http://blog.csdn.net/huzheaccp/article/details/7399124

 

分享到:
评论

相关推荐

    mybatis 基于配置2

    标题 "mybatis 基于配置2" 指向的是...总的来说,MyBatis基于配置的学习涉及到了数据库连接、SQL映射、事务控制、缓存策略等多个层面,对于Java Web开发人员来说,掌握这些知识点是提升开发效率和代码质量的关键。

    Mybatis基于注解实现多表查询功能

    Mybatis基于注解实现多表查询功能 Mybatis基于注解实现多表查询功能是指使用...本文介绍了Mybatis基于注解实现多表查询功能的基本概念、优点、步骤和示例代码,希望能够帮助开发者更好地理解和使用Mybatis框架。

    mybatis查询简单示例

    在本示例中,你可能会看到一个名为`mybatis-config.xml`的配置文件,用于定义数据库连接信息和映射文件的位置。 3. **分页查询**:在处理大数据量时,分页查询是必不可少的。MyBatis提供了强大的分页功能。通过在...

    servlet3.0与mybatis整合的示例

    MyBatis是一个基于Java的持久层框架,它简化了JDBC代码,提供了SQL映射功能,允许开发者编写灵活的SQL查询。MyBatis通过XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java...

    Mybatis缓存测试示例

    在这个“Mybatis缓存测试示例”中,我们将深入探讨Mybatis的缓存机制,以及如何在实际项目中进行测试。 Mybatis 的缓存分为一级缓存和二级缓存。一级缓存是SqlSession级别的,同一SqlSession内的多次相同查询会复用...

    Spring-Mybatis-Druid示例整合Demo

    - 配置SqlSessionFactory:基于DruidDataSource创建SqlSessionFactoryBean,指定Mybatis的配置文件路径。 - 配置MapperScannerConfigurer:扫描指定包下的Mapper接口,使其与XML中的SQL映射文件关联。 - 编写...

    Springboot 整合Mybatis 逆向工程示例代码.zip

    它通过内嵌Tomcat或Jetty服务器,自动配置Spring等特性,使得开发人员能够快速地创建出独立的、生产级别的基于Spring的应用。 Mybatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Mybatis避免...

    mybatis框架(基于配置)

    在基于配置的MyBatis框架中,主要涉及以下几个核心概念和功能: 1. **配置文件**:MyBatis的配置文件包含了数据库连接信息、映射文件的位置、全局配置等信息。例如,`mybatis-config.xml`文件会定义数据源、事务...

    soho-mybatis框架项目示例

    SOHO-Mybatis是一个基于Mybatis的轻量级开源框架,专为敏捷开发而设计。它简化了Mybatis的使用,提供了更便捷的接口操作,使得开发者能够更高效地进行数据访问层的编码工作。本项目示例将帮助你快速理解和上手SOHO-...

    Mybatis编程示例:基于注解的实现

    Mybatis编程示例:基于注解的实现 使用mysql数据库,配置好...mybatis基于注解的实现有以下步骤: 步骤1、定义sql映射接口(在src/main/java下创建mapper包) 步骤2、将sql映射接口添加到Mybatis配置文件 步骤3、测试

    Spring+Mybatis+Druid示例整合Demo2

    Mybatis通用Mapper是基于Mybatis的扩展,提供了一些通用的CRUD操作,可以简化Mapper接口的编写。引入通用Mapper的依赖,并在Mapper接口中继承`com.taojunying.mapper.BaseMapper`。 至此,Spring+Mybatis+Druid的...

    springmvc与mybatis整合完整示例

    springmvc与mybatis整合完整示例 基于spring4 mybaits3,java8,tomcat7,mysql5,6开发的 论坛登录验证程序,配置完整,可以直接copy后,扩展使用,也可以用于学习 关于是怎么一步一步开发的这个小例子,可以看我的博客 ...

    自动创建 springboot+mybatis+mysql 示例项目

    创建一个"SpringBoot+MyBatis+MySQL"的示例项目,首先你需要在本地环境安装并配置好MySQL服务器,然后通过IDEA或Eclipse等开发工具创建一个新的SpringBoot项目,添加相应的依赖。在`pom.xml`文件中,你需要引入...

    最新spring4 + mybatis3集成示例代码

    MyBatis3是一个基于Java的持久层框架,它简化了与数据库交互的过程。MyBatis允许开发者编写SQL语句,直接在映射文件或注解中,而不是通过传统的JDBC模板。这使得SQL查询更直观,更易维护。MyBatis还支持动态SQL,...

    easyui 1.5+spring 4.2+mybatis 3.4 Web示例 代码

    这个"easyui 1.5+spring 4.2+mybatis 3.4 Web示例代码"项目,是这三个框架的集成应用实例,主要展示了如何在Web环境下利用这些技术进行数据操作。项目中包含了一张简单表的增删改查功能,这通常是Web应用的基本需求...

    spingboot+phoenix+mybatis+druid示例

    MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。在本示例中,MyBatis将用于实现SQL语句的动态生成和执行,进行数据的分页...

    Spring MVC+Mybatis+maven示例代码

    Maven使用一个基于XML的项目对象模型(POM),定义了项目的配置信息,如依赖关系、构建目标、插件等。Maven通过中央仓库自动下载所需的库,简化了项目的构建和维护。它还有一套标准的生命周期和构建阶段,如clean、...

Global site tag (gtag.js) - Google Analytics