先组织一下语言!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. 实现UDP高效接收/响应

    环境Linux g++6.3.0 问题一:一个ip地址如何接收高并发请求 问题二:如何高并发响应消息 发送请求端只能通过ip地址+端口号向服务器发送请求码,所以服务器只能用一个UDP去绑定此ip以及端 ...

  2. Windows系统前端常用PS快捷键:

    1.设置滚轮放大缩小: 编辑--首选项--常规--用滚轮缩放 2.V 移动 ctrl+v 自动选中(图层), 3.M 选框 Shift+M 变换形状 Alt :确定圆形/矩形中心 Shift: 圆形/ ...

  3. 我的第一个Java程序

    我的第一个Java程序: class Test{    public static void main(String[] args)    {    System.out.println(" ...

  4. div中内容无法自动换行问题

    .l-text{ padding:.3em .5em; width:67%; height: auto; /*height:1.3em;*/ border:.1em #2294C3 solid; bo ...

  5. web前端面试总结(二)

    这段时间大大小小面试确实不少,相对之前那篇被虐到体无完肤这几次确实相对来说有很大进步这里总结一下: 1.发现自己,站在个人角度我还是挺赞成出去面试的,不管你对现在的公司是否满意,当你觉得在这里已经有一 ...

  6. Sql函数简单使用

    ),)) ) as begin ) --如果@nameA 不为空则直接返回@nameA IF @nameA <>'' BEGIN set @lastNameVal = @nameA END ...

  7. cURL的运用,文字替换

    <?php /** * 实例描述:在网络上下载一个网页并把内容中的“百度”替换为“谷歌”之后输出 */ $curl_obj = curl_init(); // 初始化 curl_setopt($ ...

  8. JAVA上传与下载

    java下载指定地址的文件 package com.test; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...

  9. 【Android Developers Training】 90. 序言:解决云储存冲突

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  10. JAVA基础——Arrays工具类十大常用方法

    Arrays工具类十大常用方法 原文链接:http://blog.csdn.net/renfufei/article/details/16829457 0. 声明数组 String[] aArray ...