一、ORM
将关系数据库中表中的记录映射成为对象,以对象的形式展现,程序员可以把对数据库的操作转化为对对象的操作。
二、Mybatis相关介绍
Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
内部封装了jdbc,使开发者只需关注sql语句本身,不必花费时间经历加载驱动、链接、statement等繁琐过程。
Mybatis可以使用简单的XML或注解来配置和映射接口和Java的实体类。
2.1 特性
1、使用连接池对链接进行管理 2、SQL和代码分离,几种管理 3、参数映射和动态SQL
4、结果集映射 5、缓存管理 6、重复SQL的提取 7、插件机制
2.2 使用场景
操作持久化层(Dao),和JDBC一样,操作数据库的 当我们要写动态页面(jsp)和用户进 行交互的时候,就需要操作数据库。
三、Mybatis入门
第一步:
创建一个java项目 ——> 创建lib文件夹 ——> 指定lib为我们使用jar包的路径(buildpath)
第二步:
导入相应的jar包 1、log4j(日志) 2、mysql(链接数据库) 3、mybatis(Mybatis框架的依赖)
第三步:
导入配置文件
1、log4j.properties 用来控制管理我们的日志以什么形式什么级别打印在什么地方 (直接拷贝)
2、jdbc.properties 用来存放数据库连接的基本信息 driver url username password
3、mybatis-config.xml Mybatis的核心配置文件
第四步:
创建mybatis-config.xml
<configuration>
<!‐‐获取jdbc数据源文件‐‐>
<properties resource="jdbc.properties" />
<environments default="development">
<environment id="development">
<!‐‐使用jbdc的事务‐‐>
<transactionManager type="JDBC" />
<!‐‐使用数据库连接池‐‐>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!‐‐mapper映射‐‐>
<mappers>
<mapper resource="com/tledu/mapper/UserMapper.xml">
</mapper>
</mappers>
<configuration>
第五步:
创建UserMapper.xml
<!‐ 当前mapper文件的唯一标识 ‐‐>
<mapper namespace="User">
<!‐ id: sql唯一标识 parameterType: 传入的数据类型 ‐‐>
<insert id="add" parameterType="User" >
insert into t_user (username,password,nickname,type) values (#{usernam e},#{password},#{nickname},#{type})
</insert>
</mapper>
第六步:
创建MybatisTest测试类
public class MybatisTest {
public static void main(String[] args) throws IOException {
//以流方式加载mybatis‐config.xml文件放入输入流中
InputStream inputStream = Resources.getResourceAsStream("mybatis‐config. xml");
//解析流中的数据获取sessionFactory 对象
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build (inputStream); //开始Session
SqlSession session = sessionFactory.openSession();
User user = new User();
user.setUsername("bbb");
user.setPassword("222");
user.setNickname("tom");
user.setType(1);
//调用session中insert方法添加user对象中的值给sql,拼接sql并执行
session.insert("User.add",user);
//提交事务
session.commit();
//关流
session.close();
}
5、mybatis使用mapper的三种方式
① session 入门案例
② 接口代理 (常用)
1、需要创建一个UserMapper接口
2、创建UserMapper.xml 注意:namespace=“接口的全类名”
3、在mybatis-config.xml配置文件中添加相应的映射
< mappers>
< mapper class=“com.tledu.mapper.UserMapper”/> //映射接口全类名
< /mappers>
4、测试
session.getMapper(UserMapper.class).add(user);
③ 注解(不常用)
1、创建一个UserMapper接口
@insert(" insert into t_user(username,password) values(#{username},#{password}); ")
void add(User user);
2、在mybatis-config.xml配置文件中添加对这个接口的映射
< mappers>
< mapper class=“com.tledu.mapper.UserMapper”/> //映射接口全类名
< /mappers>
3、session.getMapper(UserMapper.class).add(user);
//session.insert(“com.tledu.mapper.UserMapper.add”,user);