MyBatis框架

一. 关于配置文件

1.新建 resoures 包然后在 右键找到

 

2.在新建 lib 包

3.把 mybatis-3.5.10.jar 架包 和 mybatis-3.5.10.jar 架包, 放到lib包下, 导入数据库

4.打开设置

 

5.

 

6.

 

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>
    //调用 database.properties文件获取连接什么的
    <properties resource="database.properties"></properties>
    <settings>
            
        <setting name="autoMappingBehavior" value="FULL"/>
        // log 4
        <setting name="logImpl" value="LOG4J" />
    </settings>
    <typeAliases>
            //实体类的别名
        <package name="com.pojo"/>
    </typeAliases>
    <!-- 分页插件拦截-->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
    </plugins>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="${driver}"/>
                    <property name="url" value="${url}"/>
                    <property name="username" value="${user}"/>
                    <property name="password" value="${password}"/>
                </dataSource>
            </environment>
        </environments>
        <mappers>
                //调用方法
            <package name="com.mapper"/>
        </mappers>
</configuration>

7.然后在resoures 包下

新建

 

新建名字用 mybatis-config.xml 完成之后

 

然后在新建一个 file

 

名字要用 database.properties

内容为

//   driver 要和 mybatis-config.xml 的一样
driver=com.mysql.cj.jdbc.Driver
    // url 要和 mybatis-config.xml 的一样    cvs_db 数据库名字
url=jdbc:mysql://127.0.0.1:3306/cvs_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&zeroDateTimeBehavior=convertToNull
// user 要和 mybatis-config.xml 的一样  root 用户名
user=root
    // password 要和 mybatis-config.xml 的一样  zyf200413 密码
password=zyf200413

然后在 resoures 包下的 mybatis-config.xml ,在configuration 标签下新建一个 properties 标签

resource属性 写 地址

// resource 地址
<properties resource="database.properties"></properties>

8.

在src包下新建 pojo 包 用于存放实体类

然后在src包下新建 Mapper 包 用于存放 接口

然后在src包下新建 text包 用于存放 测试类

 

在Mapper接口下写方法和和转换的方法

 

转换方法里面的内容

<?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="com.Mapper.T_storage_recordMapper">
    // id  方法  resultType 返回值    parameterType 参数
    <select id="t_storage_recordSum" resultType="double" parameterType="String">
        //sql语句
        SELECT SUM(totalAmount) FROM `t_storage_record` WHERE goodsDesc LIKE '%${goodsDesc}%'
    </select>
</mapper>

mapper 属性的 namespace 是接口地址

如果是新增里面就是 insert

<insert id="">
    
</insert>

修改就是 update

<update id="">
    
</update>

删除 delete

<delete id="">
    
</delete>

parameterType 参数 如果是对象什么的,就要在 resoures 包下的 mybatis-config.xml

configuration标签下新建 typeAliases 标签,然后在typeAliases下新建,package 标签

name属性 写地址

<configuration>
    <typeAliases>
    //   com.POJO  这个包下的所有的类
        <package name="com.POJO"/>
    </typeAliases>
</configuration>

然后在 configuration 标签下新建 mappers标签然后在mappers下新建 package标签

name属性 写地址

<configuration>
    <mappers>
    //  com.Mapper 这个包下的所以方法
            <package name="com.Mapper"/>
        </mappers>
</configuration>

9. 在text包下新建测试类

//  创建 SqlSession 实例
SqlSession session=null;
Scanner input=new Scanner(System.in);
try {
    // 读取MyBatis框架路径
    String path="mybatis-config.xml";
    
    // 获取MyBatis-config.xml 的输入流
    InputStream is= Resources.getResourceAsStream(path);
    
    //使用 SqlSessionFactoryBuilder读取配置文件
    SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
    // SqlSessionFactory 实例
    SqlSessionFactory factory=builder.build(is);
    session=factory.openSession();
    
    // 用接口 =  SqlSessionFactory 实例.getMapper(里面放接口.class)
    T_storage_recordMapper t_storage_recordMapper=session.getMapper(T_storage_recordMapper.class);
    System.out.println("请输入查的类型:");
    String goodsDesc=input.next();
    
    //调用方法
    double count=t_storage_recordMapper.t_storage_recordSum(goodsDesc);
    System.out.println(count);
}catch (Exception e){
    e.printStackTrace();
}finally {
    // 关闭
    session.close();
}

二.mapper接口

1.

<?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="com.mapper.DistrictMappper">
   // 在mapper 里面写   增   删 改 查     resultType 方法的类型   parameterType 参数
    <select id="districtSelect" resultType="District">
        SELECT * FROM `district`
    </select>
</mapper>

2. 连表查询语句

1.一对一

先在实体类中新增一个属性

 private District district;

mapper.xml 中的配置

	//  id 为方法名  				resultMap 自定义 一般是方法名后加resultMap
<select id="air_quality_indexLian" resultMap="air_quality_indexLianResultMap">
    SELECT * FROM `air_quality_index` a,`district` d
    WHERE a.`districtId`=d.`id`
</select>
    //  id 和 resultMap 要一样			type 返回的类型
<resultMap id="air_quality_indexLianResultMap" type="Air_quality_index">
    // column 主键 id 	property 实体类 相对应的属性
    <id column="id" property="id"></id>
    	//	property  哪个表  column 表主键   javaType 表对应的实体类
    <association property="district" column="id" javaType="District"></association>
</resultMap>

调用里面值的时候,用 District 点属性 例如:

for (Air_quality_index a:list) {
    a.getDistrict().getName();
}

2.一对多

在实体类 中新增属性

private List<T_storage_record> t_storage_recordList;

在mapper.xml 中的配置

    //  id 方法名   resultMap 自定义  一般用 方法名后加 resultMap
    <select id="t_supplierLian" resultMap="t_supplierResultMap">
        SELECT t.`supCode`,t.`supName`,t.`supDesc`,t.`supContact`
FROM `t_supplier` t,`t_storage_record` s
WHERE t.`id`=s.`supplierId`
    </select>
        // id 和 resultMap 名字一样   type 主类
    <resultMap id="t_supplierResultMap" type="T_supplier">
        //   column 主键id   property 属性 id
        <id column="id" property="id"></id>
        // property 自定义 的名字   ofType 类型
        <collection property="t_storage_recordList" ofType="T_storage_record"></collection>
    </resultMap>

拿值

		// 调用方法 
      List<T_supplier> list=t_supplierMapper.t_supplierLian();
			// 喜欢 集合
            for (T_supplier t:list) {
                // 用集合装 然后用 t.属性
                List<T_storage_record> tStorageRecordList=t.getT_storage_recordList();
                //在循环拿值
                for (T_storage_record r:tStorageRecordList) {
                    r.getGoodsName();
                }
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值