javaweb框架--MyBatis(持久层框架)(一)环境搭建及入门程序

1.基础认知

框架:软件开发的一套解决方案,不同的框架解决的是不同的问题,框架封装了很多细节,使开发者可以使用极简的方式实现功能,大大提高开发效率

三层架构:

表现层:展示数据(Servletjsp

业务层:处理业务需求(Service,Javabean

持久层:数据库交互(DAO

 

持久层总图

 

2、持久层技术解决方案

JDBC技术:

Connection

PreparedStatement

ResultSet

Spr ingJdbcTemplate:

Spring中对jdbc的简单封装

ApacheDBUtils:

它和SpringJdbcTemplate很像,也是对Jdbc的简单封装

以上这些都不是框架

JDBC是规范

SpringJdbc TemplateApacheDBUtils都只是工具类

3mybatis的概述

mybatis是一个持 久层框架,用java编写的。

它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程

它使用了ORM思想实现了结果集的封装。

ORM:

0bject Relational Mappging 对象关系映射

简单的说:

就是把数据库表和实体类及实体类的属性对应起来让我们可以操作实体类就实现操作数据库表。就是需要做到实体类中的属性和数据库表的字段名称保持一致。

4.MyBatis环境搭建,IDEA创建普通Maven项目

pom.xml配置mybatis,mysql,log4j,junit

 1         <dependency>
 2             <groupId>org.mybatis</groupId>
 3             <artifactId>mybatis</artifactId>
 4             <version>3.5.0</version>
 5         </dependency>
 6 
 7         <dependency>
 8             <groupId>mysql</groupId>
 9             <artifactId>mysql-connector-java</artifactId>
10             <version>5.1.37</version>
11         </dependency>
12 
13 
14         <dependency>
15             <groupId>log4j</groupId>
16             <artifactId>log4j</artifactId>
17             <version>1.2.17</version>
18         </dependency>
19 
20         <dependency>
21             <groupId>junit</groupId>
22             <artifactId>junit</artifactId>
23             <version>4.12</version>
24             <scope>test</scope>
25         </dependency>

5mybatis的入门

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration
 3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <!--mybatis的主配置文件-->
 6 <configuration>
 7     <!--配置环境-->
 8     <environments default="mysql">
 9         <!--配置mysql环境-->
10         <environment id="mysql">
11             <!--配置事务类型-->
12             <transactionManager type="JDBC"></transactionManager>
13             <!--配置数据源(连接池)-->
14             <dataSource type="POOLED">
15                 <!--配置连接数据库的4个基本信息-->
16                 <property name="driver" value="com.mysql.jdbc.Driver"/>
17                 <property name="url" value="jdbc:mysql://localhost:3305/mybatis"/>
18                 <property name="username" value="root"/>
19                 <property name="password" value="123456"/>
20             </dataSource>
21         </environment>
22     </environments>
23     <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
24     <mappers>
25         <mapper resource="com/leaf/dao/IUserDao.xml"></mapper>
26     </mappers>
27 </configuration>
SqlMapConfig.xml
 1 <?xml version="1.0" encoding="UTF-8"?>
 2         <!DOCTYPE mapper
 3                 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4                 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="com.leaf.dao.IUserDao">
 6     <!--此处配置dao接口所要实现的SQL语句-->
 7     <!--配置查询所有-->
 8     <select id="findAll" resultType="com.leaf.domain.User">
 9         select * from user
10     </select>
11 </mapper>
IUserDao.xml
 1 # Set root category priority to INFO and its only appender to CONSOLE.
 2 #log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
 3 log4j.rootCategory=debug, CONSOLE, LOGFILE
 4 
 5 # Set the enterprise logger category to FATAL and its only appender to CONSOLE.
 6 log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
 7 
 8 # CONSOLE is set to be a ConsoleAppender using a PatternLayout.
 9 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
10 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
11 log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
12 
13 # LOGFILE is set to be a File appender using a PatternLayout.
14 log4j.appender.LOGFILE=org.apache.log4j.FileAppender
15 log4j.appender.LOGFILE.File=d:\axis.log
16 log4j.appender.LOGFILE.Append=true
17 log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
18 log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
lo4j.properties

mybatis的环境搭建

第一步:创建maven工程并导入坐标

第二步:创建实体类和dao的接口

第三步:创建Mybatis的主配置文件

SqlMapConifg. xml

第四步:创建映射配置文件

IUserDao. xml .

环境搭建的注意事项:

第一个:创建IUserDao. xmlIUserDao. java时名称是为了和我们之前的知识保持一致。

Mybatis中它把持久层的操作接口名称和映射文件也叫做: Mapper

所以: IUserDao IUserMapper是一 样的

第二个:idea中创建目录的时候,它和包是不- -样的

包在创建时: com. itheima. dao它是三级结构

目录在创建时: com. itheima. dao是一级目录

第三个: mybatis的映射配置文件位置必须和dao接口的包结构相同

第四个:映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名

第五个:映射配置文件的操作配置(select) id属性的取值必须是dao接口的方法名

当我们遵从了第三,四,五点之后,我们在开发中就无须再写dao的实现类。

入门程序:写一个测试类

import com.leaf.dao.IUserDao;
import com.leaf.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MybatisTest {
    public static void main(String[] args) throws IOException {
        //1.读取配置文件
        InputStream in = Resources.getResourceAsStream ("SqlMapConfig.xml");
        //2. 创建SqlSessionFactory
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder ();
        SqlSessionFactory  factory = builder.build(in);
        //3.使用工厂生产SqlSession对象
        SqlSession session = factory.openSession ();
        //4.使用SqlSession创建Dao接口的代理对象
        IUserDao userDao = session.getMapper (IUserDao.class);
        //5.使用代理对象执行分法
        List<User> users = userDao.findAll ();
        for (User user:users) {
            System.out.println (user);
        }
        //6.释放资源
        session.close ();
        in.close ();
    }
}

运行测试

猜你喜欢

转载自www.cnblogs.com/xiaoyezideboke/p/11700706.html