MyBatis学习系列之一

Mybatis介绍:

1. 为什么要学习此框架,肯定是之前的做法有太多的缺点,此框架的产生就 是解决此类不足。(JDBC不足:自己回忆)。

2. Mybatis是一个ORM(Object Relation Mapping)框架,对象(JAVA)关系(数据库)映射,ORM将java和数据库关联起来,使用者只关心java这一端。

3. 原来叫Ibatis,在apache基金会里面,后来挪到google上面 google code,最后挪到gitHub上面;gitHub是和svn竞争对手.SVN有的功能,git全部有;git有的功能,svn不一定有.

4.官网:https://github.com/mybatis/mybatis-3

5.下载地址:https://github.com/mybatis/mybatis-3/releases
版本:mybatis-3.2.7
开发版本目录介绍:
这里写图片描述

Lib:放的是一些jar包,jar包里面放的是一些classes文件,JAR:包(java项目),WAR包(web项目)

- mybatis-3.2.7.jar:mybatis的核心包 mybatis-3.2.7.pdf:官方提供的帮助手册(书);英文的
中文手册:http://www.mybatis.org/mybatis-3/zh/index.html


先爽一把(举个简单的例子测试)

查询管理员表的所有记录:
1. 写一个POJO(Entity)

package com.bjsxt.mybatis.pojo;

import java.util.Date;

/**
 * 管理员的POJO(实体类)
 * 
 * 类名和表名一样(木有人遵守,会_去掉) 属性名和列名一样
 * 
 * @author WangshSxt
 *
 */
public class AAdmins
{
    private int id;
    private int roleId;
    private String email;
    private String password;
    private byte status;
    private Date createTime;
    private Date updateTime;

Set/get方法(读写器)
}

2.写一个映射文件;*Mapper.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">
<!-- 
    namespace:命名空间  package 
    mapper:类
 -->
<mapper namespace="test">
    <!-- 
        查询管理员表的所有记录
        id:所有的sql语句,唯一,不能重复
        resultType:查询的sql语句返回的结果,类型,一般写的是POJO的类型
        如果是多条:List中放的是resultType指定的类型
        如果是单条,返回的结果类型就是resultType指定的类型
     -->
    <select id="findList" resultType="com.bjsxt.mybatis.pojo.AAdmins">
        select * from a_admins 
    </select>
</mapper>

3.将Mapper.xml的文件添加到mybatis.cfg.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>
    <!-- 
        数据源(连接数据库的相关信息)
        环境的复数

        default:如果有多个environment标签,默认加载哪一个
     -->
    <environments default="myDefault">

        <!-- 为每一个环境起上名字 -->
        <environment id="myDefault">
            <!-- 事务管理器 -->
            <transactionManager type="JDBC"/>
            <!-- 驱动,url,用户名,密码 
                连接池:

                这个池子里面放的是一个一个链接Connection
            -->
            <dataSource type="POOLED">
                <!-- 驱动 -->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!-- url -->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <!-- 用户名 -->
                <property name="username" value="root"/>
                <!-- 密码 -->
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 映射文件 -->
    <mappers>
        <!-- resource:映射文件的路径 -->
        <mapper resource="com/bjsxt/mybatis/pojo/AAdminsMapper.xml"/>
    </mappers>
</configuration>

4.测试代码:

package com.bjsxt.mybatis.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;

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 com.bjsxt.mybatis.pojo.AAdmins;

/**
 * 测试Mybatis
 * @author WangshSxt
 *
 */
public class MyBatisMain
{
    public static void main(String[] args)
    {
        try
        {
            /* 从classpath中加载配置文件 
             * 参数:配置文件的名字
             * */
            InputStream inputStream = Resources.getResourceAsStream("mybatis.cfg.xml");
            /* 
             * sessionFactory====DriverManager
             * */
            SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            /*
             * session == Connection
             * */
            SqlSession session = sessionFactory.openSession();

            /* 所有的操作都是session提供的方法
             * 参数:填写的是:sql语句所在的映射文件的namespace+sql语句的id名
             *  */
            List<AAdmins> adminsList = session.selectList("test.findList");
            int count = 1 ; 
            for (Iterator iterator = adminsList.iterator(); iterator.hasNext();)
            {
                AAdmins admins = (AAdmins) iterator.next();
                System.out.println(count + ",id:"+ admins.getId() +";email:"+ admins.getEmail() +
                        ";createTime:" + admins.getCreateTime().toLocaleString());
                count ++ ; 
            }
        } catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

Mybatis运行图

这里写图片描述

项目结构图:

这里写图片描述

Loge4j:以下是标准的Log4j代码,许多项目通用

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="STDOUT"/>
        </Root>
    </Loggers>
</Configuration>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值