先组织一下语言!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. Azure 基础:Blob Storage

    Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在前文中介绍了 Table Storage 的基本 ...

  2. java音视频编解码问题:16/24/32位位音频byte[]转换为小端序short[],int[],以byte[]转short[]为例

    前言:Java默认采用大端序存储方式,实际编码的音频数据是小端序,如果处理单8bit的音频当然不需要做转换,但是如果是16bit或者以上的就需要处理成小端序字节顺序. 注:大.小端序指的是字节的存储顺 ...

  3. 搭建rtmp直播流服务之4:videojs和ckPlayer开源播放器二次开发(播放rtmp、hls直播流及普通视频)

    前面几章讲解了使用 nginx-rtmp搭建直播流媒体服务器; ffmpeg推流到nginx-rtmp服务器; java通过命令行调用ffmpeg实现推流服务; 从数据源获取,到使用ffmpeg推流, ...

  4. 每篇半小时1天入门MongoDB——3.MongoDB可视化及shell详解

    本篇主要介绍MongoDB可视化操作以及shell使用及命令,备份恢复.数据导入导出. MongoVUE安装和简单使用 使用mongo.exe 管理数据库虽然可行,功能也挺强大,但每次都要敲命令,即繁 ...

  5. Spring学习(5)---Bean的定义及作用域的注解实现

    Bean管理的注解实现 Classpath扫描与组件管理 类的自动检测与注册Bean <context:annotation-config/> @Component,@Repository ...

  6. spring非controller类获取service方法

    ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml"); pushMessageServ ...

  7. Bash中的数学计算

    一.整数计算 1.整数 $delare -i num$num=5+5$echo $num10 $num="5 + 8"$echo $num13注意:算式中如果有空格,需要用引号引起 ...

  8. Python 内置函数汇总

    循环设计与循环对象 range() enumerate() zip() iter() 函数对象 map() filter() reduce() 序列操作 all([True, 1, "hel ...

  9. ionic 的缓存 和局部刷新

    最近两天在做项目时,发现ionic的缓存功能非常方便好用,提高了再低端手机特别是android比较低版本上的流畅性!可是,后来发现,整体的缓存整个页面并不是一个一劳永逸的办法,结合局部刷新功能,感觉就 ...

  10. v9更新栏目缓存提示PHP has encountered a Stack overflow解决方法

    原因: 客户在把一些栏目删除或者新增栏目时没更新栏目缓存导致v9_category表里有原来的垃圾信息,多余的表. 解决方法:通过phpmyadmin找到栏目表出错的条目,修改错误信息. 具体步骤: ...