另一个ORM——MyBatis(一)
来源:互联网 发布:php 生成pdf文件 编辑:程序博客网 时间:2024/06/06 06:43
在接下来的项目中要使用mybatis,赶紧学习了一下,趁热打铁,小结一下。
一、什么是mybatis
mabatis是一个持久层的框架,是Apache下的一个顶级项目。它让开发者把主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要开发者自己编写)满足需要的sql语句。
mybatis可以将向preparedStatement中的输入参数自动进行输入映射,将查询的结果集灵活映射成java对象(输出映射)。
二、为什么要使用mybatis
自我感觉是mybatis相对于其他orm框架例如hibernate要更加灵活,相当于半自动化映射,sql优化比较具有优势,在多表关联查询也是比hibernate要易学易懂,更加容易操作。mybatis由于sql可配置,在需求相对多变的项目中,例如互联网项目,就比hibernate要具有优势。
三、如何使用mybatis(配置最简单一个demo)
1、首先,引入jar:
2、创建mybatis的配置文件:SqlMapConfig.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> <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/test?characterEncoding=UTF-8" /><property name="username" value="root" /><property name="password" value="root" /></dataSource></environment></environments><!-- 加载映射文件 --><mappers><mapper resource="sqlmap/User.xml" /></mappers></configuration>
3、创建映射文件User.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"><mapper namespace="test"><select id="findUserById" parameterType="int" resultType="com.tgb.mybatis.po.User">SELECT * from user where userid=#{id}</select></mapper>4、创建po类User.java:
package com.tgb.mybatis.po;public class User {private String userid;private String userName;private String password;private String address;private String email;private String tel;public String getUserid() {return userid;}public void setUserid(String userid) {this.userid = userid;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}}数据库表:
po类用来映射查询的结果。
5、创建测试类进行测试:
package com.tgb.mybatis.first;import java.io.IOException;import java.io.InputStream;import java.sql.SQLException;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 org.junit.Test;import com.tgb.mybatis.po.User;public class MybatisFirst {private SqlSession getSqlSession() throws IOException {//mybatis配置文件String resource="SqlMapConfig.xml"; InputStream inputStream= Resources.getResourceAsStream(resource);//创建会话工厂SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);//得到sqlSessionreturn sqlSessionFactory.openSession();}//根据id查询数据@Testpublic void findUserByid() throws IOException {SqlSession sqlSession=null;try {sqlSession=getSqlSession();//通过sqlsession操作数据库//第一个参数:映射文件statement的id,=namespace.statement的id//第二个参数,指定和映射文件所匹配的parameterType类型的参数User user= sqlSession.selectOne("test.findUserById", 1);System.out.println(user);} catch (Exception e) {e.printStackTrace();}finally{//释放资源sqlSession.close();}}}
6、测试结果,控制台:
在下一篇博客中,将详细介绍mybatis框架,和实际开发如何使用。
0 0
- 另一个ORM——MyBatis(一)
- 另一个ORM——MyBatis(二)
- 另一个ORM——MyBatis(三)
- 另一个ORM——MyBatis(四)
- 【Hibernate学习】 ——ORM(一)
- Hibernate核心思想—ORM机制(一)
- Hibernate核心思想—ORM机制(一)
- 学习ORM框架—hibernate(一):初识hibernate
- 【Mybatis专题】(1)ORM
- GreenDAO—Android ORM框架(一)
- GreenDAO—Android ORM框架(一)
- 关于ORM(一)
- Django-ORM(一)
- 打造android ORM框架opendroid(一)——ORM框架的使用
- 打造android ORM框架opendroid(一)——ORM框架的使用
- 打造android ORM框架opendroid(一)——ORM框架的使用
- ORM 学习笔记(一)
- .NET ORM框架(一)
- 防止表单重复提交的几种方法
- Android TextView加载html图片详解
- nodejs 压缩文件 archiver
- AtomNotes
- [汇编语言学习笔记][第十五章 外中断]
- 另一个ORM——MyBatis(一)
- Android 判断当前点击位置是否在圆的内部
- 啊哈!算法—队列
- 【扩展欧几里得算法】(瞎几把乱搞式)
- 如何将pdf文件转换成word格式
- [BZOJ1576][Usaco2009 Jan]安全路径Travel(堆优化dijkstra+并查集)
- iOS开发证书显示“此证书的签发者无效”解决方法
- 是时候 UWP 了
- 如何打出j间隔符号‘·’