mybatis helloWorld

mybatis是一個半自動的輕量級框架,優點是可以將sql交給開發人員編寫,具有靈活性

配置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 id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<?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.uban.mybatis.dao.EmployeeMapper">
<!-- 
namespace:名稱空間;指定爲接口的全類名
id:唯一標識
resultType:返回值類型
#{id}:從傳遞過來的參數中取出id值

public Employee getEmpById(Integer id);
 -->
	<select id="getEmpById" resultType="com.uban.mybatis.bean.Employee">
		select*from employee where id = #{id}
	</select>
</mapper>

<property name="username" value="root" /><property name="password" value="1234" /></dataSource></environment></environments><!-- 將我們寫好的sql映射文件(EmployeeMapper.xml)一定要註冊到全局配置文件(mybatis-config.xml)中 --><mappers><mapper resource="EmployeeMapper.xml" /> </mappers></configuration>

配置mapper.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.uban.mybatis.dao.EmployeeMapper">
<!-- 
namespace:名稱空間;指定爲接口的全類名
id:唯一標識
resultType:返回值類型
#{id}:從傳遞過來的參數中取出id值

public Employee getEmpById(Integer id);
 -->
	<select id="getEmpById" resultType="com.uban.mybatis.bean.Employee">
		select*from employee where id = #{id}
	</select>
</mapper>

測試

package com.uban.mybatis.test;

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;

import com.uban.mybatis.bean.Employee;
import com.uban.mybatis.dao.EmployeeMapper;


public class Test {
	
	
	public SqlSessionFactory getSqlSessionFactory() throws IOException {
		
		String resource="mybatis-config.xml";
		InputStream inputStream=Resources.getResourceAsStream(resource);
		return new SqlSessionFactoryBuilder().build(inputStream);
		
	}
	//直接使用xml配置調用方法
	@org.junit.Test
	public void test() throws IOException {
		
		
		SqlSession opensession=getSqlSessionFactory().openSession();
		Employee employee=opensession.selectOne("com.uban.mybatis.dao.EmployeeMapper.getEmpById", 1);
		System.out.println(employee);
		
		opensession.close();
	}
	//接口綁定xml,調用接口中的方法
	@org.junit.Test
	public void test2() throws IOException {
		
		
		SqlSession opensession=getSqlSessionFactory().openSession();
		
		EmployeeMapper mapper=opensession.getMapper(EmployeeMapper.class);
		
		Employee employee=mapper.getEmpById(1);
		
		System.out.println(employee);
		
		opensession.close();
	}
	
}

接口層使用註解寫sql

public interface EmployeeMapperAnnotation {
	
	@Select("select*from employee where id = #{id}")
	public Employee getEmpById(Integer id);
}


@org.junit.Test
	public void test3() throws IOException {
		
		
		SqlSession opensession=getSqlSessionFactory().openSession();
		
		EmployeeMapperAnnotation mapper=opensession.getMapper(EmployeeMapperAnnotation.class);
		
		Employee employee=mapper.getEmpById(1);
		System.out.println(employee);
		
		opensession.close();
	}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章