首先,mybatis的作用可以理解成和hibernate相似来学习。都需要主配置文件,映射文件。
1.需要jar包,
一个是mybatis核心jar包,另一个是连接数据库的驱动jar包,我用的数据库是mysql
2.mybatis主配置文件: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.entity.User" alias="userTest" />
</typeAliases>
<!--数据源配置 这块用 BD2数据库 -->
<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" />
<property name="username" value="root" />
<property name="password" value="mysql" />
</dataSource>
</environment>
</environments>
<mappers>
<!--userMapper.xml装载进来 同等于把“dao”的实现装载进来 -->
<mapper resource="com/dao/userMapper.xml" />
</mappers>
</configuration>
3.实体类:user.java,和普通实体类一样
4.实体类CURD接口:userMapper.java,和hibernate不同的是,hibernate需要实体类,实体类映射文件,dao接口,然后实现类,而mybatis只需要dao接口(一般命名XXMapper.java)然后是基于此接口的映射文件userMapper.xml
package com.dao;
import java.util.List;
import com.entity.User;
public interface UserMapper {
public User findById(int id);
public List<User> findAll();
public void save(User user);
}
----------------------------------------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.dao.UserMapper">
<!-- Id必须和接口中的方法名一样 返回一个User 就是刚才的主配置文件中等的实体类别名 如果不弄别名要连类路径一起写 麻烦-->
<select id="findById" parameterType="HashMap" resultType="userTest">
select * from user where id=#{id}
</select>
<select id="findAll" parameterType="HashMap" resultType="userTest">
select * from user;
</select>
5.测试类Test.java
package com.test;
import java.io.IOException;
import java.util.List;
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.dao.UserMapper;
import com.entity.User;
public class Test {
/**
* 获得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);
List<User> list = userMapper.findAll();
System.out.println(list.get(0).getName());
}
}
6.总结:这是一个最简单的实例,其他留待后期总结。