Java架构师之旅(二十九)

夜光序言:

爱情里,只有被深爱的一方,才有资格任意妄为

正文:MyBatis

我们看一下:开源免费框架

作用:数据访问层框架

底层是对jdbc的封装

我们肯定第一步要先导入jar包嗯

这是一个动态代理的jar包

扫描二维码关注公众号,回复: 5030994 查看本文章

 

第一个xml文件

/mybatis01/src/mybatis.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>

<!-- 夜光:default与所使用环境相对应 -->

      <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/ssm"/>

                  <property name="username" value="root"/>

                  <property name="password" value="1111"/>

             </dataSource>

         </environment>

         <!-- 夜光:上面这个连接mysql -->

      </environments>

      <mappers>

         <mapper resource="com/Genius/mapper/FlowerMapper.xml"/>

      

      

      </mappers>

      

      

      

 

</configuration>

 

 

第二个xml文件

/mybatis01/src/com/Genius/mapper/FlowerMapper.xml:

 

 

<?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的范型

      因为mybatisjdbc封装,是一行一行读取数据的~~

   -->

   <select id="selAll" resultType="com.Genius.pojo.Flower">

       select * from flower

   </select>

 

 

</mapper>

 

 

第一个实体类:

/mybatis01/src/com/Genius/pojo/Flower.java

package com.Genius.pojo;

 

public class Flower {

//夜光:一般情况下,实体类都是和表名相同~~

private int id;

private String name;

private double price;

private String production;

 

//我们形成一个filed领域~~

public Flower(int id, String name, double price, String production) {

super();

this.id = id;

this.name = name;

this.price = price;

this.production = production;

}

//我们获取一下set和get方法

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 + "]";

}

 

 

}

 

 

 

第二个测试类:

/mybatis01/src/com/Genius/test/Test.java

 

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

 

public class Test {

  private 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());

    }

    

    session.close();

}

}

环境搭建~~

 

 

夜光、之后就是高级知识部分

订单商品数据模型分析

高级结果集映射(一对一,一对多,多对多)

Mybatis延迟加载

Mybatis查询缓存(一级缓存,二级缓存)

Mybatis和spring进行整合

Mybatis逆向工程

猜你喜欢

转载自blog.csdn.net/weixin_41987706/article/details/86504358