初识MyBatis-Fitst Project

  到成都实习,要求使用MyBatis框架,没学过,写一个练练手。

  MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)

  一个简单的练手项目:

创建一个Model类:

package com.ht.model;

public class UserInfo {
	
	private int userId;
	
	private String userName;
	
	private String password;
<span style="white-space:pre">	</span>//getter setter
	@Override
	public String toString() {
		return "UserInfo [userId=" + userId + ", userName=" + userName + ", password=" + password + "]";
	}
}
创建对应Model映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
	"http://mybatis.org/dtd/mybatis-3-config.dtd" >
<!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置为:包名+sql映射文件名,
	这样就能够 保证,namespace的值是唯一的-->
<mapper namespace="com.ht.model.UserInfo">
	<resultMap type="UserInfo" id="userMap">
		<id column="user_id" property="userId"/>
		<result column="user_name" property="userName"/>
		<result column="password" property="password"/>
	</resultMap>
	<!-- 在select标签中编写查询的SQL语句,设置select标签的id属性为getUser,
			id属性值必须是唯一的,不能够重复
		 使用parameterType属性指明查询时使用的参数类型,
		 	resultType属性执行查询返回的结果集类型-->
 	<!-- <select id="get" parameterType="int" resultType="UserInfo">
 		select user_id as "userId",user_name as "userName",password from t_user where user_id = #{id}
 	</select> -->
 	<select id="get" parameterType="int" resultMap="userMap">
 		select * from t_user where user_id = #{id}
 	</select>
</mapper>
创建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>
	<properties resource="jdbc.properties"></properties>

	<typeAliases>
		<package name="com.ht.model"/>
	</typeAliases>

	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC"></transactionManager>
			<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>
		<!-- 关联Model包下的配置文件 -->
		<mapper resource="com/ht/model/user.xml"/>
	</mappers>
	
</configuration>

测试类:

package com.ht.test;

import java.io.InputStream;

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

import com.ht.model.UserInfo;

public class MyTest {
	
	public static void main(String[] args) {
		
		//mybatis的配置文件
		String resource = "mybatis-config.xml";
		
		//使用类加载mybatis的配置文件(同时加载关联的映射文件 )
		InputStream is = MyTest.class.getClassLoader().getSystemResourceAsStream(resource);
		
		//构建sqlSession的工厂
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
		
		SqlSession session = sessionFactory.openSession();
		
		String arg0 = "com.ht.model.UserInfo.get";
		
		UserInfo user  = session.selectOne(arg0, 2);
		
		System.out.println(user);
	}
	
}
运行测试类,可以从数据库中读取出ID为2的一列数据。结果显示:



初步体验MyBatis感觉更灵活,不像Hibernate,完全把SQL封装了,可以随意更改自己的SQL语句内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值