`

MyBatis3_轻松入门_1

阅读更多

MyBatis3

博文目录

  1. 什么是MyBatis
  2. 从一个查询操作,窥探MyBatis的使用

 MyBatis是一款持久层框架,原名叫ibatis;

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

MyBatis核心组件:


 
SqlSessionFactory:类似Hibernate中的SessionFactory
SqlSession:类似Hibernate中的Session
Mapper:类似之前写的DAO
Config file:配置信息


MyBatis的基本使用全程实录:
1,新建一个java project---mybatis
2,导入MyBatis的jar包
---mybatis-3.0.5.jar
---把压缩包中的optional文件夹中的jar包也添进去,说不定用的着
---连接数据库,千万不要忘记这个包:
---sql.jar(根据具体数据库导),我用的是mysql
3,配置MyBatis的配置文件,类似Hibernate连数据库的*cfg.xml
---名称随便起,我起名叫:mybatis.xml,放到src中

<?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> 
	<!-- 配置MyBatis的环境,可以配置多个环境,每个环境包括事务管理器,数据源等信息,default表示当前使用哪一个环境(开发环境) -->
	<environments default="development"> 
		<environment id="development"> 
			<transactionManager type="JDBC"></transactionManager> 
			<dataSource type="POOLED"> 
				<property name="driver" value="com.mysql.jdbc.Driver"/> 
				<property name="url" value="jdbc:mysql:///log"/> 
				<property name="username" value="root"/> 
				<property name="password" value="root"/> 
			</dataSource> 
		</environment> 

		<enviroment id="test">
			<!-- test开发环境 -->
			<transactionManager type="JDBC"></transactionManager> 
			<dataSource type="POOLED"> 
				<property name="driver" value="com.mysql.jdbc.Driver"/> 
				<property name="url" value="jdbc:mysql:///test"/> 
				<property name="username" value="root"/> 
				<property name="password" value="root"/> 
			</dataSource>
		</enviroment>
	</environments> 
</configuration> 

 

 4,构建我们的POJO,仍然使用只有id,username,password的t_user表

package com.cn.pojo;

public class User {

	private Integer id;
	private String username;
	private String password;
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}

 5,在com.cn.mapper包中创建POJO的映射文件UserMapper.xml

注:在MyBatis中,mapper配置文件相当于之前的DAO包中的UserDao的功能,只不过换了种格式表示;

<?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就是一个类,类中具有若干个方法 -->
<mapper namespace="com.cn.mapper.UserMapper"> 
 
 	<!-- 相当于DAO中的方法,id是方法名,parameterType参数类型,resultType返回类型
 	关于resultType有两种形式:
 	1,直接写完全限定名:resultType="com.cn.pojo.User"
 	2,在主配置文件配置别名:请看mybatis.xml中的typeAliases标签内配置格式
 	
 	select标签:查询
 	#{id}:表示匹配的参数名,方法中提供的参数名
 	 -->
	<select id="findById" parameterType="int" resultType="User"> 
	  select id,username,password from t_user where id = #{id} 
	</select> 
 
</mapper>

 6,在mybatis.xml中添加对User别名的配置及对UserMapper.xml的关联

注:在mybatis.xml配置文件中,标签是有顺序要求的,标签按下面的顺序排列:
properties,settings,typeAliases,typeHandlers,objectFactory,objectWrapperFactory,plugins,environments,mappers

如果不按这个配置会报错:

写道
org.xml.sax.SAXParseException: The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,plugins?,environments?,mappers?)"

 

<?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>

	<!-- 配置返回类型的别名alias -->
	<typeAliases> 
		<typeAlias type="com.cn.pojo.User" alias="User"/> 
	</typeAliases> 
 
	<!-- 配置MyBatis的环境,可以配置多个环境,每个环境包括事务管理器,数据源等信息,default表示当前使用哪一个环境(开发环境) -->
	<environments default="development"> 
		<environment id="development"> 
			<transactionManager type="JDBC"></transactionManager> 
			<dataSource type="POOLED"> 
				<property name="driver" value="com.mysql.jdbc.Driver"/> 
				<property name="url" value="jdbc:mysql:///log"/> 
				<property name="username" value="root"/> 
				<property name="password" value="root"/> 
			</dataSource> 
		</environment> 
	</environments> 
	
	<!-- 配置MyBatis的POJO映射文件,‘/’代表文件层级  -->
	<mappers> 
	  <mapper resource="com/cn/mapper/UserMapper.xml"/>  
	</mappers>
</configuration>

 

 7,编写测试类,执行测试查询

package com.cn.test;

import java.io.Reader;

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.cn.pojo.User;

public class MyBatis {

	public static void main(String[] args) throws Exception {
		//读取mybatis的配置文件
		Reader reader=Resources.getResourceAsReader("mybatis.xml");
		//获取mybatis的SqlSessionFactory对象
		SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader);
		//获取SqlSession,这里用来执行对数据库的操
		SqlSession session=factory.openSession();
		//selectOne方法第一个参数是mapper类中的方法的完全限定定义,第二个参数表示传入的参数
		User user=(User) session.selectOne("com.cn.mapper.UserMapper.findById", 1);
		System.out.println(user.getUsername());
		session.close();//关闭连接
	}
}

 

 至此我们已经会使用MyBatis了!!基本架构就是这么简单。

 

 

 

 

  • 大小: 27.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics