本文共 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=rootconf.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/