web学习14-mybaits


1、MyBatis简介

1.1、Mybatis是什么

MyBatis 是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。 目前mybatis在github上托管。

MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注
SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、
结果集检索等jdbc繁杂的过程代码。

Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、
CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
早期hibernate框架比较流行,hibernate<mybatis<jdbc 。

1.2、为什么要学习Mybatis

传统jdbc的操作过程如下

public class TestJdbc {
@Test
public void test() throws ClassNotFoundException, SQLException {
//加载驱动
Class.forName("org.gjt.mm.mysql.Driver");
//获取连接
String url = "jdbc:mysql://localhost:3306/mytest?
useUnicode=true&characterEncoding=utf8";
String username = "root";
String pwd = "root";
Connection conn = DriverManager.getConnection(url, username, pwd);
//执行sql
String sql = "select * from user where userid = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
//结果迭代
while(rs.next()) {
System.out.println(rs.getInt("userid"));
System.out.println(rs.getString("username"));
}
//释放资源
rs.close();
pstmt.close();
conn.close();
}
}

弊端如下:
1、链接参数写死在了java代码中,以后扩展时不太方便。
2、每一次数据操作都要经过创建连接和关闭连接连接的过程。
3、结果集的映射处理需要自己手动完成。

2、Mybatis开发入门

2.1、执行入门项目的脚本

--创建表空间
create tablespace tb_jz
datafile 'xx\jz.dbf'
size 100m;
--创建用户
create user jz IDENTIFIED by jz
default tablespace tb_jz;
--授权
grant connect,resource to jz;
grant unlimited tablespace to jz;
--单表操作
CREATE TABLE tb_user (
userid number(4) NOT NULL primary key,
user_name varchar2(100) unique not null,
pwd varchar2(100),
age number(3) ,
sex varchar(3),
birthday date
);
create sequence seq_user;
--插入测试数据
insert into tb_user(userid,user_name,pwd,age,sex,birthday)
values(seq_user.nextval,'张三','123456',10,'男',sysdate);
insert into tb_user(userid,user_name,pwd,age,sex,birthday)
values(seq_user.nextval,'李四','123456',10,'男',sysdate);
insert into tb_user(userid,user_name,pwd,age,sex,birthday)
values(seq_user.nextval,'王五','123456',10,'男',sysdate);
insert into tb_user(userid,user_name,pwd,age,sex,birthday)
values(seq_user.nextval,'赵六','123456',10,'男',sysdate);
select * from tb_user;

2.2、安装Mybatis

在这里插入图片描述

2.3、配置Mybatis核心配置文件

在这里插入图片描述

2.4、配置log4j日志文件

添加log4j.properties文件

log4j.rootLogger=debug,stdout,logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=jbit.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout\t
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p
%m%n
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

2.5、编写测试类

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值