博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis学习笔记(一)入门例子
阅读量:3532 次
发布时间:2019-05-20

本文共 2932 字,大约阅读时间需要 9 分钟。

开始学习另一个ORM 框架:Mybatis,与Hibernate类似,感觉比Hibernate轻量,比较小.

这节要完成入门例子.

1.建表mybatis_student

id name age

2.实体类

package com.skymr.mybatis.model;public class Student {	private int id;		private String name;		private int age;		/**	 * 必须要有无参构造器,有参构造器可有可无(至少我测试时是这样)	 * 如果没有无参构造器,只有有参构造器,会报错	 */	public Student() {	}	public Student(String name, int age) {		this.name = name;		this.age = age;	}	public int getId() {		return id;	}	public void setId(int id) {		this.id = id;	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public int getAge() {		return age;	}	public void setAge(int age) {		this.age = age;	}		public String toString(){		return "["+name+","+age+"]";	}	}
3.mybatis配置文件

jdbc.properties : jdbc配置信息

jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/websitejdbc.username=rootjdbc.password=root

conf.xml

与Hibernate太像了啊.

4.映射文件与映射接口

映射接口

package com.skymr.mybatis.mappers;import com.skymr.mybatis.model.Student;public interface StudentMapper {	public Student getStudent(int id);}
映射文件,类似Hibernate的xml配置的映射

这个映射文件感觉就是映射接口的实现类

5.工具类,获取Session

package com.skymr.mybatis.util;import java.io.InputStream;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;/** * 工具类,单例 * @author skymr * */public class MybatisUtil {	private static SqlSessionFactory factory;		public static SqlSessionFactory getSessionFactory(){		if (factory == null){			InputStream is = MybatisUtil.class.getClassLoader().getResourceAsStream("conf.xml");			factory = new SqlSessionFactoryBuilder().build(is);		}		return factory;	}		public static SqlSession openSession(){		return getSessionFactory().openSession();	}}
6.测试

package com.skymr.mybatis.service;import org.apache.ibatis.session.SqlSession;import com.skymr.mybatis.mappers.StudentMapper;import com.skymr.mybatis.util.MybatisUtil;public class StudentTest {	public static void main(String[] args){//        String statement = "com.skymr.mybatis.mappers.StudentMapper.getStudent";//映射sql的标识字符串//        //执行查询返回一个唯一user对象的sql//        Student student = MybatisUtil.openSession().selectOne(statement, 1);//        System.out.println(student);		SqlSession session = MybatisUtil.openSession();		StudentMapper mapper = session.getMapper(StudentMapper.class);		System.out.println(mapper.getStudent(1));		session.close();	}}

ps:

session需要关闭;

从session里取出映射接口的实例就可调用操作数据库的方法了,底层一定是根据映射配置文件实现了一个映射接口,这个跟hibernate不一样啊.

数据库里添加一行数据,id=1

测试成功.

转载地址:http://knihj.baihongyu.com/

你可能感兴趣的文章
方法引用,通过对象名引用成员变量
查看>>
常用工具类 Math:数学计算 Random:生成伪随机数 SecureRandom:生成安全的随机数 2020-2-13
查看>>
Java的异常Exception 2020-2-13
查看>>
Java标准库定义的常用异常,自定义异常 2020-2-15
查看>>
Java问题百度/Google记录 2020-2-16
查看>>
【PADS9.5】9,对比ECO核心板,Router移动元件后布线消失,Router找不到自动布线策略文件丢失或损坏
查看>>
【STM32+w5500汇总】23,HTTP_Client 连接到ONENET上传了一段数据之后会断开,数据上传格式的设置
查看>>
【STM32+W5500+MQTT】24,所有功能都可以通过API函数的调用来实现;HTTP接入ONENET,API开发手册和打包函数,串口软件HTTP连接服务器上传数据,2018年12月28日
查看>>
【STM32+W5500+HTTPClient】25,路由器DHCP租赁IP时间为2h,NetBios可以很好的解决IP变化的问题,DNS,2018年12月25日
查看>>
【STM32+MQTT+ONENET】26,MQTT协议接入OneNET
查看>>
【STM32+W5500+MQTT+ONENET】27,MQTT协议接入OneNET实际编程操作 2018年12月27日
查看>>
【STM32Cube+FreeRTOS 】28,KEIL5的F12不起作用;***JLink Error: Can not read register x while CPU is running
查看>>
【STM32CubeMX+FreeRTOS 】29,prtinf卡死;4任务只运行了3个;W5500联网失败(堆栈不能太大或者太小)
查看>>
【STM32+FreeRTOS +W5500移植要点】30,RTOS中断;从TIM2,主TIM3;RTOS主要用在LCD中;RT-Thread;标志重定义问题 2019年01月22日
查看>>
【STM32+FPGA+FSMC】31,FSMC熟练掌握;KEIL5生成bin文件;SDRAM的使用;IAP检验码 2019年04月10日
查看>>
【IC1】【转 非常好】运算放大器使用的六个经验
查看>>
【IC-ADC 3】ADC的选型
查看>>
2019年03月18日 查看数据手册的注意点,极限参数、电气参数、推荐参数
查看>>
HiKey960/970用户手册;HiKey960 Development Board User Manual
查看>>
【书籍推荐】FPGA,xilinx
查看>>