-
能够了解什么是框架
- 掌握mybatis框架开发快速入门
-
理解自定义mybatis框架
框架是别人写好的代码,是对常见功能的封装,是一个半成品。我们在框架的基础上开发出成品的软件。
假如你要造一辆马车,在没有零件的情况下,你需要自己去伐木,去把木头做成木板,木棍,然后做成轮子,门,等部件,然后组装起来,很麻烦。框架就相当于现成的轮子,门等部件。我们只需要拿过来使用即可
企业项目中使用框架,程序员不再需要重复造轮子,只需要专注实现业务需求,提升了开发效率
常见框架如:Spring,SpringMVC,Mybatis,JdbcTemplate,Bootstrap等等。
,MyBatis 避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集。
mybatis是Apache软件基金会下的一个开源项目,前身是iBatis框架。2010年这个项目改名为mybatis。是一个持久层框架
框架包下载:
创建数据库并在库中创建用户表
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开发步骤
-
创建新模块
-
加入mybatis相关jar包
-
编写用户实体类(User)
-
准备核心配置文件:sqlMapConfig.xml
-
编写用户 dao 接口(UserMapper)
-
编写用户 dao 接口映射文件(UserMapper.xml)
-
编写测试代码
环境搭建
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接口的创建
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();
}
}
运行结果