一般的过程例如以下

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. 关于JAVA Project.waitfor()返回值是1

    Project.waitfor()返回值是1,找了很久从网上没有发现关于1的说明. 这时对源代码调试了一下,发现Project=null.而去根目录下点击被调用的bat文件发现也可以被正确执行. 这时 ...

  2. ZOJ 3794 Greedy Driver

    两次SPFA 第一关找:从1没有出发点到另一个点的多少是留给油箱 把边反过来再找一遍:重每一个点到终点最少须要多少油 Greedy Driver Time Limit: 2 Seconds       ...

  3. TBDR缺点

    TBDR全称Tile-based Deferred Rendering.它是Power VR独特的TBR技术的一种延伸实现手段.TBR/TBDR通过将每一帧画面划分成多个矩形区域,并对区域内的全部像素 ...

  4. git不同linux版本号说明

    在确保你安装好git后,我们就能够通过git来下载linux kernel了,这时要先说一下linux的版本号分类. 在 Linux 内核官网上(https://www.kernel.org/),我们 ...

  5. hdu4126(最小生成树+dfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4126 题意:给出一幅3000个点的图,有10000次操作: 求将某条边的权值变大后的最小生成树,最后输 ...

  6. Swift编程语言学习10—— 枚举属性监视器

    属性监视器 属性监视器监控和响应属性值的变化,每次属性被设置值的时候都会调用属性监视器.甚至新的值和如今的值同样的时候也不例外. 能够为除了延迟存储属性之外的其它存储属性加入属性监视器,也能够通过重载 ...

  7. 开源 免费 java CMS - FreeCMS1.9 会员组管理

    项目地址:http://www.freeteam.cn/ 会员组管理 会员组分为两种,一级是经验会员组,一种是特殊会员组. 经验会员组的会员会依据经验自己主动变更,特殊会员组不会自己主动变更,须要管理 ...

  8. Linux进程同步之记录锁(fcntl)

    记录锁相当于线程同步中读写锁的一种扩展类型,可以用来对有亲缘或无亲缘关系的进程进行文件读与写的同步,通过fcntl函数来执行上锁操作.尽管读写锁也可以通过在共享内存区来进行进程的同步,但是fcntl记 ...

  9. loading加载中效果

    (function(){ try{ var ui={ loading:{ addCssStyle:function(text) { var head = document.getElementsByT ...

  10. IT痴汉的工作现状13-吓唬电话

    那是一个普通的周末上午,稍微阴沉的天,使得暑气消退了好多.刚吃过早饭,我懒懒的浏览着CSDN论坛上有趣的问题和答案. 突然电话响起.是一个陌生的号码.我像往常一样接起电话,""您好 ...