mybatis-简单的增删改查操作

mybatis是apache下一个开源项目,原称为ibatis,后改名为mybatis。
是一个基于Java的持久层框架。(类似与hibetnate)。

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

**重点内容**mybatis入门案例-增删改查操作

1 案例结构图(使用intellij idea开发)

2.conf.xml文件配置(主要是基本信息的配置以及关联usermapper.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">

    <!--development : 开发模式
        work : 工作模式-->
    <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://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <!--注册配置操作文件-->
    <mappers>
        <mapper resource="com/engle/vo/userMapper.xml"/>
    </mappers>
</configuration>

2.usermapper.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="mybatisIDUS">

     <!--查询某一条信息-->
    <select id="getUser" parameterType="int"  resultType="com.engle.vo.User">
        select * from users where id=#{id}
    </select>

    <!--插入一条记录-->
    <insert id="insertUser" parameterType="com.engle.vo.User">
        insert into users(name,age) values(#{name},#{age})
    </insert>

    <!--更新一条记录-->
    <update id="updateUser" parameterType="com.engle.vo.User">
        update users set name=#{name},age=#{age} where id=#{id}
    </update>

    <!--删除一条记录-->
    <delete id="deleteUser" parameterType="int">
        delete from users where id=#{id}
    </delete>
</mapper>

4.实体类配置(一定要添加空的构造方法)

public class User {
    private int id;
    private String name;
    private int age;

    public User() {
    }

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public User(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
    //省略get和set方法

5.配置测试类(本案例使用junit测试 )

public class JunitTest {
    /**
     * 封装session
     */
    public static SqlSession getSession(){
        String resource = "conf.xml";
        InputStream is = JunitTest.class.getClassLoader().getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        // SqlSession session = factory.openSession(true) 自动提交更新
        SqlSession session = factory.openSession(); //默认为手动提交更新
        return session;
    }
    /**
     * 封装statement
     */
    public static String getStatement(String statement){
        return "mybatisIDUS."+statement;
    }

    /**
     * 插入一条数据
     */
    @Test
    public void insert(){
        String statement = "mybatisIDUS.insertUser";
        SqlSession session = getSession();
        int result = session.insert(statement, new User("wangwu", 19));
        if (result==1){
            session.commit();
            session.close();
            System.out.println("插入成功");
        }

    }
    /**
     * 通过id查询单个数据
     */
    @Test
    public void select(){
        String statement = "mybatisIDUS.getUser";
        SqlSession session = getSession();
        User user = session.selectOne(statement, 1);
        System.out.println(user);
        session.close();
    }
    /**
     * 更新数据
     */
    @Test
    public void update(){
        SqlSession session = getSession();
        String statement = getStatement("updateUser");
        int result = session.update(statement, new User(10, "wangwu", 44));
        if (result==1){
            session.commit();
            session.close();
            System.out.println("更新成功");
        }
    }

    /**
     * 通过id删除一条
     */
    @Test
    public void delete(){
        SqlSession session = getSession();
        String statement = getStatement("deleteUser");
        int result = session.delete(statement, 1);
        if (result==1){
            session.commit();
            session.close();
            System.out.println("删除成功");
        }
    }
}

通过次案例我们已经粗略的了解了一些关于mybatis的简单操作,
其实和我们所学的hibernate框架有很多的共同点。



具体的源代码可在如下网址获取: https://github.com/engle025/mybatis_3_study.git

时间: 2025-01-30 06:36:32

mybatis-简单的增删改查操作的相关文章

详解Android中一些SQLite的增删改查操作_Android

在Android开发中经常要涉及到对数据的操作.Android本身提供了四种数据存储方式.包括:SharePreference,SQLite,Content Provider,File. 在Android,数据都是么私有的,要实现数据共享,正确方式是使用Content Provider.SQLite: SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式.Android为此数据库提供了一个名为SQLiteDatabase的类,封装了一些操作数据库的API.Share

Yii2框架数据库简单的增删改查语法小结

User::find()->all(); //返回所有用户数据: User::findOne($id); //返回 主键 id=1 的一条数据: User::find()->where(['name' => 'ttt'])->one(); //返回 ['name' => 'ttt'] 的一条数据: User::find()->where(['name' => 'ttt'])->all(); //返回 ['name' => 'ttt'] 的所有数据: U

详解Android中一些SQLite的增删改查操作

在Android开发中经常要涉及到对数据的操作.Android本身提供了四种数据存储方式.包括:SharePreference,SQLite,Content Provider,File. 在Android,数据都是么私有的,要实现数据共享,正确方式是使用Content Provider. SQLite: SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式.Android为此数据库提供了一个名为SQLiteDatabase的类,封装了一些操作数据库的API. Sha

asp.net mvc4 如何向mysql 中实现 增删改查操作

问题描述 asp.net mvc4 如何向mysql 中实现 增删改查操作 如题,最近在写一个基于asp.net mvc4网站,后台要求使用mysql数据库,现在的情况是数据库可以连通,单独的sql也会写,但是我不知道按照规范应该在哪写,以及如何通过方法写对应实体的增删改查这些个基本操作,还望有经验的高手能够指点一二! 解决方案 mysql也有entity provider,如果你用它,那么编程和使用sql server没有什么不同. 解决方案二: http://ju.outofmemory.c

【新人】vb.net访问SQL2005,并进行增删改查操作

问题描述 我是新人,希望有人提供一份vb.net访问SQL2005,并进行增删改查操作的代码,我想研究一下,谢谢 解决方案 解决方案二:google下大把啊

求一份Struts2+Spring+mybatis整合的增删改查及分页和多条件查询的源代码

问题描述 求一份Struts2+Spring+mybatis整合的增删改查及分页和多条件查询的源代码 小白求一份Struts2+Spring+mybatis整合的增删改查及分页和多条件查询的源代码,用jQuery实现jsp页面 解决方案 SpringMVC+Spring+mybatis是否需要呢?笔者之前写了一些相关的文章,也有源代码,你可以参考下:http://blog.csdn.net/evankaka/article/details/49452201http://blog.csdn.net

PHP连接数据库实现注册页面的增删改查操作_php技巧

本文实例为大家分享了PHP连接数据库实现注册页面的增删改查操作的方法,供大家参考,具体内容如下 1.连接数据库 <?php //本地测试 $host = '127.0.0.1'; $port = 3306; $user = "root"; $pwd = ""; $link = @mysql_connect("{$host}:{$port}",$user,$pwd,true); if(!$link) { die("Connect S

谁有最简单的增删改查程序啊,发过来研究研究呗

问题描述 以前学的是ASP,最近转到.net上,看了一些书还是有些迷茫,还求能给个最简单的增删改查或者新闻发布系统研究一下,我用的是VS2008 解决方案 解决方案二:http://topic.csdn.net/u/20110414/10/06526263-9e0d-491f-b963-7ae0afd1f7e4.html解决方案三:简单增删改查:

mongodb+php实现简单的增删改查_MongoDB

windows上安装mongodb的php扩展 下载地址https://s3.amazonaws.com/drivers.mongodb.org/php/index.html 找到对应的php版本的dll文件,下载php_mongo.dll,放到php安装目录下的ext目录中,修改php.ini,添加一项extension=php_mongo.dll,没有找到支持php7的dll 获取MongoClient对象,new出来 获取数据库对象db,通过MongoClient对象的数据库属性,$Mon