本文为《Spring + MyBatis 企业应用实战》章节笔记
8.1 ORM 和 MyBatis
8.1.1 对象/关系数据库映射 (ORM:Object/Relation Mapping)
采用 ORM 框架后,应用程序不再直接访问底层数据库,而是以面向对象的方式来操作持久化对象,而 ORM 框架则将这些面向对象的操作转换成底层的 SQL 操作。
8.1.2 基本映射方式
- 数据表映射类
- 数据表的行映射对象(即实例)
- 数据表的列(字段)映射对象的属性
8.1.3 流行的 ORM 框架简介
- JPA
- Hibernate
- MyBatis
8.1.4 MyBatis 概述
MyBatis 可以使用简单的 XML 或注解进行配置和原始映射,以将接口和 Java 的 POJO(Plain Old Java Object,普通对象)映射成数据库中的记录。
主要思想是将程序中的大量 SQL 语句剥离出来,配置在配置文件中,以实现 SQL 的灵活配置。
8.2 MyBatis 入门
8.2.1 MyBatis 下载和安装
8.2.2 MyBatis 的数据库操作
-
MySQL 建 库 和 表,eg:库 mybatis、表 tb_user。
create database mybatis; use mybatis; create table tb_user ( ID int(1) primary key auto_increment, name varchar(18) default null, sex char(2) default null, age int(11) default null )
-
建持久化类 User.java,编写 UserMapper.xml,之后就用这个映射好的持久化类来完成对数据库的操作。
// 持久化类 User.java public class User { private Integer id; private String name; private String sex; private Integer age; public User(){ super(); } public User(String name, String sex, Integer age) { super(); this.name = name; this.sex = sex; this.age = age; } public Integer getId(){ return id; } public void setId(Integer id) { this.id = id; } // 下面省略 name、sex、age 的 get 和 set 方法 }
// 映射配置文件 UserMapper.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mabatis.org//DTD Mapper 3.0//EN" http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.zhisheng.mapper.UserMapper"> <insert id="save" parameterType="org.zhisheng.domain.User" userGenerateKdys="true"> insert into user(name, sex, age) values(#{name}, #{sex}, #{age}) </insert> </mapper>
-
配置 mybatis-config.xml,把 MyBatis 系统核心和具体数据库连接配置好。
// mybatis-config.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> <settings> <setting name="logImpl" value="LOF4J"/> </setting> <environments default="mysql"> <environment id="mysql"> <TranscationManager type="JDBC"> <dataSource type="POOLED"> <property name"driver" value="com.mysql.jdbc.Driver/"> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/> <property name="username" value="root"/> <properyt name="password" value="password"/> </dataSource> </environment> </environments> <mappers> <mapper resource="org/zhisheng/mapper/UserMapper.xml"/> </mappers> <configuration>
-
编写完成数据插入的代码 MyBatisTest.java
// MyBatisTest.java public class MyBatisTest { public static void main(Strign[] args) throws Exception { InputStream inputStream = Resoucrces.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputstream); SqlSession session = sqlSessionFactory.openSession(); User user = new User("admin", "男", 26); session.insert("org.zhisheng.mapper.UserMapper.save", user); session.commit(); session.close(); } }
-
导入日志框架 LOF4J 的 jar 包,增加 log4j.properties 文件。
// log4j.properties log4j.rootLogger=ERROR, stdout log4j.logger.ort.zhisheng.mapper.UserMapper=DEBUG log4j.appender.stdout=org.apache.lof4j.ConsolAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.apaender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
END
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于