一般的过程例如以下

1、加入Mybatis所须要的包,和连接数据库所需的包

2、配置mybatis-config.xml文件

3、配置与pojo相应的映射文件

mybatis-config,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>

<typeAliases><!--类型别名-->

<typeAlias alias="User" type="com.iss.pojo.User" />

</typeAliases>





<environments default="development">

<environment id="development">

<transactionManager type="JDBC" />

<dataSource type="POOLED">

<property name="driver" value="com.mysql.jdbc.Driver" />

<property name="url"

value="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=UTF-8" />

<property name="username" value="root" />

<property name="password" value="root" />

</dataSource>

</environment>

</environments>





<mappers>

<mapper resource="com/iss/pojo/User.xml" /><!--映射文件的路径-->

</mappers>

</configuration>

pojo实体类

package com.iss.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;

}





public User(int id, String name) {

super();

this.id = id;

this.name = name;

}





public User() {

super();

}





}

User.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">









<mapper namespace="User"><!--映射的命名空间也就是在mybatis中配置的别名-->

<select id="selectUser" parameterType="int" resultType="User"><!--在mybatis-config.xml中为类型起了别名-->

<![CDATA[

        select * from user where id = #{id}]]><!--查询的是表名不是对象-->

</select>

<insert id="insertUser" parameterType="User">



<![CDATA[insert into user

value(#{id},#{name})]]>





</insert>

<delete id="deleteUser" parameterType="int">

delete from user where

id=#{id}





</delete>

<update id="updateUser" parameterType="User">

update user set

name=#{name} where id=#{id}

</update>

</mapper>

Mybatis工具类

Mybatis工具类

package com.iss.util;





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 com.sun.org.apache.xpath.internal.operations.Gte;





public class MybatisUtil {





private static SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();//类似于Hibernate中Configration





private static SqlSessionFactory sqlSessionFactory;//类似于Hibernate中SessionFactory





// 静态初始化块配置文件在类执行时仅仅载入一次

static {





String resource = "mybatis-config.xml";

Reader reader = null;

try {

reader = Resources.getResourceAsReader(resource);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}





sqlSessionFactory = builder.build(reader);

}





private MybatisUtil() {

// TODO Auto-generated constructor stub

}





public static SqlSessionFactoryBuilder getBuilder() {

return builder;

}





public static void setBuilder(SqlSessionFactoryBuilder builder) {

MybatisUtil.builder = builder;

}





      

public static SqlSessionFactory getSqlSessionFactory() {

return sqlSessionFactory;

}





public static void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {

MybatisUtil.sqlSessionFactory = sqlSessionFactory;

}





// 获得sqlSession对象类似于Hibernate中的session

public static SqlSession getSqlSession() {

SqlSession sqlSession = sqlSessionFactory != null ? sqlSessionFactory

.openSession() : null;

return sqlSession;

}





public static void closeSession() {

SqlSession sqlSession = getSqlSession();

if (sqlSession != null) {

sqlSession.close();

}

}





}

UserService

package com.iss.service;





import org.apache.ibatis.session.SqlSession;





import com.iss.pojo.User;

import com.iss.util.MybatisUtil;





public class UserService {





public static User selectUser(int id) {

SqlSession sqlSession = MybatisUtil.getSqlSession();

User user = sqlSession.selectOne("selectUser", 1);

MybatisUtil.closeSession();

return user;

}





public static void insertUser(int id, String name) {





User user = new User();

user.setId(id);

user.setName(name);





SqlSession sqlSession = MybatisUtil.getSqlSession();

sqlSession.insert("insertUser", user);

sqlSession.commit();

MybatisUtil.closeSession();

}





public static void updateUser(int id, String name) {

User user = new User();

user.setId(id);

user.setName(name);





SqlSession sqlSession = MybatisUtil.getSqlSession();

sqlSession.update("updateUser", user);

sqlSession.commit();

MybatisUtil.closeSession();





}





public static void deleteUser(int id) {

SqlSession sqlSession = MybatisUtil.getSqlSession();

sqlSession.delete("deleteUser", id);

sqlSession.commit();

MybatisUtil.closeSession();

}





}

TestUser

package com.iss.test;





import com.iss.pojo.User;

import com.iss.service.UserService;





public class TestUser {





public static void main(String[] args) {





UserService.insertUser(3, "world");

User user = UserService.selectUser(2);

System.out.println(user.getName());

UserService.updateUser(1, "wdy");

System.out.println(UserService.selectUser(2).getName());





UserService.deleteUser(2);

}

}

总结Hibernate 和Mybatis非常相似

基本的差别

Hibernate的映射文件是对表的映射

Mybatis的映射文件是对表操作的一种映射

Mybatis简单的入门之增删改查的更多相关文章

  1. Mybatis入门之增删改查

    Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...

  2. Mybatis实现简单的CRUD(增删改查)原理及实例分析

    Mybatis实现简单的CRUD(增删改查) 用到的数据库: CREATE DATABASE `mybatis`; USE `mybatis`; DROP TABLE IF EXISTS `user` ...

  3. SpringBoot+Mybatis+Maven+MySQL逆向工程实现增删改查

    SpringBoot+Mybatis+MySQL+MAVEN逆向工程实现增删改查 这两天简单学习了下SpringBoot,发现这玩意配置起来是真的方便,相比于SpringMVC+Spring的配置简直 ...

  4. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-2.使用Mybatis注解开发视频列表增删改查

    笔记 2.使用Mybatis注解开发视频列表增删改查     讲解:使用Mybatis3.x注解方式 增删改查实操, 控制台打印sql语句              1.控制台打印sql语句      ...

  5. MyBatis入门2_增删改查+数据库字段和实体字段不一致情况

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! 当数据库字段和实体bean中属性不一致时 之前数据库P ...

  6. Mybatis之基于XML的增删改查

    这里先吐槽下,写的半天的东西,IE浏览器弹出调试窗口导致写的东西全部没保存,搞得我还要重新用谷歌写,思路全没了,fuck. 前面学习了下spring的DAO层,说起DAO层,那ORM肯定是少不了的,O ...

  7. SSMybatis整合 --详细解读Mybatis对oracle数据库进行增删改查(一)

    Mybatis是现在主流的持久化层框架,与Hibernate不同的是,它鼓励程序员使用原声SQL语句对数据库进行操作.因此提供了非常灵活的功能.特别是当数据库同时访问数过多,需要进行优化时,使用sql ...

  8. mybatis:开发环境搭建--增删改查--多表联合查询(多对一)

    什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或 ...

  9. 【Mybatis】mybatis开启Log4j日志、增删改查操作

    Mybatis日志(最常用的Log4j) 官方网站http://www.mybatis.org/mybatis-3/zh/logging.html 1.在src目录下创建一个log4j.propert ...

随机推荐

  1. android新浪分享实例

    新浪分享比较简单,新浪有提供完整的demo. android实现新浪的分享功能,分3种分享情况: 纯文本的,带图片的,图片为本地图片(传入的是图片在手机的地址),第2种带图片的是,网络图片,图片地址为 ...

  2. 架设FLASH视频流server心得

    什么样的情况下才使用FMS?有下面几种情形的时候,你可能须要用到FMS 1.须要通过Flash Player 播放视频,而视频是以流的方式,而不是http渐进式下载的方式进行播放的时候.渐进式下载就是 ...

  3. android编译自己 内置的jar做法

    1.首先 android.mk LOCAL_PATH := $(call my-dir) # ===================================================== ...

  4. 使用WIX打包客户端程序

    原文:使用WIX打包客户端程序 用WPF为客户做了个小工具,打包的时候发现VS2012居然没有安装项目了,搜了下才知道现在推荐使用WIX来打包了http://wix.sourceforge.net/, ...

  5. AbstractQueuedSynchronizer的介绍和原理分析(转)

    简介 提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架.该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础.使用的方法是继承,子类通过 ...

  6. 金句: "對比MBA學位,我們更需要PSD學位的人!" Poor, Smart and Deep Desire to… | consilient_lollapalooza on Xanga

    金句: "對比MBA學位,我們更需要PSD學位的人!" Poor, Smart and Deep Desire to… | consilient_lollapalooza on X ...

  7. 浅谈SQL之主键、外键约束

    约束:顾名思义就是一种限制,在表或列的层次设置约束,确保数据的有效性和完整性. SQL server中约束的主要分类: UNIQUE约束(唯一性约束) 防止一个特定的列中两个记录具有相同的值.可设置多 ...

  8. KISSY 库 demo

    KISSY 是由淘宝前端project师们发起创建的一个开源 JS 类库. 它遵循的原则是 小巧灵活.简洁有用.愉悦编码.快乐开发. DEMO: <!DOCTYPE html> <h ...

  9. UVA12304 2D Geometry 110 in 1! 计算几何

    计算几何: 堆几何模版就能够了. . .. Description Problem E 2D Geometry 110 in 1! This is a collection of 110 (in bi ...

  10. Redis设计与实现读书笔记——双链表

    前言 首先,贴一下参考链接: http://www.redisbook.com/en/latest/internal-datastruct/adlist.html, 另外真赞文章的作者,一个90后的小 ...