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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 转载请注明出处哈: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);
    }
}

 

 

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL Java 数据库连接
mybatis学习笔记之学习目录(1)
mybatis学习笔记之学习结构(1) 学习结构: 1.mybatis开发方法 原始dao开发方法(程序需要编写dao接口和dao实现类) mybatis的mapper接口(相当于dao接口)代理开发方法 mybatis配置文件SqlMapConfig.xml mybatis核心: mybatis输入映射 mybatis输出映
1625 0
|
Java 测试技术 数据库连接
MyBatis系列目录--7. Mybatis与Spring最佳整合
转载请注明出处哈:http://carlosfu.iteye.com/blog/2238662   1. 整合思路 (1) SqlSessionFactory由Spring作为单例管理 (2) spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession。
1102 0
|
缓存 Java 数据库连接
MyBatis系列目录--5. MyBatis一级缓存和二级缓存(redis实现)
 转载请注明出处哈:http://carlosfu.iteye.com/blog/2238662 0. 相关知识: 查询缓存:绝大数系统主要是读多写少。 缓存作用:减轻数据库压力,提供访问速度。
928 0
|
SQL Java 数据库连接
MyBatis系列目录--6. Mybatis实用技巧
转载请注明出处哈:http://carlosfu.iteye.com/blog/2238662  一、通过数据字典查询列,属性数据(减轻手工、防止错误、结合sql标签使用) select group_concat(column_name) from information_schema.
1028 0
|
Java 数据库连接 Apache
MyBatis系列目录--3. Mybatis注解
转载请注明出处哈:http://carlosfu.iteye.com/blog/2238662   1. PlayerDao注解方式实现 package com.sohu.tv.
765 0
|
SQL 监控 Java
MyBatis系列目录--4. MyBatis别名、字段冲突、动态sql、日志、xml其他组件等若干优化
转载请注明出处哈:http://carlosfu.iteye.com/blog/2238662   一、mybatis执行日志    加入log4j/logback能看到mybatis更详细的执行情况,以logback为例子 1.
1543 0
|
监控 Java 数据库连接
MyBatis系列目录
  转载请注明出处哈:http://carlosfu.iteye.com/blog/2238662    MyBatis系列目录   1. MyBatis快速入门 2. Mybatis的简单CRUD 3.
1038 0
|
Java 数据库连接 Apache
MyBatis系列目录--2. Mybatis的简单CRUD(含操作视频)
转载请注明出处哈:http://carlosfu.iteye.com/blog/2238662   1. 定义sql映射xml文件:   playerMapper.xml select id,name,age from ...
915 0
|
1月前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
41 1
|
1月前
|
druid Java 数据库连接
Spring Boot3整合MyBatis Plus
Spring Boot3整合MyBatis Plus
45 1