1. 程式人生 > >mybatis:一個最簡單的例項

mybatis:一個最簡單的例項

什麼是 mybatis ?

MyBatis 是一款優秀的持久層框架,它支援定製化 SQL、儲存過程以及高階對映。MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和對映原生資訊,將介面和 Java 的 POJOs(Plain Old Java Objects,普通的 Java物件)對映成資料庫中的記錄。

1、建立 mybatis 專案

2、引入 mybatis 相應 jar

3、在 MySQL 中建立一張 student 表

4、建立 Student.java 

package com.java.mybatis.entity;

public class Student {

	private int id;
	private String username;
	private int age;

	public int getId() {
		return id;
	}

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

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Student() {
		super();
	}

	public Student(String username, int age) {
		super();
		this.username = username;
		this.age = age;
	}

	@Override
	public String toString() {
		return "Student [id=" + id + ", username=" + username + ", age=" + age
				+ "]";
	}

}

5、建立 StudentDao.java
package com.java.mybatis.mappers;

import com.java.mybatis.entity.Student;

public interface StudentDao {

	int add(Student student);
}

6、對應的 xml 配置檔案
<?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.java.mybatis.mappers.StudentDao">

	<insert id="add" parameterType="Student"  >
		insert into t_student values(null,#{username},#{age})
	</insert>

</mapper> 

7、建立 mybatis 的會話工廠
package com.java.mybatis.factory;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class SqlSessionFactoryUtil {

	private static SqlSessionFactory sqlSessionFactory;
	
	private static SqlSessionFactory getInstance(){
		
		if (sqlSessionFactory == null) {
			try {
				InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
				sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
				return sqlSessionFactory;
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return sqlSessionFactory;
	}
	
	public static SqlSession getSession(){
		return getInstance().openSession();
	}
}

8、建立 jdbc.properties 檔案
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_mybatis
jdbc.username=root
jdbc.password=root

9、mybatis 的配置檔案
<?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>
	<properties resource="jdbc.properties"/>
	<typeAliases>
		<typeAlias alias="Student" type="com.java.mybatis.entity.Student"/>
	</typeAliases>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="${jdbc.driverClassName}" />
				<property name="url" value="${jdbc.url}" />
				<property name="username" value="${jdbc.username}" />
				<property name="password" value="${jdbc.password}" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="com/java/mybatis/mappers/StudentMapper.xml" />
	</mappers>
</configuration>

10、測試類
package com.java.mybatis.test;

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

import com.java.mybatis.entity.Student;
import com.java.mybatis.factory.SqlSessionFactoryUtil;
import com.java.mybatis.mappers.StudentDao;

public class StudentTest {

	@Test
	public void testAddStudent(){
		SqlSession session = SqlSessionFactoryUtil.getSession();
		StudentDao studentDao = session.getMapper(StudentDao.class);
		Student student = new Student( "jack", 21);
		int result = studentDao.add(student);
		session.commit();
		if (result > 0) {
			System.out.println("success");
		}
		
	}
}

到此結束啦~~