先组织一下语言!Mybatis是一个框架,一个数据持久化的框架,作用就是SQL语句的映射!减少了JDBC繁琐的数据操作与类型转换!简而言之,就是方便、轻巧!什么是持久化,持久,恩,JDBC就是一个数据持久化的过程!

言归正传吧!写一下Mybatis环境搭建的步骤:

1.创建Java web项目

2.加入架包

  2.1数据库驱动包

  2.2 mybatis包

  2.3 log4j日志包(可选,如果你要记录日志的话就加)

  2.4加入Junit4包(测试)

3.创建持久化类(POJO)与SQL映射文件,POJO就如同我们的实体类,封装属性,提供外部方法

4.创建mybatis配置文件(mybatis-config.xml)

5.创建MybatisUtil工具类

6.测试

创建持久化类:

package pojo;

public class User {

private int id;

private String name;

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;

}

}

创建接口:

package dao;

public interface UserMapper {

int count();//记录总行数

}

创建SLQ映射文件:

<?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="dao.UserMapper">

 <!--映射实体与表-->
    <!--type表示实体的全路径名
        id为实体与表的映射取一个唯一的编号-->
<resultMap id="studentMap" type="app04.Student">
        <!--id标签映射主键属性,result标签映射非主键属性
            property表示实体的属性名
            column表示表的字段名-->
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="sal" column="sal"/>
    </resultMap>
 

<select id="count" resultType="int">

select count(*) from people

</select>

</mapper>

创建Mybatis配置文件

<?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>

<!-- 加载文件 -->

<properties resource="jdbc.properties"/>

<!-- 设置别名,配置文件能够在指定位置找到持久化类 -->

<typeAliases>

<package name="pojo"/>

</typeAliases>

<!--设置默认连接环境信息-->

<environments default="mysqlInfo">

<!--连接环境信息,取一个唯一的名字-->

<environment id="mysqlInfo">

<!--事务管理方式-->

<transactionManager type="JDBC"></transactionManager>

<!--使用连接池获取-->

<dataSource type="POOLED">

<!--配置与数据库交互的4个必要属性-->

<property name="driver" value="${driver}"/>

<property name="url" value="${url}"/>

<property name="username" value="${user}"/>

<property name="password" value="${password}"/>

</dataSource>

</environment>

</environments>

<!-- 加载映射文件到配置文件中 -->

<mappers>

<mapper resource="dao/UserMapper.xml" />

</mappers>

</configuration>

创建工具类MybatisUtil:

package util;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MybatisUtil {

private static SqlSessionFactory factory;

static{//代码只会执行一次在静态代码块中

try {

InputStream is = Resources.getResourceAsStream("mybatis-config.xml");

factory = new SqlSessionFactoryBuilder().build(is);

} catch (Exception e) {

e.printStackTrace();

}

}

//创建sqlSession

public static SqlSession createSqlSession(){

return factory.openSession(false);//true为自动提交事务

}

//关闭SqlSession

public static void closeSqlSession(SqlSession sqlSession){

if(null != sqlSession){

sqlSession.close();

}

}

}

编写测试类:

package test;

import static org.junit.Assert.*;

import org.apache.ibatis.session.SqlSession;

import org.junit.Test;

import dao.UserMapper;

import util.MybatisUtil;

public class userTest {

@Test

public void test() {

SqlSession sqlSession = null;

int count = 0;

System.out.println(count);

try {

sqlSession = MybatisUtil.createSqlSession();

count = sqlSession.getMapper(UserMapper.class).count();

System.out.println(count);

} catch (Exception e) {

e.printStackTrace();

}finally{

MybatisUtil.closeSqlSession(sqlSession);

}

}

}

学海无涯!苦渡而已!

Mybaits简诉的更多相关文章

  1. Android -- Apk安装简诉

    安装涉及到如下几个目录 system/app  ​ 系统自带的应用程序,无法删除 data/app   用户程序安装的目录,有删除权限. 安装时把apk文件复制到此目录 ​ data/data  存放 ...

  2. Struts2简诉

    Struts2框架是基于MVC模式的开源,MVC模式是一种开发方式,主要作用是对组件之间进行隔离,M代表业务逻辑层,V代表视图层,C代表控制层.有利于代码的后期维:Struts2框架的源码主要来于We ...

  3. Jquery与DOM对象

    在第一次学习jquery中,常常会不能分辨DOM对象和Jquery对象,下面我们就简诉一下它们之间的关系和区别 1.DOM对象(Document Object Model) 文档对象模型,每一份DOM ...

  4. magento安装wordpress

    说起来事实上很easy,如今简诉一下安装过程 1.到magento connect界面安装magento扩展,地址:http://www.magentocommerce.com/magento-con ...

  5. C#高级特性(反射)

    今天来讲解反射的应用: 一.反射是什么? 简诉一下,反射就是.Net Framework 的一个帮助类库,可以获取并使用metadata(元数据清单):说的通俗易懂点,就是不用通过引用,仍然可以使用其 ...

  6. js 简繁体字转换

    有些项目需要用到简体和繁体两种字体,在js前台进行转换比较方便而且显示速度没有延时 是一个比较好的解决方案. var _isFT_CS = 0// 简体 var _isFT_CT = 1// 繁体 v ...

  7. SQL简繁转换函数

    declare @jall nvarchar(4000),@fall nvarchar(4000) select @jall=N'啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊 ...

  8. 利用js轻松实现页面简繁体转换

    使用方法:StranBody(); //转换对象,使用递归,逐层剥到文本 function StranBody(fobj) { if(typeof(fobj)=="object") ...

  9. javascript 简繁转换

    js 简繁转换 function copy(ob) { var obj=findObj(ob); if (obj) { obj.select();js=obj.createTextRange();js ...

随机推荐

  1. 关于XAMPP环境配置

     关于XAMPP软件 * Apache - 软件服务器(运行PHP) * 启动失败 * 原因 - 端口号被占用 * 错误信息 - Error: Apache shutdown unexpectedly ...

  2. Java 9 揭秘(4. 模块依赖)

    文 by / 林本托 Tips 做一个终身学习的人. 在此章节中,主要学习以下内容: 如何声明模块依赖 模块的隐式可读性意味着什么以及如何声明它 限定导出(exports)与非限定导出之间的差异 声明 ...

  3. 表单的get和post使用情景

    GET和POST两种方法都是将数据送到服务器,但你该用哪一种呢? HTTP标准包含这两种方法是为了达到不同的目的.POST用于创建资源,资源的内容会被编入HTTP请示的内容中.例如,处理订货表单.在数 ...

  4. windows7 64bit下mvn命令后提示‘cmd’不是内部或外部命令,也不是可执行程序或批处理文件

    首先,开命令提示符,输入如下命令试试echo %M2_HOME% 回车如果显示的路径和安装路径一致说明配置没问题; 那么出现这个问题的原因可能就是路径问题,可能是你安装了某个软件更改了系统映射路径导致 ...

  5. 如何在office2007中插入MathType教学

    很多人在安装MathType数学公式编辑器时可能会遇到这个问题,MathType安装好了,可是在office2007的菜单栏中没有MathType这个选项卡,也就是说MathType没有成功加载在of ...

  6. SQL常用命令

    SQL常用命令使用方法: (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql=&qu ...

  7. iOS-swift-协议和拓展

    1 协议(protocol) 使用关键字 protocol 创建协议. protocol ExampleProtocol { var simpleDescription: String { get } ...

  8. 微信支付生成带logo的二维码

    利用到一个qrcode类 比较简洁 原作者没有加入二维码嵌入logo的功能 在这里我进行了小小的修改 可以实现生成微信支付二维码时打上logo 生成png格式的利用到该类中的png方法(我已经改好了) ...

  9. C++ type_traits 原理

    一.简单介绍 (1).type_traits 类型萃取,C++11中已结成为了一个核心模块. (2).标准库包括helper classes .type traits.type transformat ...

  10. Ubuntu+OpenCV2.4.11+ CodeBlocks 配置

    1.OpenCV 与 CodeBlocks 的安装都比较简单,好多教程. 参考http://www.cnblogs.com/lyutian/p/4425956.html 安装opencv. Codeb ...