SSM框架学习总结之路(一)

    xiaoxiao2024-12-04  82

    框架学习第一天总结"mybatis"001

    一、框架是什么?二、mybatis简介三、环境初步搭建三.1、环境搭建详解 三、数据库连接池四、mybatis三种查询方式

    一、框架是什么?

    框架 ,软件的半成品,为解决问题制定的一套约束,在提供功能的基础上进行补充;框架中一些不能被封装的代码,需要使用框架者自己新建一个xml文件,在文件中添加变量内容; 注意: 2.1需要建立特定位置和特定名称的配置文件。 2.2需要使用xml解析技术和反射技术。

    二、mybatis简介

    mybatis开源免费框架,原名iBatis,2010在google code,2013年迁到GitHub; 2.作用:数据访问层框架,底层对JDBC的封装 ;优点:使用mybatis不需要编写实现类,只需要写执行的SQL命令;

    三、环境初步搭建

    导入jar包; 在src下新建全局配置文件(编写jdbc四个变量); 2.1名称地址没有要求 2.2在全部配置文件中引入DTD 2.3全局配置文件内容 <?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> <!-- default 引用 environment 的 id,当前所使用的环境 --> <environments default="default"> <!-- 声明可以使用的环境 --> <environment id="default"> <!-- 使用原生 JDBC 事务 --> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/database"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/mapper/FlowerMapper.xml"/> </mappers> </configuration> 新建以mapper结尾的包,在包下新建实体类名+Mapper.xml; 3.1文件作用:编写需要执行的SQL命令; 3.2 把xml文件当作实现类执行; 3.3xml文件内容 <?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"> <!-- namesapce:理解成实现类的全路径(包名+类名) --> <mapper namespace="a.b" > <!-- id:方法名 parameterType:定义参数类型 resultType:返回值类型. 如果方法返回值是 list,在 resultType 中写 List 的泛型, 因为 mybatis 对 jdbc 封装,一行一行读取数据 --> <select id="selAll" resultType="com.pojo.Flower"> select * from flower </select> </mapper> 测试结果(只有在单独使用 mybatis 时使用.) ; InputStream is = Resources.getResourceAsStream("myabtis.xml"); //使用工厂设计模式 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); //生产 SqlSession SqlSession session=factory.openSession(); List<Flower> list = session.selectList("a.b.selAll"); for (Flower flower : list) { System.out.println(flower.toString()); } session.close();

    三.1、环境搭建详解

    全局配置文件中的内容 1.1 <transactionManager/>type 属性可取值; 1.1.1JDBC,事务管理使用 JDBC 原生事务管理方式; 1.1.2 MANAGED 把事务管理转交给其他容器.原生 JDBC 事务setAutoMapping(false); 1.2<dataSouce/>type 属性; 1.2.1POOLED 使用数据库连接池; 1.2.2UNPOOLED 不实用数据库连接池,和直接使用 JDBC 一样; 1.2.3JNDI:java 命名目录接口技术;

    三、数据库连接池

    在内存中开辟一块空间,存放多个数据库连接对象.

    JDBC Tmocat Pool,直接由Tomcat产生数据库连接池

    数据库连接的状态有如下两种 3.1active 状态:当前连接对象被应用程序使用中 3.2Idle 空闲状态:等待应用程序使用

    使用数据库连接池的目的 4.1 在高频率访问数据库时,使用数据库连接池可以降低服务器系统压力,提升程序运行效率; 4.2 小型项目不适用数据库连接池

    实现JDBC Tomcat Pool的步骤 5.1 在 web 项目的 META-INF 中存放context.xml,在 context.xml 编写数据库连接池相关属性; 5.2把项目发布到Tomcat中,数据库连接池产生

    <?xml version="1.0" encoding="UTF-8"?> <Context> <Resource driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/database" username="root" password="123456" maxActive="50" maxIdle="20" name="test" <!--auth="Container" 允许Tomcat自动启动jdbc连接池 --> auth="Container" maxWait="10000" type="javax.sql.DataSource"/> </Context> 可以在 java 中使用 jndi 获取数据库连接池中对象 6.1Context:上下文接口.context.xml 文件对象类型 6.2 代码 6.3 当关闭连接对象时,把连接对象归还给数据库连接池,把状态 改变成 Idle Context cxt = new InitialContext(); <!-- cxt.lookup("java:comp/env/databaseName") 固定格式 java:complete environment--> DataSource ds = (DataSource) cxt.lookup("java:comp/env/test"); Connection conn = ds.getConnection();

    四、mybatis三种查询方式

    selectList() 返回值为 List<resultType 属性控制> 1.1 适用于查询结果都需要遍历的需求 List<Flower> list = session.selectList("a.b.selAll"); for (Flower flower : list) { System.out.println(flower.toString()); } selectOne() 返回值 Object, 2.1 适用于返回结果只是变量或一行数据时 int count = session.selectOne("a.b.selById"); System.out.println(count); selectMap() 返回值 Map 3.1适用于需要在查询结果中通过某列的值取到这行数据的需求. 3.22Map<key,resultType 控制> Map<Object, Object> map = session.selectMap("a.b.c", "name123"); System.out.println(map);
    最新回复(0)