hibernate与mybatis异同与比较涵盖网上各个版本清晰明了.docx
- 文档编号:2422650
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:10
- 大小:18.76KB
hibernate与mybatis异同与比较涵盖网上各个版本清晰明了.docx
《hibernate与mybatis异同与比较涵盖网上各个版本清晰明了.docx》由会员分享,可在线阅读,更多相关《hibernate与mybatis异同与比较涵盖网上各个版本清晰明了.docx(10页珍藏版)》请在冰豆网上搜索。
hibernate与mybatis异同与比较涵盖网上各个版本清晰明了
hibernate与mybatis异同与比较(涵盖网上各个版本,清晰明了)
一、序言
最近一直用mybatis做开发,以前用过hibernate,能感受到一些它们在使用上的区别,不过总想抽出时间来好好比较比较弄弄清楚它们各自的优劣,以便更好进行选择和深入的了解。
网上也看了很多资料,结合自己的使用体会,粗率地概括和总结了一下,以供大家参考。
二、具体运用上的不同
1、所需的jar包
Mybatis:
只需要3个(mybatis-3.1.1.jar,mybatis-3.1.1-javadoc.jar,mybatis-3.1.1-sources.jar)
Hibernate:
根据功能不同大概需要十几个
2、映射关系
Mybatis:
实体类与sql之间的映射
Hibernate:
实体类与数据库之间隐射
3、配置文件
Student:
属性:
intid,Stringname,Stringpassword;
方法配置:
getStudentByName;//通过name查找
getStudentById//通过id查找
insertStudent//添加Student
updateStudent//更改Student
deleteStudent//通过id删除Student
deleteStudentById//通过name伤处Student
selectStudentmohu//通过name模糊查询
Mybatis:
总配置文件:
mybatisConfig.xml
<configuration>
<typeAliases>
<typeAliasalias="Student"type="com.niit.model.Student"/>
</typeAliases>
<environmentsdefault="development">
<environmentid="development">
<transactionManagertype="JDBC"/>
<dataSourcetype="POOLED">
<propertyname="driver"value="com.MySQL.jdbc.Driver"/>
<propertyname="url"value="jdbc:
mysql:
//127.0.0.1:
3306/mybatis"/>
<propertyname="username"value="root"/>
<propertyname="password"value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapperresource="com/niit/model/StudentMap.xml"/>
</mappers>
</configuration>
l实体类映射文件:
StudentMap.xml(一个或多个)
<mappernamespace="com.niit.model.StudentMap">
<selectid="getStudentByName"resultType="Student"
parameterType="string">
select*fromstudentwherename=#{name}
</select>
<selectid="getStudentById"resultType="Student"parameterType="int">
select*fromstudentwhereid=#{id}
</select>
<insertid="insertStudent"parameterType="Student">
insertintostudent(id,name,password)value(#{id},#{name},#{password})
</insert>
<updateid="updateStudent"parameterType="Student">
updatestudentsetname=#{name},password=#{password}whereid=#{id}
</update>
<deleteid="deleteStudent"parameterType="String">
deletefromstudentwherename=#{name}
</delete>
<deleteid="deleteStudentById"parameterType="int">
deletefromstudentwhereid=#{id}
</delete>
<selectid="selectStudentmohu"parameterType="String"
resultType="Student">
select*fromstudentwherenamelike"%"#{name}"%"
</select>
</mapper>
Hibernate:
l总配置文件:
hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
<propertyname="connection.username">root</property>
<propertyname="connection.url">jdbc:
mysql:
//127.0.0.1:
3306/sample</property>
<propertyname="dialect">org.hibernate.dialect.MySQLDialect</property>
<propertyname="connection.password">123</property>
<propertyname="connection.driver_class">com.mysql.jdbc.Driver</property>
<propertyname="hibernate.show_sql">True</property>
<mappingresource="com/niit/model/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
l实体类配置文件:
Student.hbm.xml(一个或多个)
<hibernate-mappingpackage="com.niit.model.">
<classname="Student"table="student">
<idname="id"column="id"type="int"><generatorclass="identity"/></id>
<propertyname="name"type="java.lang.String">
<columnname="name"length="20"not-null="true"/>
</property>
<propertyname="password"type="java.lang.String">
<columnname="password"length="20"not-null="true"/>
</property>
</class>
</hibernate-mapping>
4、基本用法(增删改查模糊)
Mybatis:
@Test
lselectbyname
publicvoidtest()throwsIOException
{
Stringresource="mybatisConfig.xml";
Readerreader=Resources.getResourceAsReader(resource);
SqlSessionFactorysessionFactory=newSqlSessionFactoryBuilder().build(reader);
SqlSessionsession=sessionFactory.openSession();
session.selectOne("com.niit.model.StudentMap.getStudentByName","b");
}
lselectbyid
session.selectOne("com.niit.model.StudentMap.getStudentById",2);
linsert
session.insert("com.niit.model.StudentMap.insertStudent",student);
l//update
session.insert("com.niit.model.StudentMap.updateStudent",student);
l//deletebyname
session.insert("com.niit.model.StudentMap.deleteStudent","wl");
l//deletebyid
session.insert("com.niit.model.StudentMap.deleteStudentById",3);
l//selectmuhu(模糊查询)
session.selectList("com.niit.model.StudentMap.selectStudentmohu","b");
Hibernate:
l//selectbyid
Configurationcfg=newConfiguration().configure();
SessionFactorysf=cfg.buildSessionFactory();
Sessionsession=sf.openSession();
Session.get(Student.class,id);l//selectbyname
session.createQuery("fromStudentasswheres.name=’a’").list();
l//insert
session.save(St
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- hibernate mybatis 异同 比较 涵盖 网上 各个 版本 清晰 明了
![提示](https://static.bdocx.com/images/bang_tan.gif)