MyBatis框架搭建及增删改查操作

一.搭建好myBatis的环境

  1.引入jar包

    (1).mybatis-3.2.7jar核心jar

    (2).mysql核心jar

    (3).junit-4.9.jar

  2.创建mybatis全局配置文件SqlMapConfig.xm(名字自定义)    

    配置了数据源、事务等mybatis运行环境,配置映射文件(配置sql语句)

  3.mapper代理开发映射文件User.xml

  4.目录结构如下

    MyBatis框架搭建及增删改查操作_第1张图片


二.增删改查基本操作

  1.配置myBatis全局配置文件




	
	
		
		
			
		
			
				
				
				
				
			
		
	
	
	
			
	

	


  

  2.配置User.xml映射,将sql语句封装到mappedStatement对象中,进行增删改查






	
	
	
	
	

	
	
	
	

	
	
		
			SELECT
			LAST_INSERT_ID()
		
		insert into USER (id,username,birthday,sex,address)
		values(#{id},#{username},#{birthday},#{sex},#{address})
	

	
	
		delete from USER WHERE id
		= #{id}
	
	
	
		update USER set username =
		#{username},birthday=#{birthday},sex=#{sex},address=#{address} where
		id = #{id}
	


  3.根据Mybatis框架结构,在java代码中创建sqlSession 执行程序。

package cn.itcast.mybatis.first;

import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
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 cn.itcast.mybatis.po.User;

/**
 * 入门程序 2016年9月21日14:46:51
 * 
 * @author fxq
 * 
 */
public class MybatisFirst {

	//获得SqlSession
	public SqlSession getSqlSession() throws IOException {
		// mybastis配置文件
		String resource = "SqlMapConfig.xml";
		// 得到配置文件流
		InputStream impuStream = Resources.getResourceAsStream(resource);
		// 创建会话工厂
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
				.build(impuStream);
		// 通过工厂得到sqlSession
		SqlSession sqlSession = sqlSessionFactory.openSession();
		return sqlSession;
	}

	// 根据id查询用户信息,得到一条记录结果
	@Test
	public void findUserByIdTest() throws IOException {
		//获得SqlSession
		SqlSession sqlSession=getSqlSession();
		// 通过sqlSession操作数据库
		// 第一个参数:映射文件中的statement的id,等于=namespace+"."+statement的id;
		// 第二个参数:指定和映射文件所匹配的parameterType类型的参数
		// sqlSession.selectOne结果是与映射文件中的所匹配的resultType类型的对象;
		User user = sqlSession.selectOne("test.findUserById", 1);
		System.out.println(user);
		// 释放资源
		sqlSession.close();
	}

	/**
	 * 模糊查询
	 * 
	 * @throws IOException
	 */
	@Test
	public void findUserbyNameTest() throws IOException {
		
		//获得SqlSession
		SqlSession sqlSession=getSqlSession();
		// List中的user和映射文件中resultType所指定的类型一直
		List userList = sqlSession
				.selectList("test.findUserByName", "小明");
		System.out.println(userList);
		sqlSession.close();

	}

	/**
	 * 插入数据
	 * 
	 * @throws IOException
	 */
	@Test
	public void insertUserTest() throws IOException {
		//获得SqlSession
		SqlSession sqlSession=getSqlSession();
		// 插入用户对象
		// 添加用户信息
		User user = new User();
		user.setUsername("张小明");
		user.setBirthday(new Date());
		user.setSex("1");
		user.setAddress("河南郑州");
		sqlSession.insert("test.insertUser", user);

		// 提交
		sqlSession.commit();
		System.out.println(user.getId());
		sqlSession.close();
	}

	/**
	 * 删除用户
	 * 
	 * @throws IOException
	 */
	@Test
	public void deleteUserTest() throws IOException {
		//获得SqlSession
		SqlSession sqlSession=getSqlSession();
		sqlSession.delete("test.deleteUser", 31);
		// 提交
		sqlSession.commit();
		sqlSession.close();
	}

	/**
	 * 更新用户
	 * 
	 * @throws IOException
	 */
	@Test
	public void updateUserTest() throws IOException {
		//获得SqlSession
		SqlSession sqlSession=getSqlSession();
		User user = new User();
		user.setId(28);
		user.setBirthday(new Date());
		user.setUsername("范晓权");
		user.setAddress("河北省鸡泽县");
		user.setSex("2");

		sqlSession.update("test.updateUser", user);
		sqlSession.commit();
		sqlSession.close();
	}
}


三.总结:

  MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。



你可能感兴趣的:(MyBatis框架搭建及增删改查操作)