mybatis框架详解(一)

mybatis自动封装了java对象,就不用看到jdbc代码

Statement对象是语句对象,只需要建立一个Java类型的对象,对象里的字段和数据库里的表头相等,,就会自动做映射

封装成对象。mybatis的任务就完成了

ORM是减少了jdbc代码的使用,不用写sql语句,全都是动态生成的数据,然后用语法生产sql语句,查到数据后自动封到Java对象。不灵活

hibernate是不用写sql语句

所以mybatis是自己写sql语句,对象自动封装

 写mybatis层代码时,首先创建数据库,然后创建maven项目,在pom.xml导入坐标依赖

<dependencies>
<!--mybatis核心包--> 
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!--mysql驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<!-- 日志 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>

 需要用到的包的种类

entity也叫domain,里面是实体类

service业务处理类

util是工具类

vo是包装类

建实体类就是为了封装数据,传递数据,到时候不用传User里的数据,直接传User就行,所以实体类里要和数据库表的字段对应,继承这个接口对数据存储和传输起来更方便

例子:如这个User的实体类(有set、get方法)

dao里写接口(行业标准),接口里定义需要用的方法,接口实现类来实现这些方法(其实dao层一般不需要实现类),一般是在配置文件(UserDao.xml)中实现这些方法

配置文件的内容包括声明约束、找接口、实现方法,用的是反射,如这是一个查询数据库表的所有数据的实现

select id要和要实现的方法名相同,用的反射,mapper的namespace属性要说出要实现的接口,

resultType是返回值类型,要写全类名,数组的话写数组的类型(int、String什么的)

parameterType是接口方法的参数类型,以上就代替了UserDaoImpl文件(接口实现类)

用反射、代理的方式(在用一个SqlMapConfig.xml)读取配置文件里的东西

JDBC每一个操作(增删改,都属于修改数据,不允许,必须手动)默认成一个事务,查询可以做

连接池(用是POOLED,不用加个UN)

原来操作数据库,我需要得到一个操作数据库的链接的对象,如果没有连接池,每操作一次数据库,就要得到一个对象,不用了就销毁,现在可以直接从连接池取

测试类测试一下

测试类

以上仅限于查找,如果需要增删改,则需要手动提交 

 

测试类这里加个true,以后就不用写commit了(一劳永逸)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值