您的位置:首页 > 其它

初识MyBatis-Fitst Project

2015-12-31 23:00 501 查看
  到成都实习,要求使用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语句内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: