MyBatis3框架学习(1)----mybaits初识和第一个helloworld
2017-12-14 22:57
776 查看
1、回顾一下Hibernate
在学习hibernate的时候,我们用一个持久化类与数据库相互对应,从而实现了对数据库的“黑箱操作”,也就是不用知道具体对数据库的操作细节,就可以达到保存,查询等目的,由于Hibernate的全自动与全映射性,我们不能去自己定制sql,sql是有框架控制的。在项目的最后,一般都是要做到sql的优化,sql语句的定制,因为如此,我们不得不去学习HQL,无疑是有些麻烦的,类似于下图所示:2、MyBatis较Hibernate的优点
一个轻量化的半自动框架,在与Hibernate的比较中,mybatis将sql与java编码分开,一个只专注于数据,一个只专注于业务,开发人员可以去优化sql。如下图:3、下载地址
MyBatis官方文档:http://www.mybatis.org/mybatis-3/zh/index.htmlMyBatis下载地址:https://github.com/mybatis/mybatis-3
在提交的版本记录里Releases:可以下载最新的版本,如下图:
4、解压
我这里下载的是3.4.1版本的,mybatis-3.4.1.jar就是我们在开发mybatis时需要用的jar包,下面的pdf是该版本的官方文档。lib文件夹里是一些其他的功能的文件夹。
5、mybatis中的hello_world
看官方手册中的步骤我们就可以去进行mybatis的开发了,在这里我是跟着尚硅谷_MyBatis学习的。准备:在进行开发之前,先创建好我们的数据表:
CREATE TABLE tbl_stu( id INT(10) PRIMARY KEY AUTO_INCREMENT, last_name VARCHAR(255), gender CHAR(1), email CHAR(100) )
开发步骤:
1、先导入我们必须的jar包,在这里第一个helloworld程序,新建一个java项目,我们需要导入mysql的连接jar包和mybatis-3.4.1的jar包
2、创建数据表对应的实体类student:
package com.bean; public class Student { private int id; private String lastname; private String gender; private String email; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String toString() { return "Student [id=" + id + ", lastname=" + lastname + ", gender=" + gender + ", email=" + email + "]"; } }
3、新建一个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是驱动,数据库url,用户名,密码--> <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="123456"/> </dataSource> </environment> </environments> <!--mappers标签的内容是sql映射文件--> <mappers> <!-- sql映射文件注册到全局配置文件 --> <mapper resource="studentmapping.xml"/> </mappers> </configuration>
4、根据全局配置xml文件来创建SqlSessionFactory对象,如下:
String resource = "mybatis_conf.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
5、创建sql映射文件:
<?xml c948 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="com.bean.Student.mapper"> <!-- namespace:名称空间,随便取一个名字 id:唯一标识标签 #{id}:从传递过来的参数中取出id --> <select id="selectStudent" resultType="com.bean.Student"> <!--sql语句,last_name lastname是给数据表中的last_name取别名lastname--> select id,last_name lastname,email,gender from tbl_stu where id = #{id} </select> </mapper>
6、根据之前创建的SqlSessionFactory对象来创建sqlsession,
//获取sqlsession实例 SqlSession sqlsession = sqlSessionFactory.openSession(); //第一个参数是sql语句的唯一标识 //第二个参数是执行sql要用的参数 try{ //selectone就是查询一个对象,第一个参数就是刚建好的sql映射文件的id,第二个参数是传进来的id参数 Student student = sqlsession.selectOne("com.bean.Student.mapper.selectStudent", 1); System.out.println(student); }finally{ sqlsession.close(); }
7、我们把之前的4,6步的内容,新建一个junit单元测试类,然后进行测试:
package com.test;
import static org.junit.Assert.*;
import java.io.IOException;
import java.io.InputStream;
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.bean.Student;
public class Mybatistest {
/*
* 1、根据xml文件(全局配置文件)来创建sessionfactory对象
* 2、
*/
@Test
public void test() throws IOException {
String resource = "mybatis_conf.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//获取sqlsession实例
SqlSession sqlsession = sqlSessionFactory.openSession();
//第一个参数是sql语句的唯一标识
//第二个参数是执行sql要用的参数
try{
Student student = sqlsession.selectOne("com.bean.Student.mapper.selectStudent", 1);
System.out.println(student);
}finally{
sqlsession.close();
}
}
}
8、结果:
相关文章推荐
- springboot学习: 初识Spring Boot框架,搭建第一个项目!
- springboot学习: 初识Spring Boot框架,搭建第一个项目!
- Spring + Spring MVC + Mybatis 框架整合学习
- Mybatis框架学习(三)—高级映射,延迟加载
- SSM(Spring+SpringMVC+MyBatis)框架学习心路历程【二】
- Maven学习笔记(五)-Maven整合SSM(spring+springMVC+Mybatis)框架
- SpringMVC框架学习(1)——HelloWorld
- 学习SSM框架笔记五:利用五大组件采取配置文件和SpringMVC模式写HelloWorld
- 代码 框架学习系列 mybatis 第八篇 mybatis开发dao的方式
- 框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射
- Java数据持久层框架 MyBatis之API学习一(简介)
- JAVA学习笔记20——MyBatis框架第三章
- java 持久框架mybatis的初步学习
- 框架学习系列 mybatis 第十九篇 一对多映射
- [maven学习笔记]第一节,认识maven,搭建maven开发环境,写第一个HelloWorld
- Mybatis学习笔记-初识
- OC学习篇之---第一个程序HelloWorld
- SpringMVC框架学习笔记(1)——HelloWorld
- myBatis学习--myBatis框架原理理解
- Spring Boot 框架 初识 学习一