`

Mybatis3快速上手应用示例

 
阅读更多

基本步骤

 

  1. 加入jar包
  2. 定义dao接口
  3. 定义配置文件
  4. 实现dao接口

 


快速示例

 

环境

mysql数据库,已经表user,内有字段id,name,mark,其中id为主键,并且是自动递增类型

 

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `mark` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
 

 

 

1.所需JAR包

mybatis-3.0.5.jar

 

2.对象实体类 User.java 包路径testMybatis.user

 

package testMybatis.user;

public class User {
    Long id;
    String name;
    String mark;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMark() {
        return mark;
    }

    public void setMark(String mark) {
        this.mark = mark;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", mark=" + mark + "]";
    }

}
 

 

 

3.DAO层接口类 TestDao.java 包路径testMybatis.user

 

package testMybatis.user;

public interface TestDao {
    public int insert(User user);
    public User select(long id);
    public List<User> selectAll();
    public int delete(long id);
}
 

4.定义配置文件

(注意:文件位置与接口在同一位置,文件名与接口同名,后缀以.xml结尾)

示例文件TestDao.xml 位置 testMybatis.user;

 

<?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="testMybatis.user.TestDao">
	<insert id="insert" parameterType="testMybatis.user.User" useGeneratedKeys="true" keyProperty="id">
		insert into user   (name,mark)
					values (#{name},#{mark})
	</insert>
	
	<select id="select" parameterType="long" resultType="testMybatis.user.User">
		select * from user
			   where name.id=#{id}
	</select>
	
	<select id="selectAll"  resultType="testMybatis.user.User" >
		select * from user
	</select>
	
	<delete id="delete" parameterType="long">
		delete from user
		where id = #{id}
	</delete>
</mapper>
 

5.实现类TestDaoImp.java

(注意:本示例为快速测试使用的是编码配置数据源工厂,一般使用文件配置)

package testMybatis.user;

import java.util.List;

/**
 * @author DingFengHua
 * @since Apr 16, 2012
 */
public class TestDaoImp implements TestDao {
//当前用于快速测试,一般设计成单例使用工具类来调用
    static SqlSessionFactory sqlSessionFactory;

    static {
        DataSource dataSource = new PooledDataSource("com.mysql.jdbc.Driver",
                        "jdbc:mysql://localhost/mybatis?userUnicode=true&amp;characterEncoding=utf8", "admin", "123456");
        Environment environment = new Environment("test", new JdbcTransactionFactory(), dataSource);
        Configuration configuration = new Configuration(environment);
        configuration.addMapper(TestDao.class);
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);

    }

    /*
     * (non-Javadoc)
     * @see testMybatis.user.testDao#insertName(testMybatis.user.User)
     */
    @Override
    public int insert(User user) {
        SqlSession session = sqlSessionFactory.openSession();
        int num = 0;
        try {
            TestDao dao = session.getMapper(TestDao.class);
            num = dao.insert(user);
            session.commit();
        } finally {
            session.close();
        }
        return num;
    }

    /*
     * (non-Javadoc)
     * @see testMybatis.user.testDao#select(long)
     */
    @Override
    public User select(long id) {
        SqlSession session = sqlSessionFactory.openSession();
        try {
            TestDao dao = session.getMapper(TestDao.class);
            return dao.select(id);
        } finally {
            session.close();
        }
    }

    /*
     * (non-Javadoc)
     * @see testMybatis.user.testDao#delete(long)
     */
    @Override
    public int delete(long id) {
        SqlSession session = sqlSessionFactory.openSession();
        try {
            TestDao dao = session.getMapper(TestDao.class);
            int num = dao.delete(id);
            session.commit();
            return num;
        } finally {
            session.close();
        }
    }

    /* (non-Javadoc)
     * @see testMybatis.user.testDao#selectAll()
     */
    @Override
    public List<User> selectAll() {
        SqlSession session = sqlSessionFactory.openSession();
        try {
            TestDao dao = session.getMapper(TestDao.class);
            return dao.selectAll();
        } finally {
            session.close();
        }
    }

}
 

6.测试

public class Main {
    
    public static void main(String... a) {
        TestDao main = new TestDaoImp();

        User user = new User();
        user.setName("name1");
        user.setMark("no mark");
        
        System.out.println(main.insert(user));
        //System.out.println(main.delete(1l));
        for (User u : main.selectAll()) {
            System.out.println(u);
        }
    }
}
 

完成

0
0
分享到:
评论

相关推荐

    Mybatis3中文手册【带目录】

    2. **快速入门**:提供一个简单的示例,展示如何创建Mybatis的配置文件,以及如何集成到Java项目中,使开发者能快速上手。 3. **配置**:详细讲解Mybatis的配置文件,包括数据源配置、事务管理、日志配置等,这些...

    SpringBoot集成MyBatis(简易上手版,附完整代码)

    SpringBoot简化了Spring应用程序的初始设置,而MyBatis则是一个优秀的持久层框架,它允许开发者将SQL语句直接编写在映射文件中,提供了灵活的数据访问能力。本文将深入探讨如何将这两个框架集成在一起,以创建一个...

    mybatis demo

    这样的示例可以帮助初学者快速上手,了解MyBatis的基本工作流程。 【标签】"mybatis" 指出这个压缩包的内容主要围绕MyBatis框架。MyBatis的核心功能包括动态SQL、结果映射、事务管理等,这些都可以通过其提供的XML...

    SpringBoot+Spring+Mybatis项目工程Demo示例源代码.zip

    《SpringBoot+Spring+Mybatis项目工程Demo示例源代码》是一个典型的Java后端开发框架集成实例,旨在为开发者提供一个快速构建新项目的基础模板。这个压缩包包含了一个基于Spring Boot、Spring和Mybatis的简单工程...

    【java框架】MyBatis-Plus(1)--MyBatis-Plus快速上手开发及核心功能体验(csdn)—.pdf

    MyBatis-Plus 是一个基于 MyBatis 的扩展框架,旨在简化开发流程,提供更高效、...通过与 SpringBoot 结合,可以快速构建数据库驱动的应用,提升开发效率。在使用过程中,不断探索其各种功能,可以进一步优化开发流程。

    soho-mybatis框架项目示例

    本项目示例将帮助你快速理解和上手SOHO-Mybatis框架。 ### 一、SOHO-Mybatis概述 SOHO-Mybatis旨在降低Mybatis的使用门槛,通过封装和抽象,提供了一套简洁的API,让开发者可以避免编写大量的XML配置和SQL映射文件...

    mybatis详细示例操作

    ### MyBatis详细示例操作知识点解析 #### 一、MyBatis简介及特性 ...从下载安装、项目创建到数据源配置、映射文件编写等各个环节进行了详细介绍,帮助初学者快速上手MyBatis框架,并为后续深入学习提供了坚实的基础。

    MyBatis资料.zip

    MyBatis的资料库通常包含各种必要的组件和文档,以帮助开发者快速上手并有效使用这个框架。 在"MyBatis资料.zip"压缩包中,我们可以找到以下两个主要部分: 1. **2.资料**: 这部分可能包含了MyBatis的官方文档,...

    mybatis分页插件代码

    - **简单易用**:MyBatis-Plus提供了简单的API,使得开发者能快速上手。 - **自动分页**:通过BaseMapper接口,自动处理分页逻辑。 - **条件构造**:通过QueryWrapper或LambdaQueryWrapper,可以方便地构造复杂...

    mybatis-3.4.1-all & mybatis-spring-1.3.0

    这些内容可能帮助开发者快速上手 MyBatis 和 MyBatis-Spring 的整合,并在 MySQL 5.7 数据库平台上进行实际操作。 在使用 MyBatis 3.4.1 和 MyBatis-Spring 1.3.0 开发时,主要涉及以下知识点: 1. **MyBatis 配置...

    [简单]Spring_Mybatis_CRUD简单示例(带数据库)

    标题中的“Spring_Mybatis_CRUD...对于初学者而言,这是一个很好的起点,可以帮助他们快速上手Spring和MyBatis的数据库操作。而对于有一定经验的开发者,这也能作为一个快速参考,理解如何在实际项目中进行CRUD操作。

    Spring Boot Mybatis使用详解含示例(值得珍藏)

    - **简单易学**:MyBatis框架设计直观,学习成本低,开发者能快速上手。 - **灵活性**:允许自定义SQL语句、存储过程和高级映射,适应复杂业务场景。 - **降低耦合**:通过MyBatis,应用与数据库之间的耦合度显著...

    springmvc+mybatis实战示例,带数据结构可运行

    SpringMVC 和 MyBatis 是两个非常流行的 Java 开发框架,它们在企业级 Web 应用开发中被广泛使用。...MyBatis 是一个轻量级的持久层框架,它简化了数据库操作,使开发者...这将有助于你在实际工作中快速上手和解决问题。

    fluent-mybatis, mybatis语法增强框架

    在 `fluent-mybatis-master` 压缩包中,包含了项目的源码、示例、文档以及构建脚本等资源,开发者可以通过研究这些内容,深入了解如何在实际项目中应用 `fluent-mybatis`,以提升 MyBatis 框架的使用体验。...

    mybatis01.zip

    本压缩包"mybatis01.zip"显然是一个MyBatis的入门教程,包含快速上手的代码示例。下面,我们将深入探讨MyBatis的核心知识点。 首先,MyBatis 是一个基于 Java 的持久层框架,它提供了一个 SQL 映射框架,解决了将...

    Mybatis必备资源包

    除此之外,可能还会有相关的示例代码、配置模板、教程文档等,帮助开发者快速上手和深入理解Mybatis的使用。 通过学习和实践这些资源,开发者能够更好地掌握Mybatis的精髓,提高开发效率,编写出更加健壮、可维护的...

    mybatis-3.3.1.zip

    MyBatis3_用户指南(附JavaDB实例).pdf:这是一份详细的MyBatis用户指南,包含了框架的使用方法、配置说明、API介绍以及示例。特别的是,这个版本还附带了一个使用JavaDB(Derby)数据库的实例,帮助开发者更好地理解...

    Java EE企业级应用开发教程 Spring+Spring MVC+MyBatis 第2版 Jav 第2版源码

    《Java EE企业级应用开发教程》第二版,结合Spring、Spring MVC和MyBatis三大框架,为读者提供了全面...无论是对于初学者还是有经验的开发者,这都是一个宝贵的资源,能够帮助他们在实际项目中快速上手并提高开发效率。

    Spring整合Mybatis与SpringBoot整合Mybatis原理分析

    **Spring整合Mybatis原理分析** 在Java Web开发中,Spring框架以其强大的依赖注入和面向切面编程能力,成为了事实上的核心框架。...同时,提供的SSM-shop项目可以作为实践操作的模板,帮助开发者快速上手。

Global site tag (gtag.js) - Google Analytics