以下例子纯属个人新手学习练手的,各位大神看了,莫吐槽。有不对的地方请多多指教。

1.建一个项目:

2.导入jar

3.MySql数据库建库建表:

 

4.项目里面创建配置文件,包:

      4.1mybatis-config.xml配置文件

      4.2创建包   com.pxf.entity   com.pxf.dao   com.pxf.mapper   com.pxf.test

 

5.mybatis-config.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 default="development">
	<!-- 指定使用哪个environment -->
		<environment id="development">
		<!-- 事物管理器 -->
			<transactionManager type="JDBC" />
			<!-- 连接池 POOLED是mybatis提交的连接池 -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql:///1708_mybatis" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
	<!-- Mapper文件 -->
	<mappers>
		<mapper resource="com/pxf/mapper/IUserDao.xml" />
	</mappers>
</configuration>

  

6.在包com.pxf.entity创建实体类User:

package com.pxf.entity;

public class User {
	private Integer id;

	private String name;

	private String password;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public User() {
		super();
	}

	public User(Integer id, String name, String password) {
		super();
		this.id = id;
		this.name = name;
		this.password = password;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
	}

}

  

7.在包com.pxf.dao创建接口IUserDao:

package com.pxf.dao;

import java.util.List;

import com.pxf.entity.User;

public interface IUserDao {
	public User getUserById(Integer id);

	public void add(User user);

	public void update(User user);

	public void delete(Integer id);
	
	public List<User> getUserList();
}

8.在包com.pxf.mapper创建接口的映射文件:

<?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">
<!--namespace指接口的全类名 -->
<mapper namespace="com.pxf.dao.IUserDao">

	<!-- 
		id:方法名称 
		resultType:返回类型 
	-->
	<select id="getUserById" resultType="com.pxf.entity.User">
		SELECT
			*
		FROM
			t_user
		WHERE
			id = #{id}
	</select>
	
	<insert id="add">
		INSERT INTO t_user (NAME, PASSWORD)
		VALUES
		(#{name},#{password}
		)

	</insert>
	
	<update id="update">
	    UPDATE t_user
		SET NAME = #{name},
		PASSWORD = #{password}
		WHERE
			id = #{id}
	</update>
	
	<!-- 
		parameterType 
		方法返回集合的时候resultType要配置集合中的类型
	 -->
	<delete id="delete" parameterType="java.lang.Integer">
	   DELETE
		FROM
			t_user
		WHERE
			id = #{id}
	</delete>
	
	<select id="getUserList" resultType="com.pxf.entity.User">
		SELECT
			*
		FROM
			t_user
	</select>
</mapper>

9测试类:

  

package com.pxf.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.ListIterator;

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 com.pxf.dao.IUserDao;
import com.pxf.entity.User;

public class UserDaoTest {

	@Test
	public void testGetUserById() {
		String resource = "mybatis-config.xml";
		try {
			InputStream stream = Resources.getResourceAsStream(resource);
			SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
			SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(stream);
			SqlSession sqlSession = sqlSessionFactory.openSession();
			IUserDao userDao = sqlSession.getMapper(IUserDao.class);
			User user = userDao.getUserById(2);
			System.out.println(user);

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testAddUser() {
		String resource = "mybatis-config.xml";
		InputStream stream = null;
		try {
			stream = Resources.getResourceAsStream(resource);
			SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
			SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(stream);
			SqlSession sqlSession = sqlSessionFactory.openSession();
			IUserDao userDao = sqlSession.getMapper(IUserDao.class);
			User user = new User();
			user.setName("范冰冰");
			user.setPassword("123");
			userDao.add(user);
			sqlSession.commit();
			sqlSession.close();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (stream != null) {
					stream.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	@Test
	public void testUpdateUser() {
		String resource = "mybatis-config.xml";
		InputStream inputStream = null;
		try {
			inputStream = Resources.getResourceAsStream(resource);
			SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
			SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
			SqlSession sqlSession = sqlSessionFactory.openSession();
			IUserDao userDao = sqlSession.getMapper(IUserDao.class);
			User user = userDao.getUserById(3);
			user.setName("莉莉");
			user.setPassword("1234");
			userDao.update(user);
			sqlSession.commit();
			sqlSession.close();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (inputStream != null) {
				try {
					inputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

	@Test
	public void testDeleteById() {
		String resource = "mybatis-config.xml";
		InputStream inputStream = null;
		try {
			inputStream = Resources.getResourceAsStream(resource);
			SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
			SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
			SqlSession sqlSession = sqlSessionFactory.openSession();
			IUserDao userDao = sqlSession.getMapper(IUserDao.class);
			userDao.delete(5);
			sqlSession.commit();
			sqlSession.close();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (inputStream != null) {
				try {
					inputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

	}

	@Test
	public void testGetUserList() {
		String resource = "mybatis-config.xml";
		InputStream inputStream = null;
		try {
			inputStream = Resources.getResourceAsStream(resource);
			SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
			SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
			SqlSession openSession = sqlSessionFactory.openSession();
			IUserDao userDao = openSession.getMapper(IUserDao.class);
			List<User> userList = userDao.getUserList();
			for (User user : userList) {
				System.out.println(user);
			}
			openSession.commit();
			openSession.close();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (inputStream != null) {
				try {
					inputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}