版本
mybatis-3.3.3.jar
下载地址:
http://code.google.com/p/mybatis/downloads/detail?name=mybatis-3.2.3.zip
依赖jar:
实践
基于配置文件(mybatis)
工程结构
定义javabean为Person
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(); } } |
编写Person的mapper配置文件为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为第3步mybatis-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类解析数据库配置和持久类已经session的commit, SqlSessionFactory最终是通过java.sql.Connection中的commit提交,同时使用单例模式和静态单例模式创建
如何加载接口同时调用配置的实现的方法
接口名称映射
mapper.xml配置详解
1、namespace 应是接口完整的包名+接口名称,不然会报(找不到对应的实现接口)
org.apache.ibatis.binding.BindingException: Type interface com.mybatis.dao.UserMapper is not known to the MapperRegistry.
2、resultMap
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基于配置的学习涉及到了数据库连接、SQL映射、事务控制、缓存策略等多个层面,对于Java Web开发人员来说,掌握这些知识点是提升开发效率和代码质量的关键。
Mybatis基于注解实现多表查询功能 Mybatis基于注解实现多表查询功能是指使用...本文介绍了Mybatis基于注解实现多表查询功能的基本概念、优点、步骤和示例代码,希望能够帮助开发者更好地理解和使用Mybatis框架。
在本示例中,你可能会看到一个名为`mybatis-config.xml`的配置文件,用于定义数据库连接信息和映射文件的位置。 3. **分页查询**:在处理大数据量时,分页查询是必不可少的。MyBatis提供了强大的分页功能。通过在...
MyBatis是一个基于Java的持久层框架,它简化了JDBC代码,提供了SQL映射功能,允许开发者编写灵活的SQL查询。MyBatis通过XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java...
在这个“Mybatis缓存测试示例”中,我们将深入探讨Mybatis的缓存机制,以及如何在实际项目中进行测试。 Mybatis 的缓存分为一级缓存和二级缓存。一级缓存是SqlSession级别的,同一SqlSession内的多次相同查询会复用...
- 配置SqlSessionFactory:基于DruidDataSource创建SqlSessionFactoryBean,指定Mybatis的配置文件路径。 - 配置MapperScannerConfigurer:扫描指定包下的Mapper接口,使其与XML中的SQL映射文件关联。 - 编写...
它通过内嵌Tomcat或Jetty服务器,自动配置Spring等特性,使得开发人员能够快速地创建出独立的、生产级别的基于Spring的应用。 Mybatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Mybatis避免...
在基于配置的MyBatis框架中,主要涉及以下几个核心概念和功能: 1. **配置文件**:MyBatis的配置文件包含了数据库连接信息、映射文件的位置、全局配置等信息。例如,`mybatis-config.xml`文件会定义数据源、事务...
SOHO-Mybatis是一个基于Mybatis的轻量级开源框架,专为敏捷开发而设计。它简化了Mybatis的使用,提供了更便捷的接口操作,使得开发者能够更高效地进行数据访问层的编码工作。本项目示例将帮助你快速理解和上手SOHO-...
Mybatis编程示例:基于注解的实现 使用mysql数据库,配置好...mybatis基于注解的实现有以下步骤: 步骤1、定义sql映射接口(在src/main/java下创建mapper包) 步骤2、将sql映射接口添加到Mybatis配置文件 步骤3、测试
Mybatis通用Mapper是基于Mybatis的扩展,提供了一些通用的CRUD操作,可以简化Mapper接口的编写。引入通用Mapper的依赖,并在Mapper接口中继承`com.taojunying.mapper.BaseMapper`。 至此,Spring+Mybatis+Druid的...
springmvc与mybatis整合完整示例 基于spring4 mybaits3,java8,tomcat7,mysql5,6开发的 论坛登录验证程序,配置完整,可以直接copy后,扩展使用,也可以用于学习 关于是怎么一步一步开发的这个小例子,可以看我的博客 ...
创建一个"SpringBoot+MyBatis+MySQL"的示例项目,首先你需要在本地环境安装并配置好MySQL服务器,然后通过IDEA或Eclipse等开发工具创建一个新的SpringBoot项目,添加相应的依赖。在`pom.xml`文件中,你需要引入...
MyBatis3是一个基于Java的持久层框架,它简化了与数据库交互的过程。MyBatis允许开发者编写SQL语句,直接在映射文件或注解中,而不是通过传统的JDBC模板。这使得SQL查询更直观,更易维护。MyBatis还支持动态SQL,...
这个"easyui 1.5+spring 4.2+mybatis 3.4 Web示例代码"项目,是这三个框架的集成应用实例,主要展示了如何在Web环境下利用这些技术进行数据操作。项目中包含了一张简单表的增删改查功能,这通常是Web应用的基本需求...
MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。在本示例中,MyBatis将用于实现SQL语句的动态生成和执行,进行数据的分页...
Maven使用一个基于XML的项目对象模型(POM),定义了项目的配置信息,如依赖关系、构建目标、插件等。Maven通过中央仓库自动下载所需的库,简化了项目的构建和维护。它还有一套标准的生命周期和构建阶段,如clean、...