1.首先引入所需jar包(这些jar包都是从Mybatis网站上下载的,我在这里将其全部导入进来。在后期用Maven开发项目时,就不需要向这样导入jar包了)
项目结构:
编写持久层我个人一般都是从 实体类-->映射关系-->通过实体类操作数据库 。
1.实体类:(数据表的创建略)
public class User {
private int id;
private String name;
private String password;
//省略对应set()、get()方法
}
2.映射文件:(该文件一般与mapper接口放在一起)
<?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">
<!-- 此处的命名空间是遵循一定规则的(命名空间值为mapper接口的全限定名),适用于Mybatis代理的方式开发 -->
<mapper namespace="com.lin.mapper.UserMapper">
<!-- 在映射文件中配置sql语句 -->
<!-- 通过select执行数据库查询 -->
<select id="findUserById" parameterType="int" resultType="user">
select * from user
where id=#{id}
</select>
</mapper>
3.MyBatis的全局配置信息:(该文件在Mybatis与spring整合时不再使用,在此故只做简单了解即可)
<?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> <typeAlias type="com.lin.entity.User" alias="user"/> </typeAliases>
<!-- 定义数据库信息,默认使用development数据库构建环境 -->
<environments default="development">
<environment id="development">
<!-- 采用JDBC事务管理 -->
<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="546784"/>
</dataSource>
</environment>
</environments>
<!-- 定义映射器,加载映射文件 -->
<mappers>
<mapper resource="com/lin/mapper/UserMapper.xml"/>
</mappers>
</configuration>
4.mapper接口:
/**创建Mapper接口(相当于Dao接口),按照一定的规则编写方法,就可以使用MyBatis代理方式操作对象 * */
public interface UserMapper {
//根据用户id查询用户信息
public User findUserById(int id) throws Exception;
}
4.测试类:
public class MybatisTest {
//根据用户id查询用户信息
@Test
public void findUserById() throws Exception {
//ͨ定义SqlSession
SqlSession sqlSession = null;
try {
//读取MyBatis的全局配置文件
String resource = "mybatis/mybatis-config.xml";
//读取MyBatis的全局配置文件
InputStream inputStream = Resources.getResourceAsStream(resource);
//根据流对象获取会话工厂sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//创建会话sqlSession
sqlSession = sqlSessionFactory.openSession();
//通过sqlSession执行对数据库的相关操作
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.findUserById(1);
System.out.println(user.getName());
} catch (IOException e) {
e.printStackTrace();
}finally {
//关闭会话
sqlSession.close();
}
}
}
总结:一个MyBatis的入门程序还是相对简单的,但是要注意的就是如果想使用mapper代理的方式,还是要多注意细节,像是命名空间,还有映射的参数,这些都需要注意。。最近是在看 视频教程,今天看到mybatis中最关键的 输入映射 和 输出映射 ,还有后续的缓存什么的好像都是相对复杂点的,后面再慢慢学习总结。。