Mybatis框架基於注解的方式,實對數據現增刪改查


編寫Mybatis代碼,與spring不一樣,不需要導入插件,只需導入架包即可;

在lib下 導入mybatis架包:mybatis-3.1.1.jar
mysql驅動架包:mysql-connector-java-5.1.6-bin.jar

 

在src目錄下建立xml配置文件: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:開發模式
    work:工作模式
    default="development",id="development",兩個的屬性值必須一致
     -->    
     <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="lxn123"/>
             </dataSource>    
         </environment>
     </environments>
     
     <!-- 在配置文件中 關聯包下的 接口類-->
     <mappers>
         <mapper class="com.atguigu.mybatis.test3.UserMapper"/>
     </mappers>
</configuration>

 

這是基於注解的方式,所以建立一個接口,在定義的方法上配置上應有的注解,注解中含有sql語句,需要提示的是這個接口不需要類去實現它

package com.atguigu.mybatis.test3;

import java.util.List;

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.atguigu.mybatis.test.User;

public interface UserMapper {
    
    /*
     * 這是基於注解的映射方式,實現對數據的增刪改查,將sql語句直接寫在注解的括號中
     * 這是一個接口,其不需要類去實現它
     * 下邊分別是插入,刪除,修改,查詢一個記錄,查詢所有的記錄
     * */
    
    @Insert("insert into users(name,age) values(#{name},#{age})")
    public void insertT(User user);
    
    @Delete("delete from users where id=#{id}")
    public void deleteById(int id);
    
    @Update("update users set name=#{name},age=#{age} where id=#{id}")
    public void updateT(User user);
    
    @Select("select * from users where id=#{id}")
    public User getUser(int id);
    
    @Select("select * from users")
    public List<User> getAllUsers();
}

 

封裝列:User,這兒只寫屬性,getter和setter,tostring就不寫了

private int id;
private String name;
private int age;

 

建立MybatisUtils類,有一個方法,加載mybatis和構建sqlSession

package com.atguigu.mybatis.test;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MybatisUtils {
    public static SqlSessionFactory getFactory(){
        String resource="conf.xml";
        
        //加載mybatis 的配置文件(它也加載關聯的映射文件)
        InputStream is=MybatisUtils.class.getClassLoader().getResourceAsStream(resource);
        
        //構建sqlSession 的工廠
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
        return factory;
    }
}

 

實現增刪改查的方法

package com.atguigu.mybatis.test3;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;

import com.atguigu.mybatis.test.MybatisUtils;
import com.atguigu.mybatis.test.User;

public class UserMapperTest {
    
    @Test
    //插入數據
    public void testInsert(){
        SqlSessionFactory factory=MybatisUtils.getFactory();
        SqlSession session=factory.openSession(true);
        //使用反射的方法
        UserMapper mapper=session.getMapper(UserMapper.class);
        mapper.insertT(new User(-1, "p", 4));
        
        session.close();
    }
    
    @Test
    //刪除數據
    public void testDelete(){
        SqlSessionFactory factory=MybatisUtils.getFactory();
        SqlSession session=factory.openSession(true);
        UserMapper mapper=session.getMapper(UserMapper.class);
        mapper.deleteById(1);
        session.close();
    }
    
    @Test
    //修改數據
    public void testUpdate(){
        SqlSessionFactory factory=MybatisUtils.getFactory();
        SqlSession session=factory.openSession(true);
        UserMapper mapper=session.getMapper(UserMapper.class);
        mapper.updateT(new User(2, "jjjjj", 232));
        session.close();
    }
    
    @Test
    //獲取一條數據
    public void testGetUser(){
        SqlSessionFactory factory=MybatisUtils.getFactory();
        SqlSession session=factory.openSession(true);
        UserMapper mapper=session.getMapper(UserMapper.class);
        User user=mapper.getUser(2);
        session.close();
        System.out.println(user);
    }
    
    @Test
    //獲取所有數據
    public void testGetAllUsers(){
        SqlSessionFactory factory=MybatisUtils.getFactory();
        SqlSession session=factory.openSession(true);
        UserMapper mapper=session.getMapper(UserMapper.class);
        List<User> users=mapper.getAllUsers();
        
        session.close();
        System.out.println(users);
    }
}

 


免責聲明!

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



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