蔡香满屋
站在牛顿头上吃苹果

整体目录架构如下:

项目架构内容逐个分析:

 开始搭建mybatis项目之前可以准备的工作有:

1.导入源代码(mybatis-3.2.7source(源码包)),导入的步骤可以参考该链接:https://jingyan.baidu.com/article/f006222805efddfbd2f0c850.html

2.给mybatis.xml文件加上dtd,即:

<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">

  加上该dtd之后,按下Alt+ / 就会出现提示代码,如果没有,则可以配置上dtd:

步骤如下图:

然后:

 

出现功能的提示信息如图:

 ==================================

下面是搭建项目的步骤:

第一步:新建一个动态Web项目

第二步:导入需要的包如:

其中这几中jar包作用分别是:

第三步:在src下新建全局配置文件(编写JDBC四个变量)

  3.1该xml文件没有名称和地址要求

其中xml文件的配置信息简单如下:

<!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/mybatis_flower"/>
		<property name="username" value="root"/>
		<property name="password" value="root"/>
			</dataSource>
		</environment>
	</environments>
	<mappers>
<!--引进mapper.xml文件,这是文件引用的方式-->    		
<mapper resource="com/bjsxt/mapper/FlowerMapper.xml"/> </mappers> </configuration>

  第四步:新建以mapper结尾的包,在包下新建:实体类名+Mapper.xml

         4.1 文件作用:编写需要执行的SQL命令

代码如下:

<?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">
<!-- namespace:理解成实现类的全路径(包名+类名) -->
<mapper namespace="a.b" >
	<!-- id:方法名 
		parameterType:定义参数类型
		resultType:返回值类型.
		
		如果方法返回值是list,在resultType中写List的泛型,因为mybatis
		对jdbc封装,一行一行读取数据
	-->
	<select id="selAll" resultType="com.bjsxt.pojo.Flower">
		select * from flower
	</select>
</mapper>

  第五步:新建实体类:

代码如下:

package com.bjsxt.pojo;

public class Flower {
	private int id;
	private String name;
	private double price;
	private String production;
	public Flower(int id, String name, double price, String production) {
		super();
		this.id = id;
		this.name = name;
		this.price = price;
		this.production = production;
	}
	public Flower() {
		super();
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public String getProduction() {
		return production;
	}
	public void setProduction(String production) {
		this.production = production;
	}
	@Override
	public String toString() {
		return "Flower [id=" + id + ", name=" + name + ", price=" + price + ", production=" + production + "]";
	}
}

  第六步:编写测试类:

代码如下:

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

public class Test {
	public static void main(String[] args) throws IOException {
		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();
	}
}

  第七步:输出结果如下:

Flower [id=1, name=gg, price=22.0, production=33]
Flower [id=2, name=ff, price=33.0, production=22]
Flower [id=3, name=bb, price=44.0, production=55]

  数据库数据如下:

 ----------------

环境搭建详解:

1.全局配置文件中内容

  1.1《transactionManager/>里面的type属性可取值有:

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

    1.1.2MANAGED把事务管理转交给其他容器。

  1.2 《dataSource》type属性的取值有:

    1.2.1 POOLED 使用数据库连接池

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

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

posted on 2019-01-02 23:06  蔡香满屋  阅读(117)  评论(0)    收藏  举报