开发者社区> 付磊-起扬> 正文

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

简介: 转载请注明出处哈:http://carlosfu.iteye.com/blog/2238662  1. 添加pom依赖:   3.2.7 5.1.29 4.
+关注继续查看

转载请注明出处哈: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);
    }
}

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
为Tiny4412设备驱动在proc目录下添加一个可读版本信息的文件
http://blog.csdn.net/morixinguan/article/details/77808088 上节,我们明白了proc文件系统的作用,接下来我们在友善之臂已经写好的led驱动的基础上,在proc目录下创建一个文件夹,然后加入led驱动的版本信息读取。
1214 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23639 0
使用batch批处理做目录及流程选择
@echo off rem -- http://phpnow.org rem -- YinzCN_at_Gmail.com setlocal enableextensions if exist Pn\Config.
914 0
为了dede系统安全把data目录迁移到web以外目录
为了dede系统安全把data目录迁移到web以外目录 - 发表于:DEDE技术吧 - Dede教程 data目录是系统缓存和配置文件的目录,一般都有可以读写的权限,只要是能够写入的目录都可能存在安全隐患,很多站长甚至给予这个目录可执行的权限,更是非常危险,所以我们建议将这个data目录搬移出Web可访问目录之外。
794 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14328 0
选中文件夹设定为IIS站点主目录的批处理bat
原文:选中文件夹设定为IIS站点主目录的批处理bat 我使用的OS是winxp,安装的IIS版本为5.1,不支持多站点,下载的一些源代码想测试浏览一下就得设定虚拟目录,而且有些还必须设为站点根目录,每次改的时候就需要打开IIS然后默认站点,右键属性->主目录这样设定一番,天天这么重复设定就感觉麻烦的...
627 0
+关注
付磊-起扬
阿里云数据库技术专家(Redis方向)
84
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载