MyBatis原理简介和小试牛刀
在我看来mybatis的原理与hibernate在某些方面是一致的,先回顾一下Hibernate原理(原理主要上是要掌握并理解下列六个对象: Hibernate中重要的六个对象: Configuration:读取配置文件(主要指hibernate-config.xml)和启动hibernate SessionFactory:负责初始化Hibernate Session接口:负责持久化对象的CRUD的操作 Transaction:负责事务(opensession或getCurrentSession) 补充说明: opensession和getCurrentSession的主要区别是:openSession 每一次获得的是一个全新的session对象,而getCurrentSession获得的是与当前线程绑定的session对象 Query接口和Criteria接口:负责执行各种数据库查询 MyBatis和Hibernate的共同点都是通过SqlSessionFactory创建Session,以此达到Session操作数据库的目的。 ? MyBatis小试牛刀步骤: 一、导包 导包:
asm-3.3.1.jar
cglib-2.2.2.jar
commons-logging-1.1.1.jar
javassist-3.17.1-GA.jar
log4j-1.2.17.jar
log4j-api-2.0-rc1.jar
log4j-core-2.0-rc1.jar
mybatis-3.2.7.jar
mysql-connector-java-5.1.7-bin.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar
其中
mybatis-3.2.7.jar
mysql-connector-java-5.1.7-bin.jar
这两个是必须的缺一不可
二、写主配置文件: <?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
?三、建立实体类 package com.blog.entity; public class User { private Integer Id; String userName; String password; public Integer getId() { return Id; } void setId(Integer id) { Id = id; } String getUserName() { userName; } setUserName(String userName) { this.userName = String getPassword() { password; } setPassword(String password) { this.password = password; } } 四、写Dao com.blog.dao; import java.io.FileNotFoundException; java.io.FileReader; org.apache.ibatis.session.SqlSession; org.apache.ibatis.session.SqlSessionFactory; org.apache.ibatis.session.SqlSessionFactoryBuilder; BaseDao { //BaseDao的目的在于实现类通过继承该类而达到操作数据库的目的 static SqlSessionFactory getSSF(){ String resource="D:eclipse_mavenworkspaceMyBatissrcmybatis.conf.xml"; FileReader fr; try { fr = new FileReader(resource); SqlSessionFactory ssf= SqlSessionFactoryBuilder().build(fr); ssf; } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } //查的方面可以通过BaseDao调用它,增删改对数据库中的数据库有改动则不能使用它, 五、写映射文件 <?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 namespace="Mapper">
//namespace:命名空间
?六、写接口 package com.blog.dao;
import com.blog.entity.User;
public interface UserDao {
//查询
User selectById(Integer Id);
}
?七、写接口的实现类 package com.blog.dao.impl;
import com.blog.dao.BaseDao;
import com.blog.dao.UserDao;
import com.blog.entity.User;
public class UserDaoImpl extends BaseDao implements UserDao {
@Override
public User selectById(Integer Id) {
/**
?八、运行实现类中的main方法(测试) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |