您的位置:首页 > 其它

MyBatis学习:基础环境搭建与入门

2014-07-28 01:27 821 查看
所需要jar包:mybatis-3.x.x.jar 、如果要和其它框架整合,需要其它的jar包


mybatis的j资料及jar下载地址:http://download.csdn.net/detail/itjavawfc/7685119

1.看看项目目录:





2.按照步骤:

1)加jar包

2)创建数据源(configuration.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>
<typeAliases>
<!--给实体类起一个别名 user -->
<typeAlias type="com.forum.po.User" alias="User" />
</typeAliases>
<!--数据源配置  这块用 BD2数据库 -->
<environments default="development">
<environment id="development">
<transactionManager type="jdbc" />
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl
" />
<property name="username" value="scott" />  <!-- DB2ADMIN -->
<property name="password" value="tiger" />   <!-- admin -->
</dataSource>
</environment>
</environments>
<mappers>
<!--userMapper.xml装载进来  同等于把“dao”的实现装载进来 -->
<mapper resource="myBatis/userMapper.xml" />
</mappers>
</configuration>

3)创建实体USER

package com.forum.po;

import org.apache.ibatis.ognl.IntHashMap.Entry;

/**
* 用户类
*
* @author 方晨
*
*/
public class User extends Entry {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public User() {
}

}

4)创建DAO接口,可以说是Map片儿接口,UserMapper接口

package com.forum.dao;

import com.forum.po.User;

public interface UserMapper {
public User findById(String Id);
}

5)创建DAO实现,不同于Hibernate,此处的DAO实现都是通过一个xml文件实现.也就是UserMapper.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">
<!--这块等于dao接口的实现  namespace必须和接口的类路径一样-->
<mapper namespace="com.forum.dao.UserMapper">
<!-- findById必须和接口中的方法名一样  返回一个User  就是刚才的别名  如果不弄别名要连类路径一起写 麻烦-->
<select id="findById" parameterType="HashMap" resultType="User">
<!--     select  * from butone.student where id=#{id}    -->

select * from TT where id=#{id}
</select>
</mapper>

6)测试类:MyBatisTest.java

package com.forum.test;

import java.io.IOException;

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.forum.dao.UserMapper;
import com.forum.po.User;

/**
* myBatis数据库连接测试

*/
public class MyBatisTest {
/**
* 获得MyBatis SqlSessionFactory
* SqlSessionFactory负责创建SqlSession,一旦创建成功,就可以用SqlSession实例来执行映射语句,commit,rollback,close等方法。
* @return
*/
private static SqlSessionFactory getSessionFactory() {
SqlSessionFactory sessionFactory = null;
String resource = "configuration.xml";
try {
sessionFactory = new SqlSessionFactoryBuilder().build(Resources
.getResourceAsReader(resource));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sessionFactory;
}

public static void main(String[] args) {
SqlSession sqlSession = getSessionFactory().openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.findById("1");
System.out.println(user.getName());
System.out.println(user.getAge());

}

}


得到结果:



此处自己用的是Oracle,在此之前应该在数据库中创建任意表,当然必须含有id,name,age参数,要和User对应。

我的建表语句:

CREATE TABLE TT(
ID  INTEGER,
NAME VARCHAR2(20),
age  VARCHAR2(20)
);

INSERT INTO TT VALUES(1,'汪方晨','18');

SELECT * FROM TT;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息