1. 程式人生 > >例項介紹MyBatis增刪改查基本操作

例項介紹MyBatis增刪改查基本操作

通過上一篇部落格《MyBatis的入門介紹》我們瞭解了MyBatis基本原理
這篇我們就說說它的增刪改查基本操作


例項應用

建立Java Product專案,目錄結構如下:

這裡寫圖片描述

資料庫結構如下

這裡寫圖片描述

conf.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>
    <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="123456" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/atguigu/day03_mybaits/test2/userMapper.xml"/>
    </mappers>
</configuration>

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="com.atguigu.day03_mybaits.test2.userMapper">

    <insert id="addUser" parameterType="com.atguigu.day03_mybaits.test2.User">
        INSERT INTO users(name,age) VALUE (#{name},#{age})
    </insert>

    <delete id="deleteUser" parameterType="int">
          DELETE FROM users WHERE id=#{id}
    </delete>

    <update id="updateUser" parameterType="com.atguigu.day03_mybaits.test2.User">
        UPDATE users set NAME=#{name},age=#{age} where id=#{id}
    </update>

    <select id="getUser" parameterType="int"
            resultType="com.atguigu.day03_mybaits.test2.User">
        select * from users where id=#{id}
    </select>

    <select id="getAllUsers" resultType="com.atguigu.day03_mybaits.test2.User">
        SELECT * FROM users
    </select>
</mapper>

Test2類新增方法

    public void testAdd(){
    //找配置檔案和資料庫連線
        String resource = "conf.xml";
        InputStream is=Test.class.getClassLoader().getResourceAsStream(resource);
	//建立SqlSessionFactory物件
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
        //openSession預設手動提交,裡面引數為true預設自動提交
        SqlSession session=factory.openSession();
	//指定MyBatis執行的xml檔案
        String statement="com.atguigu.day03_mybaits.test2.userMapper.addUser";
        User u=new User();
        u.setId(-1);
        u.setName("KK");
        u.setAge(23);
        int insert=session.insert(statement,u);
        //手動提交方式
        session.commit();
        System.out.println(insert);
    }

Test2類更新方法

    public void testUpdate(){
    //找配置檔案和資料庫連線
        String resource = "conf.xml";
        InputStream is=Test.class.getClassLoader().getResourceAsStream(resource);
	//建立SqlSessionFactory物件
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
        //openSession預設手動提交,裡面引數為true預設自動提交
        SqlSession session=factory.openSession();
	//指定MyBatis執行的xml檔案
        String statement="com.atguigu.day03_mybaits.test2.userMapper.addUser";
        User u=new User();
        u.setId(5);
        u.setName("KK");
        u.setAge(25);
        int insert=session.update(statement,u);
        //手動提交方式
        session.commit();
        System.out.println(insert);
    }

Test2類刪除方法

    public void testDelete(){
    //找配置檔案和資料庫連線
        String resource = "conf.xml";
        InputStream is=Test.class.getClassLoader().getResourceAsStream(resource);
	//建立SqlSessionFactory物件
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
        //openSession預設手動提交,裡面引數為true預設自動提交
        SqlSession session=factory.openSession();
	//指定MyBatis執行的xml檔案
        String statement="com.atguigu.day03_mybaits.test2.userMapper.addUser";
		int insert=session.delete(statement,5);
        //手動提交方式
        session.commit();
        System.out.println(insert);
    }

Test2類查詢一條方法

    public void testGetUser(){
    //找配置檔案和資料庫連線
        String resource = "conf.xml";
        InputStream is=Test.class.getClassLoader().getResourceAsStream(resource);
	//建立SqlSessionFactory物件
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
        //openSession預設手動提交,裡面引數為true預設自動提交
        SqlSession session=factory.openSession();
	//指定MyBatis執行的xml檔案
        String statement="com.atguigu.day03_mybaits.test2.userMapper.addUser";
		User u=session.selectOne(statement,1);
        //手動提交方式
        session.commit();
        System.out.println(u);
    }

Test2類查詢全部方法

    public void testGetAll(){
    //找配置檔案和資料庫連線
        String resource = "conf.xml";
        InputStream is=Test.class.getClassLoader().getResourceAsStream(resource);
	//建立SqlSessionFactory物件
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
        //openSession預設手動提交,裡面引數為true預設自動提交
        SqlSession session=factory.openSession();
	//指定MyBatis執行的xml檔案
        String statement="com.atguigu.day03_mybaits.test2.userMapper.addUser";
		List<User>list=session.selectList(statement);
        //手動提交方式
        session.commit();
        System.out.println(list);
    }