JAVA之Mybatis学习(第一天)

23 篇文章 0 订阅
15 篇文章 0 订阅

一,框架是什么?
        1.框架:软件的半成品.未解决问题制定的一套约束,在提供功能基础上进行扩充.
        2.框架中一些不能被封装的代码(变量),需要使用框架者新建一个xml文件,在文件中添加变量内容.
            2.1需要建立特定位置和特定名称的配置文件.
            2.2需要使用xml解析技术和反射技术.
        3.常用概念
            3.1类库:提供的类没有封装一定逻辑.举例:类库就是名言警句,写作文时引入名言警句
            3.2框架:区别与类库,里面有一些约束.举例:框架是填空题
二,MyBatis简介
        1.Mybatis开源免费框架.原名叫iBatis,2010在googlecode,2013年迁移到github
        2.作用:数据访问层框架.
           2.1底层是对JDBC的封装.
        3.mybatis优点之一:
           3.1使用mybatis时不需要编写实现类,只需要写需要执行的sql命

三,环境搭建

2.在src下新建全局配置文件(编写JDBC四个变量)

                                              2.1没有名称和地址要求

                                                                         2.2在全局配置文件中引入DTD或schema

                                                                                         2.2.1如果导入dtd后没有提示Window-->preference-->XML-->XMlcatalog-->add按钮

 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>
	<!-- 配置JDBC连接-->
	<environments default="default">
	   <environment id="default">
	      <transactionManager type="JDBC"></transactionManager>
	      <dataSource type="POOLED">
	         <property name="driver" value="com.mysql.jdbc.Driver"/>
	         <property name="url" value="jdbc:mysql://localhost:3306/****"/>
	         <property name="username" value="账户"/>
	         <property name="password" value="密码"/>
	      </dataSource>
	   </environment>
	</environments>
	<mappers>
	   <mapper resource="com/ljx/mapper/FlowerMapper.xml"/>
	</mappers>
</configuration>

 3.新建以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">
  <!-- 可以理解成实现类的全路径 -->
  <mapper namespace="a.b">
  <!--
        id:是方法名
        resultType:返回值类型(包名+类名)
        parameterType:定义参数的类型
        注意:
	            如果返回值是List集合,那么在resultType中写他的泛型,
	            因为mybatis对JDBC的封装是一行一行的读取
    -->
     <select id="selAll" resultType="com.ljx.pojo.Flower">
        select * from flower
     </select>
  </mapper>

4.测试结果(只有在单独使用mybatis时使用,最后ssm整合时下面代码不需要编写.)

package com.ljx.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

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 com.ljx.pojo.Flower;

/**
 * 测试mybatis
 * @author 
 *
 */
public class Test {
   public static void main(String[] args) throws IOException {
	   InputStream is = Resources.getResourceAsStream("mybatis.xml");
	   //使用工厂设计模式
	 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is) ;
	 SqlSession session = factory.openSession();
	 List<Flower> list = session.selectList("a.b.selAll");
	 for (Flower flower : list) {
		System.out.println(flower.toString());
	}
  }
}

四,环境搭建详解

1.全局配置文件中内容

          1.1<transactionManager/>type属性可取值

                       1.1.1JDBC,事务管理使用JDBC原生事务管理方式

                       1.1.2MANAGED把事务管理转交给其他容器.原生JDBC事务setAutoMapping(false);

         1.2<dataSouce/>type属性

                      1.2.1POOLED使用数据库连接池

                      1.2.2UNPOOLED不实用数据库连接池,和直接使用JDBC一样

                      1.2.3JNDI:java命名目录接口技术.

 五.数据库连接池

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

2.JDBCTomcatPool,直接由tomcat产生数据库连接池.

3.图示

       3.1active状态:当前连接对象被应用程序使用中

        3.2Idle空闲状态:等待应用程序使用

 

4.使用数据库连接池的目的

          4.1在高频率访问数据库时,使用数据库连接池可以降低服务器系统压力,提升程序运行效率.

                 4.1.1小型项目不适用数据库连接池.

5.实现JDBCtomcatPool的步骤.

         5.1在web项目的META-INF中存放context.xml,在context.xml编写数据库连接池相关属性

<?xml version="1.0" encoding="UTF-8"?>
<Context>
<!--配置数据库连接池  -->   
	<Resource
	   driverClassName="com.mysql.jdbc.Driver"
	   url="jdbc:mysql://localhost:3306/数据库名"
	   username="用户名"
	   password="密码"
	   maxActive="50"
	   maxIdle="20"
	   name="test"
	   auth="Container"
	   maxWait="10000"
	   type="javax.sql.DataSource"
	/>
</Context>

           5.2把项目发布到tomcat中,数据库连接池产生了

6.可以在java中使用jndi获取数据库连接池中对象

          6.1Context:上下文接口.context.xml文件对象类型

          6.2代码:

Context ctx = new InitialContext();
		DataSource ds = (DataSource) ctx.lookup("java:comp/env/test");
		Connection conn =ds.getConnection();

        6.3当关闭连接对象时,把连接对象归还给数据库连接池,把状态改变成Idle

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值