mybatis使用

參照mybatis官方文檔操做 www.mybatis.org/mybatis-3/z…html

  • 1.建一個測試表

  • 2.新建實體類,生成get/set方法
  • 3.引入mybatis,mysql驅動()依賴
<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>


        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.26</version>
        </dependency>
複製代碼
  • 4.從XML中構建SqlSessionFactory,在測試類添加下面的代碼
  • 不用接口綁定的方法
import com.javasm.mybatis.User;
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.Test;

import java.io.InputStream;

/**
 * @author BI
 * @date 2018/12/27 - 15:36
 */
public class MybatisTest {

    /**
     * 1.根據xml配置文件建立一個SqlSeessionFactory對象
     * 2.
     * @throws Exception
     */
    @Test
    public void testUser() throws Exception {
        String resource = "conf/mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2.獲取sqlSession實例,能直接執行已經映射的sql語句
        SqlSession session = sqlSessionFactory.openSession();

        //selectOne參數是mapper映射文件的selectId和要查詢的數據庫id
        try {
            User user = session.selectOne("selectUser", 1);
            System.out.println(user);
        }finally {
            session.close();
        }
    }
}
複製代碼

5.新建mybatis-config.xmljava

<?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/test"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
      </dataSource>
    </environment>
  </environments>
  //指定mapper.xml映射文件
  <mappers>
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>
  </mappers>
</configuration>
複製代碼

6.新建mapper.xml文件,映射sql語句mysql

<?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="org.mybatis.example.BlogMapper">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>
複製代碼

====================================sql

用接口的綁定方法獲取數據(就是dao層和mapper映射文件綁定)數據庫

1.新建一個接口,寫入查詢方法apache

public interface UserMapper {

    User getUserById(int id);
}
複製代碼

2.在mapper映射文件就行綁定,nameSpace="接口全類名",select id="接口內的方法名"bash

<?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.javasm.mybatis.UserMapper">
    <select id="getUserById" resultType="com.javasm.mybatis.User">
    select * from t_user where t_id = #{id}
  </select>
</mapper>
複製代碼

3.而後測試類這樣寫session

@Test
public void testUser2() throws Exception{
        //使用Resources工具類獲取配置文件資源
	String resource = "config/mybatis-config.xml";
	InputStream stream = Resources.getResourceAsStream(resource);
	//使用SqlSessionFactoryBuilder的build方法經過配置文件獲得SqlSessionFactory
	SqlSessionFactory sessionFactory= new SqlSessionFactoryBuilder().build(stream);
	
	//從SqlSessionFactory中獲取sqlSession實例
	SqlSession session = sessionFactory.openSession();
	
	try {
		//經過session實例獲取接口對象的實現類對象
		UserMapper mapper = session.getMapper(UserMapper.class);
		
		//根據返回的mapper調用查詢方法,傳入int類型的id,並返回查詢的User對象
		User user = mapper.getUserById(1);
		System.out.println(user);
		
		//修改,傳入修改數據的id,執行更新方法
		User user = new User(1, "張三", 69, "是見");
		mapper.updateUser(user);
		
		//添加,new一個User對象,經過有參構造設置參數,數據庫id設爲自增,因此id能夠爲null
		User user = new User(null,"李四",65,"上海市");
		mapper.addUser(user);
		
		//刪除,直接調用刪除方法,傳入刪除id
		mapper.deleteUser(2)
		
		
		//手動提交
		session.commit();
	} finally {
		session.close();
	}

    }
複製代碼
相關文章
相關標籤/搜索