java——mybatis

1、使用mybatis框架的步骤:
    1.下载jar包
    2.jar包资源拿到项目中,add as lib...
        mybatis核心jar包
        mybatis依赖jar包
        数据库的驱动jar
    3.定义mybatis核心配置文件--> 参考文档+官网
    4.定义sql映射文件
        定义要执行的sql语句
    5.jar类中进行测试
        加载核心配置文件
        构建工厂
        获取回话
        执行sql
        处理结果
        关闭回话

三个常用的查询方法 :
    selectOne() 执行指定sql,得到一个结果
    selectList() 执行指定sql,得到一个list集合,如果没查到,返回List中没有数据,但是不是null
    selectMap() 执行指定sql,得到一个Map集合,如果没查到,返回空map
public class Class001_Dept {
    public static void main(String[] args) throws IOException {
        //1.加载mybatis的核心配置文件
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        //2.构建SqlSessionFactory
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);

        //3.根据工厂构建回话
        SqlSession session = factory.openSession();

        //4.执行sql,得到结果
        //selectList("命名空间.id")
        //selectList("命名空间.id",sql语句的实参)
        List<Dept> list =  session.selectList("com.yjxxt.mappers.DeptMapper.queryAll");

        //session.selectOne("命名空间.id");
        //session.selectOne("命名空间.id",sql语句的实参);
        Dept dept = session.selectOne("com.yjxxt.mappers.DeptMapper.queryDeptByNo",20);

        //session.selectMap("命名空间.id","作为key的字段名")
        //session.selectMap("命名空间.id",sql语句的实参,"作为key的字段名")
        Map<String,Dept> map = session.selectMap("com.yjxxt.mappers.DeptMapper.queryAll","dname");

        //5.处理结果
        list.forEach(System.out::println);
        System.out.println(dept);
        System.out.println(map);

        //5.关闭回话
        session.close();
    }
}

2.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">
<!-- mybatis的全局配置文件 -->
<configuration>
<!--
用于指明使用哪一个开发环境
default : 用于指定使用的环境的id属性值
-->
<environments default="ev">
<!-- 用户配置开发环境 id: 环境的唯一标识 -->
<environment id="ev">
<!--
事务管理器
JBDC : 表示采用JDBC一样的事务管理方式
-->
<transactionManager type="JDBC"/>
<!--
用于配置数据库连接吃和数据库连接参数
POOLED : 表示mybatis采用连接池技术
-->
<dataSource type="POOLED">
<property name="driver"
value="oracle.jdbc.driver.OracleDriver"/>
<property name="url"
value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="username" value="SCOTT"/>
<property name="password" value="TIGER"/>
</dataSource>
</environment>
</environments>
<!-- SQL映射文件配置 -->
<mappers>
<!-- 指明SQL映射文件路径 resource : 包路径 com/.../xxxMapper.xml-->
<mapper resource="com/xxxx/mappers/UserMapper.xml"/>
</mappers>
</configuration>

3、Mybatis SQL映射文件

         在Mybatis中,推荐使用mappers作为包名,我们只需要写一个映射配置文件就可以,UserMapper.xml,用于 定义要执行的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">

<mapper namespace="com.xxxx.mappers.UserMapper">

<select id="queryAll" resultType="com.xxxx.pojo.User">
select * from t_user
</select>
</mapper>

跟标签mapper
namespace: 命名空间
注意:不要忘记mybatis核心xml文件中的mapper配置
4.4. 测试
5. Mybatis配置文件详解


5.1. 核心配置文件
1.configuration
配置文件的根元素,所有其他的元素都要在这个标签下使用(dtd文件规定)
2.environments default="environment"
用于管理所有环境, 并可以指定默认使用那个环境,通过defualt属性来指定
3.environment
用来配置环境,id属性用于唯一标识当前环境
4.transactionManager type="JDBC"
用户配置事务管理器
查询标签: select 用于编写查询语句
id : 当前文件中保证唯一
resultType : 结果的类型
parameterType : 入参类型

注意:不要忘记mybatis核心xml文件中的mapper配置

4、三个查询方法

        selectList("命名空间.id") 用户查询多条数据情况,返回一个List集合, 没有查到数据返回空集合,不是 null selectOne("命名空间.id") 用于查询单条数据,返回一个数据, 如果没有查到返回null selectMap("命名空间.id",key的字段名) 用于查询多条记录情况, 返回Map集合, 需要指定那个属性 作为key, sql查询结果作为value,指定的字段值作为key, 如果查不到, 返回一个空map集合,不是null 

package com.xxxx.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
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.xxxx.pojo.User;
public class UserTest {
public static void main(String[] args) throws IOException {
//1.加载核心配置文件
InputStream is = Resources.getResourceAsStream("mybatis.xml");
//2.获取SqlSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//3.获取会话
SqlSession session = factory.openSession();
//4.操作
//1)selectList("namespace.id") 用于查询多条数据,返回一个list集合,如果没有查询到
任数据,返回空集合,不是null
List<User> list =
session.selectList("com.xxxx.mappers.UserMapper.queryAll");
System.out.println(list);
//2)selectOne("namespace.id")
User user = session.selectOne("com.xxxx.mappers.UserMapper.queryById");
System.out.println(user);
//3)selectMap("namespace.id","执行作为key的属性")
Map<Integer,User> map =
session.selectMap("com.xxxx.mappers.UserMapper.queryAll", "id");
System.out.println(map);
//5.关闭session
session.close();
}
}

5、通过properties标签实现软编码

5.1src下定义配置文件db.properties

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:XE
username=SCOTT
password=TIGER

5.2 properties标签 

        mybatis核心配置文件中添加properties标签,指定加载外部的properties文件,注意定义位置

<!-- 加载外部的properties文件 -->
<properties resource="db.properties" />

使用方式

<environments default="even">
<environment id="even">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值