mybatis的增刪改查


mybatis功能強大在映射語句,配置映射器XML文件相對簡單。下面是mybats的增刪改查


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">
<!--  XML 配置文件包含對 MyBatis 系統的核心設置 -->
<configuration>
    <!-- 指定 MyBatis 所用日志的具體實現 -->
    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
    <typeAliases>
        <package name="com.rookie.bigdata.domain"/>
    </typeAliases>
    <environments default="mysql">
        <!-- 環境配置,即連接的數據庫。 -->
        <environment id="mysql">
            <!--  指定事務管理類型,type="JDBC"指直接簡單使用了JDBC的提交和回滾設置 -->
            <transactionManager type="JDBC"/>
            <!--  dataSource指數據源配置,POOLED是JDBC連接對象的數據源連接池的實現。 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://192.168.47.151:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <!-- mappers告訴了MyBatis去哪里找持久化類的映射文件 -->
    <mappers>
        <mapper resource="mapper/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">
<!-- namespace指用戶自定義的命名空間。 -->
<mapper namespace="com.rookie.bigdata.mapper.UserMapper">

    <!--
        id="save"是唯一的標示符
        parameterType屬性指明插入時使用的參數類型
        useGeneratedKeys="true"表示使用數據庫的自動增長策略
     -->
    <insert id="saveUser" parameterType="com.rookie.bigdata.domain.User" useGeneratedKeys="true">
  	INSERT INTO T_USER(name,sex,age)
  	VALUES(#{name},#{sex},#{age})
  </insert>

    <!-- select操作
    parameterType="int"表示該查詢語句需要一個int類型的參數
    resultType="user"表示返回的是一個user對象 -->
    <select id="selectUser" parameterType="int" resultType="user">
        SELECT * FROM T_USER WHERE id = #{id}
    </select>
    <select id="selectAll"  resultType="user">
        SELECT * FROM T_USER
    </select>



    <!-- update操作
    parameterType="user"表示該更新語句需要一個user對象作為參數-->
    <update id="updateUser" parameterType="user">
        UPDATE T_USER
        SET name = #{name},sex = #{sex},age = #{age}
        WHERE id = #{id}
    </update>

    <!-- delete操作 parameterType="int"表示該查詢語句需要一個int類型的參數-->
    <delete id="DeleteUser" parameterType="int">
        DELETE FROM TB_USER WHERE id = #{id}
    </delete>

</mapper>

UserMapper.java

package com.rookie.bigdata.mapper;

import com.rookie.bigdata.domain.User;

import java.util.List;

/**
 * Created by dell on 2019/6/17.
 */
public interface UserMapper {

    void saveUser(User user);

    User selectUser(Integer id);

    void updateUser(User user);

    void DeleteUser(Integer id);

    List<User> selectAll();

}

SqlSessionFactoryUtil.java

package com.rookie.bigdata.factory;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class SqlSessionFactoryUtil {
	
	private static SqlSessionFactory sqlSessionFactory = null;
	
	// 初始化創建SqlSessionFactory對象
	static{
		try {
			// 讀取mybatis-config.xml文件
			InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
			sqlSessionFactory = new SqlSessionFactoryBuilder()
					.build(inputStream);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	// 獲取SqlSession對象的靜態方法
	public static SqlSession getSqlSession(){
		return sqlSessionFactory.openSession();
	}

	// 獲取SqlSessionFactory的靜態方法
	public static SqlSessionFactory getSqlSessionFactory() {
		return sqlSessionFactory;
	}

}

測試增刪改查

package com.rookie.bigdata.mapper;

import com.rookie.bigdata.domain.User;
import com.rookie.bigdata.factory.SqlSessionFactoryUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

import static org.junit.Assert.*;

/**
 * Created by dell on 2019/6/17.
 */
public class UserMapperTest {
    @Test
    public void saveUser() throws Exception {
        SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.saveUser(new User("張三", "男", 26));
        sqlSession.commit();
        sqlSession.close();
        //sqlSession.commit();

    }

    @Test
    public void selectUser() throws Exception {
        SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = mapper.selectUser(1);
        System.out.println(user);
        sqlSession.commit();
        sqlSession.close();

    }

    @Test
    public void updateUser() throws Exception {
        SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = new User("zhangsan","女",70);
        user.setId(1);
        mapper.updateUser(user);

        sqlSession.commit();
        sqlSession.close();

    }

    @Test
    public void deleteUser() throws Exception {
        SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.DeleteUser(1);
        sqlSession.commit();
        sqlSession.close();


    }

    @Test
    public void selectAll() throws Exception {
        SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> userList = mapper.selectAll();
        for (User user : userList) {
            System.out.println(user);
        }
        sqlSession.commit();
        sqlSession.close();


    }

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM