一般的过程例如以下

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. HDU 3277Marriage Match III(二分+并查集+拆点+网络流之最大流)

    题目地址:HDU 3277 这题跟这题的上一版建图方法差点儿相同,仅仅只是须要拆点.这个点拆的也非常巧妙,既限制了流量,还仅仅限制了一部分,曾经一直以为拆点会所有限制,原来也能够用来分开限制,学习了. ...

  2. 开发腾讯移动游戏平台SDK Android版Ane扩展 总结

    本文记录了在开发 腾讯移动游戏平台SDK(MSDK) Android版Ane扩展 过程中所遇到的问题和相关解决方式 问题一:编译报错:Unable to resolve target 'android ...

  3. LVS的调度算法分析

    LVS调度算法 一.静态调度算法 1.  rr(round robin)轮询调度,即调度器将客户端的请求依次的传递给内部的服务器,从1到N,算法简洁,无须记录状态,但是不考虑每台服务器的性能. 配置如 ...

  4. loj1201(最大独立集)

    传送门:A Perfect Murder 题意:有一群苍蝇,之间有一些是朋友关系,如果杀了一只苍蝇,那么它的朋友们都会有警惕性,再也杀不了这些朋友了,问最多能杀多少只苍蝇. 分析:根据朋友性连边,最多 ...

  5. WPF案例 (六) 动态切换UI布局

    原文:WPF案例 (六) 动态切换UI布局 这个Wpf示例对同一个界面支持以ListView或者CardView的布局方式呈现界面,使用控件ItemsControl绑定数据源,使用DataTempla ...

  6. 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)——初识WiX

    原文:使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)--初识WiX Visual Studio 打包安装七宗罪 开发.NET的人,肯定会使用Visual ...

  7. Discount Diesel Time 9150-1 Quartz Wrist watch [WAT022]- US$4.49

    Discount Diesel Time 9150-1 Quartz Wrist watch [WAT022]- US$4.49 Diesel Time 9150-1 Quartz Wrist wat ...

  8. Java 小样例:图书馆课程设计(Java 8 版)

    用 Java 模拟一个图书馆.包含创建图书.创建读者.借书.还书.列出全部图书.列出全部读者.列出已借出的图书.列出过期未还的图书等功能. 每一个读者最多仅仅能借 3 本书,每一个书最多仅仅能借 3 ...

  9. TSL230选型

    tsl230是一种可以直接将光强转化成频率值的器件.详细原理就不介绍了,数据手冊里写的都非常清楚,230系列包括非常多种,主要为下面四类:TSL230,TSL230A,TSL230B系列:TSL230 ...

  10. JSP内置对象之request

    书接上回,上次跟大家概括的说了说JSP的九种常用内置对象.接下来就该聊聊它们各自的特点了,今天先说说request吧. 下面是request的一些常用方法: isUserInRole(String r ...