`
carlosfu
  • 浏览: 571909 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ba8b5055-9c58-3ab0-8a1c-e710f0495d2c
BigMemory实战与理...
浏览量:30026
53b2087e-c637-34d2-b61d-257846f73ade
RedisCluster开...
浏览量:149142
C9f66038-7478-3388-8086-d20c1f535495
缓存的使用与设计
浏览量:122714
社区版块
存档分类
最新评论

MyBatis系列目录--1. MyBatis快速接入

阅读更多

转载请注明出处哈:http://carlosfu.iteye.com/blog/2238662


 1. 添加pom依赖:

 

<properties>
    <mybatis.version>3.2.7</mybatis.version>
    <mysql-connector-java.version>5.1.29</mysql-connector-java.version>
    <junit.version>4.11</junit.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>${mybatis.version}</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql-connector-java.version}</version>
        <type>jar</type>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>
 

 

2. 建库建表(mysql)

 

create database football DEFAULT CHARACTER SET utf8;
use football;
create table players(
id int primary key auto_increment,
name varchar(20) not null comment '球员名',
age int
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='球员表';
insert into players(name, age) values('kaka', 33);
insert into players(name, age) values('ronaldo', 40);
 

 

3. mybatis基础配置 (mybatis-base.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>
    <environments default="development">
        <environment id="development">
            <!-- 事务使用的是jdbc的方式 -->
            <transactionManager type="JDBC" />
            <!-- 连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/football" />
                <property name="username" value="root" />
                <property name="password" value="your password" />
            </dataSource>
        </environment>
    </environments>
</configuration>
   
1. transaction:
JDBC – 这个配置就是直接使用了 JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务范围。
MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 
如果是spring+mybatis,无需配置transactionManager。

2. dataSource type: UNPOOLED|POOLED|JNDI

 

 

4. 定义实体类

 

package com.sohu.tv.bean;
/**
 * 用户实体
 * @author leifu
 * @Date 2015年7月28日
 * @Time 上午9:48:09
 */
public class Player implements Serializable{
    /**
     * 用户id
     */
    private int id;
     
    /**
     * 用户名
     */
    private String name;
     
    /**
     * 年龄
     */
    private int age;
    public Player() {
    }
    public Player(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Player [id=" + id + ", name=" + name + ", age=" + age + "]";
    }
     
     
}
 

 

5. 定义Dao

 

package com.sohu.tv.mapper;
import com.sohu.tv.bean.Player;
/**
 * 注解方式实现PlayerDao
 * 
 * @author leifu
 * @Date 2015年7月28日
 * @Time 上午10:16:39
 */
public interface PlayerDao {
    public Player getPlayerById(int id);
}
 

 

 

6. 定义操作players表的sql映射文件playerMapper.xml (放到classpath下 mapper目录下)

 

<?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.sohu.tv.mapper.PlayerDao">
    <select id="getPlayerById" parameterType="int" resultType="com.sohu.tv.bean.Player">
        select id,name,age from players where id=#{id}
    </select>
</mapper>

 

7. 在mybatis-base.xml文件中注册playerMapper.xml文件

<mappers>
    <!--xml方式-->
    <mapper resource="mapper/playerMapper.xml" />
</mappers>

 

8. 单元测试(最原始方式)

package com.sohu.tv.test.mapper;
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;
import org.junit.Test;
import com.sohu.tv.bean.Player;
import com.sohu.tv.mapper.PlayerDao;
/**
 * mybatis-xml方式配置(原始方式)
 * 
 * @author leifu
 * @Date 2015年7月28日
 * @Time 上午9:54:07
 */
public class PlayerMapperXmlTest {
    @Test
    public void testGetPlayer() throws IOException {
        String resource = "mybatis-base.xml";
        // 加载mybatis的配置文件(它也加载关联的映射文件)
        Reader reader = Resources.getResourceAsReader(resource);
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        // 创建能执行映射文件中sql的sqlSession
        SqlSession sqlSession = sessionFactory.openSession(true);
        //statement方式
        String statement = "com.sohu.tv.mapper.PlayerDao" + ".getPlayerById";
        Player player1 = sqlSession.selectOne(statement, 1);
        System.out.println("player1: " + player1);
         
        //Mapper代理方式
        PlayerDao playerDao = sqlSession.getMapper(PlayerDao.class);
        Player player2 = playerDao.getPlayerById(2);
        System.out.println("player2: " + player2);
    }
}

 

 

 

分享到:
评论

相关推荐

    Java在线微信支付开发实战

    03-接入指引-获取商户号.mp4 04-接入指引-获取APPID.mp4 05-接入指引-获取秘钥和证书.mp4 06-微信支付介绍和接入指引总结.mp4 07-支付安全-对称加密和非对称加密.mp4 08-支付安全-身份认证.mp4 09-支付安全-数字签名...

    mybatis自动生成代码的模板--freemarker版本.zip

    附件包含了mybatis-plus自动生成代码,基于freemarker的模板。包括常规的curd。 【特点】针对每个接口都有对应的入参和出参,不公用entity。 如,add接口,则入参会自动生成为addEntityReq。具体可下载模板进行查看...

    Java在线支付实战微信支付2021年12月新品

    04-接入指引-获取APPID.mp4 05-接入指引-获取秘钥和证书.mp4 06-微信支付介绍和接入指引总结.mp4 08-支付安全-身份认证.mp4 10-支付安全-数字证书.mp4 11-支付安全-https中的数字证书.mp4 14-创建案例项目-介绍.mp4 ...

    mybatis-freemarker-generator

    一款mybatis基本CRUD从java代码...(Done)快速指南只需要3步就可以快速生成常用的CRUD代码和映射文件配置扫描实体的包路径:domain.package = com.zheng.example.domain根据步骤1生成实体包路径,并放入实体类文件,比如...

    springmybatis

    1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用如下方式建立,鼠标右键点击 JavaResource. 2. 设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立此文件,内容如下: 程序代码 程序...

    采用SpringBoot、MyBatis-Plus 、Security框架开发的一套权限系统.zip

    采用SpringBoot、MyBatis-Plus 、Security框架,开发的一套权限系统,实现前后端分离,完善的代码生成机制. 提供微信公众号管理系统多公众号接入,提供公众号菜单、自动回复、公众号素材、模板消息、CMS等管理功能 ...

    2019Java微服务架构 2.0-全网首发-网盘地址

    059 Sentinel-控制台.mp4章节8-Spring-Cloud\千锋java教程:060 Sentinel-客户端接入.mp4章节9-Spring-Cloud-Alibaba-Dubbo\千锋java教程:061 Spring Cloud Alibaba-Dubbo-简介.mp4章节9-Spring-Cloud-Alibaba-...

    ​基于SpringBoot+MyBatis-Plus+Redis二手交易网站.rar

    该网站系统采用SpringBoot架构开发web应用,使用MyBatis-Plus来完成对MySQL数据库的操作,接入阿里云短信、支付宝沙箱、阿里云存储服务,使用Redis进行缓存管理,使用swagger进行文档管理。 前端采用Jquery、Ajax、...

    MF00206-JAVA小程序商城.zip

    JAVA微信小程序商城源码带完整后台运行版 开发语言 : JAVA 数据库 : MySQL 开发工具 : Eclipse 源码类型 : WebForm 注意:不带技术支持,有帮助文件...微信管理:菜单、回复等管理(接入网易七鱼后,可以接入人工服务)

    200ssm-mysql-jsp 快递管理系统.zip(可运行源码+数据库文件+文档)

    随着物流行业信息化的深入使得物流过程中货物的状态和变化透明化,现代信息化的接入使得物流成本和费用的更容易被掌握,从而增强了信息的准确性。与此同时动态信息能够被及时掌握,根据实际情况做出快速而有效的...

    Springboot tx.Mybatis 通用 Mapper 聚合模块,自动生成实体类,映射xml

    Springboot tc.Mybatis 通用 Mapper 聚合模块,自动生成实体类,映射xml;配置文件src\test\resources\generatorConfig.xml 修改数据库连接即可使用

    最新spring4 + mybatis3集成示例代码

    本资源是一个最新 spring4 + mybatis3 集成的一个简单的 demo,也是博客《零基础整合 spring 4(包括mvc、context、orm) + mybatis 3 示例》的配套示例项目,该博客地址是:...

    agile-mybatis : Mybatis扩展

    分页拦截器 分页方式是通过扩展Mybatis拦截器,当入参中包含接口MybatisPage类(及其实现类)且返回参数为Page形式时触发分页拦截器,解析总条数 total及页内容content。只需声明,无需额外调用,以最低的代码入侵...

    OpenPortalServer V3.3.5.6 Stable 2016-1-16

    一键认证、系统接入用户认证、外部Radius认证、微信认证、APP认证、短信认证、动态密码认证等。 框架: SpringMVC + Spring + Mybatis + Shiro + Ehcache + druid + jersey + quartz + freemarker + jxl + ajax + ...

    spring+mybatis接入微信支付支付宝支付(包含微信公众号支付和H5支付)

    spring+mybatis接入微信支付,支付宝支付(包含微信公众号支付和H5支付),可以作为独立的模块使用也可以作为公共的支付接口

    单点登录源码

    接入的系统可自由定义组织、角色、权限、资源等。用户权限=所拥有角色权限合集+用户加权限-用户减权限,优先级:用户减权限&gt;用户加权限&gt;角色权限 &gt; zheng-oss 文件存储系统,提供四种方案: - **阿里云** OSS - *...

    SpringMVC+maven+idel+mybatis-plus多模块项目

    使用springMVC+mybatis-plus技术结合maven多模块管理,idel编辑...如:邮件发送,敏感词替换,微信接入接口工具类 WeiXinUtils,接口签名加密验证,sitemesh3页面装饰,redis 缓存,execl导出,定时器,generator等功能

    基于SpringBoot+ORM-Mybatis+SpringMVC和多种组件构建的企业信息化开发基础平台源码+项目说明.zip

    1、基于SpringBoot+ORM-Mybatis+SpringMVC和多种组件构建的企业信息化开发基础平台源码+项目说明.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、...

    t淘淘商城项目 商城项目 视频和源码教程 详细

     近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善、创新的动力和能力 不断增强。电子商务正在与实体经济深度融合,进入规模性...

    springBoot+mybatis.rar

    这是一个典型的springBoot项目,api给前台提供接口什么的可以参考。jar包太大了,没上传。就传了代码部分。给大家做参考吧

Global site tag (gtag.js) - Google Analytics