一般的过程例如以下

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. 真实世界里的钢铁侠-特斯拉汽车创始人埃隆&#183;马斯克(Elon Musk)

    真实世界里的钢铁侠--特斯拉汽车公司和SpaceX公司总裁马斯克(31岁).当我们得意于「站在山上踢几块石头下去」或是「站在风口上的猪」的成功理论的时候,我们真的成功了吗?我们到底创造了什么?改变了什 ...

  2. A Game of Thrones(9) - Tyrion

    Somewhere in the great stone maze(迷宫:迷惑) of Winterfell, a wolf howled. The sound hung over the castl ...

  3. hdu2870(dp求最大子矩阵)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2870 分析:分别转换成'a','b','c'三种来求,其实就跟hdu1505一样了... #inclu ...

  4. Django之逆向解析url

    Django中提供了一个关于URL的映射的解决方案,你可以做两个方向的使用: 1.有客户端的浏览器发起一个url请求,Django根据URL解析,把url中的参数捕获,调用相应的试图, 获取相应的数据 ...

  5. 添加PDF文件对照度的粗浅原理,及方法

      上边这张照片不是异形,而是著名的鹦鹉螺.下边这张照片,是送给研究生同学的毕业纪念,向龙同学帮我激光雕刻的. 近期的照片在[http://www.douban.com/photos/album/13 ...

  6. ubuntu 搭建svn服务器

    1.安装Subversion sudo apt-get install subversion 2.创建资源库 cd /home/username/ svnserve -d -r /home/usern ...

  7. 图画(txt等一下)实施开放的默认下载的默认浏览器,而不是(Java文本)

    在网络上,假设我们超链接地址对应于jpg档,txt档,点击链接,默认浏览器打开这些文件,而不是下载,那么,你如何实现竞争力的默认下载. 1.可通过自己写一个download.jsp来实现 <%@ ...

  8. 安装pygame

    pygame的安装 我们首先要去到:http://www.pygame.org/download.shtml 下载我们所需要的软件包: 我选择的是:pygame-1.9.2a0.win32-py3.2 ...

  9. HDU 4998 Rotate

    题意: n次旋转  每次平面绕ai点旋转pi弧度  问  最后状态相当于初始状态绕A点旋转P弧度  A和P是多少 思路: 如果初始X点的最后状态为X'点  则圆心一定在X和X'连线的垂直平分线上  那 ...

  10. Deploy 11.2.0.3 RAC+DG on Windows 2008 R2 Step by Step

    环境规划: 节点1: tc1 192.168.56.101 内存:2G 节点2: tc2 192.168.56.102 内存:2G 物理备库:tcdg192.168.56.108内存:1.5G 操作系 ...