昨天看了一下mybatis,学习了一下有很多东西还不懂,但是想把一些知道的记录一下,如有错误请大家多多指点。
mybatis它是apche的一个开源项目,它以前的没名字并不是叫mybatis而是叫ibatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis[1]。
1. 与其他的框架区别
mybatis和hibernate差不多都是,都属于优秀持久层的框架,主要负责访问数据库。但是和hibernate还是有区别的,hibernate是数据纯属的面对对象变成,我们的所有操作基本都是在操作对象,我们根本就不用去负责sql语句,这样会导致我们失去了对sql语句的控制。而mybatis虽说也是在对象进行操作但是不同于hibernate,mybatis可以自己来写sql语句,这样显得更加容易控制一些。
2. 项目演示
2.1 创建数据库和表
2.2 mybatis所需要的jar包
mybatis-3.3.0.jar(mybatis包)
mysql-connector-java-5.1.13-bin.jar(mysql的链接驱动jar包)
2.3mybatis配置文件
我一般都喜欢在项目你在创建一个源码包用来存放配置文件(New->source folder)
在源码包中写一个mybatis.xml文件在这个文件中编写mybatis的配置
1 2 5 67 8 9 10 24 2511 2312 13 2214 15 16 17 18 19 20 21 26 27 2928
2.4 properties配置文件
2.5 编写实体类
该实体类要与数据库中的表相对应,在类(User)中写个tostring方法便于我们查看
1 package com.home.entity; 2 3 /** 4 * 此类是:user实体类 5 * @author hpc 6 * @2017年1月10日下午9:36:59 7 */ 8 public class User { 9 private Integer user_id;10 private String user_name;11 private String user_pwd;12 public Integer getUser_id() {13 return user_id;14 }15 public void setUser_id(Integer user_id) {16 this.user_id = user_id;17 }18 public String getUser_name() {19 return user_name;20 }21 public void setUser_name(String user_name) {22 this.user_name = user_name;23 }24 public String getUser_pwd() {25 return user_pwd;26 }27 public void setUser_pwd(String user_pwd) {28 this.user_pwd = user_pwd;29 }30 @Override31 public String toString() {32 return "User [user_id=" + user_id + ", user_name=" + user_name + ", user_pwd=" + user_pwd + "]";33 }34 35 }
2.6 编写映射关系文件
文件名可以随意但是为了一目了然的效果,我们通常是 类名+mapper.xml命名(userMapper.xml)。写完后将我们写好的映射文件在mybatis.xml文件中的mappers标签中注册。
1 2 3 45 11 18
2.7 编写测试类
1 package com.home.mybatis; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 6 import org.apache.ibatis.session.SqlSession; 7 import org.apache.ibatis.session.SqlSessionFactory; 8 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 9 10 import com.home.entity.User;11 12 public class TestApp {13 public static void main(String[] args) throws IOException {14 // mybatis的配置文件15 String resource = "mybatis.xml";16 // 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)17 InputStream is = TestApp.class.getClassLoader()18 .getResourceAsStream(resource);19 // 构建SqlSessionFactory,通过SqlSessionFactory来获取session20 SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(is);21 // 通过SqlSessionFactory获取session22 SqlSession session = sf.openSession();23 // 你要执行个哪一个sql,指定方式是:mapper标签的namespace属性+查询语句标签的id属性(namespace+id)24 String statement = "com.home.entity.userMapper.loadUser";25 // 查询一条记录,给他指定的sql和参数,参数要与你配置时给定参数类型一致否则会报类型异常26 User user = session.selectOne(statement, 1);27 // 打印user28 System.out.println(user);29 }30 }
2.8 效果展示