java_day17

学习目标

  1. 能够了解什么是框架

  2. 掌握mybatis框架开发快速入门
  3. 理解自定义mybatis框架

框架概述

什么是框架:

框架是别人写好的代码,是对常见功能的封装,是一个半成品。我们在框架的基础上开发出成品的软件。

假如你要造一辆马车,在没有零件的情况下,你需要自己去伐木,去把木头做成木板,木棍,然后做成轮子,门,等部件,然后组装起来,很麻烦。框架就相当于现成的轮子,门等部件。我们只需要拿过来使用即可

企业项目中使用框架,程序员不再需要重复造轮子,只需要专注实现业务需求,提升了开发效率

常见框架如:Spring,SpringMVC,Mybatis,JdbcTemplate,Bootstrap等等。

分层开发下常见框架

在J2EE应用中,通常把项目整体进行分层设计。有表现层、业务层、持久层。

MyBatis是一款优秀的持久层框架,MyBatis 避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集。

mybatis框架介绍

mybatis是Apache软件基金会下的一个开源项目,前身是iBatis框架。2010年这个项目改名为mybatis。是一个持久层框架

框架包下载:连接到github地址:https://github.com/mybatis/mybatis-3/releases

mybatis入门案例

需求:利用mybatis框架,从MySQL中查询所有的用户

创建数据库并在库中创建用户表

CREATE TABLE USER (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
birthday DATE,
sex CHAR(1) DEFAULT '男',
address VARCHAR(50)
);

INSERT INTO USER VALUES (NULL, '孙悟空','1980-10-24','男','花果山水帘洞');
INSERT INTO USER VALUES (NULL, '白骨精','1992-11-12','女','白虎岭白骨洞');
INSERT INTO USER VALUES (NULL, '猪八戒','1983-05-20','男','福临山云栈洞');
INSERT INTO USER VALUES (NULL, '蜘蛛精','1995-03-22','女','盤丝洞');

SELECT * FROM USER;

mybatis开发步骤

  1. 创建新模块

  2. 加入mybatis相关jar包

  3. 编写用户实体类(User)

  4. 准备核心配置文件:sqlMapConfig.xml

  5. 编写用户 dao 接口(UserMapper)

  6. 编写用户 dao 接口映射文件(UserMapper.xml)

  7. 编写测试代码

 环境搭建

1.创建模块:mybatis01_01

2.在模块下新建lib文件夹,复制mybatis框架jar包到lib文件夹下

3.编写用户实体类(User)

/**
用户实体类对象 */
public class User {

private Integer id;
private String username;
private Date birthday;
private String sex;
private String address;

// 省略构造方法/getter/setter/toString
}

4.配置文件

复制log4j.properties到 src 下

 log4j.propertie文件内容:

### 设置Logger输出级别和输出目的地 ###
log4j.rootLogger=debug, stdout

### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

编写核心配置文件sqlMapConfig.xml

将sqlMapConfig.xml复制到src目录下

说明:它是mybatis框架的核心配置文件,mybatis就是靠这些信息来运行的。

sqlMapConfig.xml文件内容:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--可以配置多个环境,可以访问不同种类的数据库:mysql, oracle-->
<environments default="default">
<!-- 其中的一个配置环境,这个配置方案的唯一标识 -->
<environment id="default">
<!--
指定事务管理器的类型:
JDBC:使用JDBC来管理事务
-->
<transactionManager type="JDBC"/>
<!--
数据源的类型:
1. POOLED:使用mybatis创建的连接池
2. UNPOOLED:不使用连接池,每次都创建和关闭连接
-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>

<!--加载接口映射文件-->
<mappers>
<mapper resource="接口映射文件位置"/>
</mappers>
</configuration>

5.UserMapper接口的创建

在src下创建dao包,创建UserMapper接口。编写查询所有用户的方法:List<User> findAllUsers();

 UserMapper接口代码:

public interface UserMapper {
/**
查询所有的用户
*/
List<User> findAllUsers();
}

6.在dao包中创建UserMapper.xml映射文件

 UserMapper.xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="接口包名.类名">
<select id="方法名" resultType="方法返回值类型">
SQL语句
</select>
</mapper>
7.编写mybatis访问数据库的Java代码
编写流程
1.创建SqlSessionFactoryBuilder对象
2.得到会话工厂SqlSessionFactory类
3.得到SqlSession对象
4.通过SqlSession对象得到Mapper接口的代理对象
5.Mapper接口的代理对象执行数据库的查询操作

测试类代码

public class TestMybatis {

public static void main(String[] args) {

// 1.得到核心配置文件的输入流
InputStream in = TestMybatis.class.getResourceAsStream("/sqlMapConfig.xml");

// 2.创建会话工厂建造类
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

// 3.创建会话工厂
SqlSessionFactory factory = builder.build(in);

// 4.通过会话工厂得到会话对象
SqlSession session = factory.openSession();

// 5.由会话对象得到DAO接口的对象,由mybatis生成接口的代理对象。
UserMapper userMapper = session.getMapper(UserMapper.class);

// 6.实现CRUD
List<User> userList = userMapper.findAllUsers();
for (User user : userList) {
System.out.println(user);
}

// 7.释放资源
session.close();
}
}

运行结果
 
 
 

猜你喜欢

转载自www.cnblogs.com/qm25555/p/11825545.html