mybatis學習筆記二(接口注解)


  直接上代碼,全部在代碼里講解。

  1.實體類

package com.home.entity;

/**
 * 此類是:user實體類
 * @author hpc
 * @2017年1月10日下午9:36:59
 */
public class User {
    private Integer user_id;
    private String user_name;
    private String user_pwd;
    
    public User(Integer user_id, String user_name, String user_pwd) {
        super();
        this.user_id = user_id;
        this.user_name = user_name;
        this.user_pwd = user_pwd;
    }
    public Integer getUser_id() {
        return user_id;
    }
    public void setUser_id(Integer user_id) {
        this.user_id = user_id;
    }
    public String getUser_name() {
        return user_name;
    }
    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }
    public String getUser_pwd() {
        return user_pwd;
    }
    public void setUser_pwd(String user_pwd) {
        this.user_pwd = user_pwd;
    }
    @Override
    public String toString() {
        return "User [user_id=" + user_id + ", user_name=" + user_name + ", user_pwd=" + user_pwd + "]";
    }
    
}

  2. 接口注解

  

package com.home.entityInterface;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.home.entity.User;

/**
* 此類是:映射關系接口
* @author hpc
* @2017年1月11日下午7:09:20
*/
public interface UserMapperInterface{
/**
* 獲取指定id的User
* 當我們調用這個方法的時候就會去執行這一條sql語句,
* 這里面要注意點的是:
* 傳進來的參數是以對象的形式傳進來的,
* 所以取的時候要以對象屬性來取,否則將會報錯.
*/
@Select("select * from users where user_id=#{user_id}")
public User loadUser(User user);

/**
* 更新user
*/
@Update("update users set user_name=#{user_name},user_pwd=#{user_pwd} where user_id=#{user_id}")
public int updateUser(User user);
/**
* 刪除user
*/
@Delete("delete from users where user_id=#{user_id}")
public int deleteUser(User user);
/**
* 插入user
*/
@Insert("insert into users(user_name,user_pwd) values(#{user_name},#{user_pwd}) ")
public int insertUser(User user);
}

 

  3.mybatis的配置文件(要和xml配置一樣,都要在mybatis配置文件中注冊)

 

<?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><!-- 這是mybatis的配置,我們的配置都寫在這里面 -->
  <properties resource="jdbc.properties"/>
  <!--properties標簽用於 引入properties文件,在下面屬性中我們要引用到properties中的內容 -->
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/><!-- 事務管理 -->
      <dataSource type="POOLED"><!-- 數據源 -->
        <property name="driver" value="${jdbc.driverClass}"/>
        <!-- 指定哪一個驅動 ,從properties中引用-->
        <property name="url" value="${jdbc.url}"/>
        <!-- 指定哪一個鏈接url -->
        <property name="username" value="${jdbc.user}"/>
        <!-- 指定哪一個鏈接用戶 -->
        <property name="password" value="${jdbc.password}"/>
        <!-- 指定哪一個鏈接密碼 -->
      </dataSource>
    </environment>
  </environments>
  <!-- 注冊映射關系文件 -->
  <mappers>
      <!-- 這是我們上次注冊映射關系配置文件的方式,這是以xml文件配置的方式注冊的 -->
      <!-- <mapper resource="com/home/entity/userMapper.xml"/> --> 
      <!-- 這次我們以接口的方式注入 ,所有的sql語句已經在接口的方法上寫好了,就沒必要在寫 配置文件了-->
      <mapper class="com.home.entityInterface.UserMapperInterface"/>
  </mappers>
</configuration>

   4.測試

  

package com.home.mybatis;

import java.io.IOException;

import org.apache.ibatis.session.SqlSession;

import com.home.entity.User;
import com.home.entityInterface.UserMapperInterface;
import com.home.mybatis.utils.SessionUtils;

public class TestApp {
    public static void main(String[] args) throws IOException {
        // 我將獲取session的代碼封裝成了一個工具類,直接用工具類來獲取session
        SqlSession session = SessionUtils.getSession("mybatis.xml");
        // 通過接口,直接使用session.getMapper(接口.class);獲取到接口
        UserMapperInterface mapper = session.getMapper(UserMapperInterface.class);
        // 再調用接口的方法,去執行接口所注解的sql語句
        System.out.println(mapper.insertUser(new User(null,"mh", "123")));
        System.out.println(mapper.updateUser(new User(3, "hpc", "123")));
        System.out.println(mapper.deleteUser(new User(3, null, null)));
        System.out.println(mapper.loadUser(new User(1, null, null)));
        // 將數據屬性到數據中去
        session.commit();
        // 關閉session
        session.close();
    } 
}

  5.結果

 

 

 


免責聲明!

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



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