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();
	}

    }
复制代码
相关文章
相关标签/搜索