1. 程式人生 > >mybatis學習使用2簡單增刪改查

mybatis學習使用2簡單增刪改查

mybatis的增刪改查程式碼如下demo:

User.java
package com.rookie.bigdata.domain;

import lombok.Data;

import java.io.Serializable;

/**
 * @author
 * @date 2018/10/21
 */
//Data註解可以省略get和set方法
@Data
public class User implements Serializable{
    // 使用者標識
    private Integer id;
    // 使用者姓名
    private String name;
    
// 使用者性別 private String sex; // 使用者年齡 private Integer age; // 無引數構造器 public User() { super(); } // 有引數構造器 public User( String name, String sex, Integer age) { super(); this.name = name; this.sex = sex; this.age = age; } }
View Code

 

UserMapper.java

package com.rookie.bigdata.mapper;

import com.rookie.bigdata.domain.User;

/**
 * @author
 * @date 2018/10/21
 */
public interface UserMapper {

    void save(User user);

    void saveUser(User user);

    User selectUser(Integer id);

    void updateUser(User user);

    
void deleteUser(Integer id); }

 

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.rookie.bigdata.mapper.UserMapper">


  <insert id="save" parameterType="com.rookie.bigdata.domain.User" useGeneratedKeys="true">
      INSERT INTO BS_USER(name,sex,age)
      VALUES(#{name},#{sex},#{age})
  </insert>

    <!--
    parameterType="user"表示該插入語句需要一個user物件作為引數
    useGeneratedKeys="true"表示使用自動增長的主鍵,即使用JDBC的getGeeratedKeys方法獲取由資料庫生瘡內部生成的主鍵,預設為false
    keyProperty唯一標記的一個屬性,mybatis會通過getGerneratedKeys的返回值設定它的鍵值-->
    <insert id="saveUser" parameterType="com.rookie.bigdata.domain.User"
            useGeneratedKeys="true" keyProperty="id">
        INSERT INTO BS_USER(name,sex,age)
        VALUES(#{name},#{sex},#{age})
    </insert>

    <!-- select操作
    parameterType="int"表示該查詢語句需要一個int型別的引數
    resultType="com.rookie.bigdata.domain.User"表示返回的是一個user物件 -->
    <select id="selectUser" parameterType="int" resultType="com.rookie.bigdata.domain.User">
        SELECT * FROM BS_USER WHERE id = #{id}
    </select>

    <!-- update操作
    parameterType="com.rookie.bigdata.domain.User"表示該更新語句需要一個user物件作為引數-->
    <update id="updateUser" parameterType="com.rookie.bigdata.domain.User">
        UPDATE BS_USER
        SET name = #{name},sex = #{sex},age = #{age}
        WHERE id = #{id}
    </update>

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

</mapper>

 

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>

<!--    <typeAliases>
        <typeAlias  alias="user" type="com.rookie.bigdata.domain.User"/>
    </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://127.0.0.1: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>

 

測試程式碼UserMapperTest.java

package com.rookie.bigdata.mapper;

import com.rookie.bigdata.domain.User;
import org.apache.ibatis.annotations.Mapper;
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 org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;


/**
 * @author
 * @date 2018/10/21
 */
public class UserMapperTest {

    public  SqlSession session;

    @Before
    public void before() throws IOException {
        // 讀取mybatis-config.xml檔案
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        // 初始化mybatis,建立SqlSessionFactory類的例項
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
                .build(inputStream);
        // 建立Session例項
         session = sqlSessionFactory.openSession();
    }

    @Test
    public void saveUser() throws Exception {



        UserMapper mapper = session.getMapper(UserMapper.class);

        mapper.saveUser(new User("zhangsan","男",23));

        session.commit();
        // 關閉Session
        session.close();
    }

    @Test
    public void selectUser() throws Exception {
        UserMapper mapper = session.getMapper(UserMapper.class);
        User user = mapper.selectUser(5);

        // 提交事務
        session.commit();
        // 關閉Session
        session.close();
        System.out.println(user);
    }

    @Test
    public void updateUser() throws Exception {
        UserMapper mapper = session.getMapper(UserMapper.class);
        User user = mapper.selectUser(5);
        user.setAge(21);

        mapper.updateUser(user);
        // 提交事務
        session.commit();
        // 關閉Session
        session.close();
        System.out.println(user);

    }

    @Test
    public void deleteUser() throws Exception {

        UserMapper mapper = session.getMapper(UserMapper.class);
        mapper.deleteUser(5);
        session.commit();
        // 關閉Session
        session.close();



    }

}

 

至此簡單的增刪改查已經全部結束