Mybatis

1.什么是 MyBatis?

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

mybatis架构

SqlMapConfig.xml(名称不固定),配置内容:数据源、事务、properties、typeAliases、settings、mapper配置。

SqlSessionFactory--会话工厂,作用是创建SqlSession,实际开发中以单例模式管理 SqlSessionFactory。

SqlSession--会话,是一个面向用户(程序员)的接口,使用mapper代理方法开发是不需要程序员直接调用sqlSession的方法。是线程不安全,最佳适用场合方法体内。

mybatis 核心配置文件

<?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><!-- 配置 -->
   <properties/><!-= 属性 -->
   <settings /><!-- 设置 -->
   <typeAliases /><!-- 类型命名-->
   <typeHandlers /><!-- 类型处器-->
   <cobjectFactory /><!-- 对象工厂-->
   <plugins /><!-- 插件-->
   <environments><!-- 配置环境-->
      <environment><!-- 环境变量 -->
            <transactionManager /><!-- 事务管理器 -->
            <datasource /><!-- 数据源-->
      </environment>
   </environments>
   <databaseIdprovider /><!-- 数据厂商标识 -->
   <mappers /><!-- 射器 -->
</configuration>
<?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>
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="jdbc"></transactionManager>
            <dataSource type="pooled">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mydb"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
        <environment id="oracle">
            <transactionManager type=""></transactionManager>
            <dataSource type=""></dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper class="com.dao.UserDao"></mapper>
    </mappers>
</configuration>

实体类

package com.bean;
 
public class ClassInfo {
    private Integer cid;
    private String cname;
    private String cinfo;
 
    public Integer getCid() {
        return cid;
    }
 
    public void setCid(Integer cid) {
        this.cid = cid;
    }
 
    public String getCname() {
        return cname;
    }
 
    public void setCname(String cname) {
        this.cname = cname;
    }
 
    public String getCinfo() {
        return cinfo;
    }
 
    public void setCinfo(String cinfo) {
        this.cinfo = cinfo;
    }
 
    @Override
    public String toString() {
        return "ClassInfo{" +
                "cid=" + cid +
                ", cname='" + cname + '\'' +
                ", cinfo='" + cinfo + '\'' +
                '}';
    }
}

创建接口类

sql语句

测试类

全查

 //全查
    @Test
    public void testselect(){
        List<ClassInfo> userList= userDao.selectAll();
        for (ClassInfo classInfo:userList){
            System.out.println(classInfo);
        }
    }

单查

 
    @Test
    public  void testid(){
        ClassInfo classInfo=userDao.selectid(101);
        System.out.println(classInfo);
    }

新增

//添加
    @Test
    public void testadd(){
        ClassInfo classInfo=new ClassInfo();
        classInfo.setCname("xx");
        classInfo.setCinfo("xx");
        int a=userDao.add(classInfo);
        if (a>0){
            System.out.println("添加成功");
        }else {
            System.out.println("添加失败");
        }
    }

删除

//删除
    @Test
    public void testdede(){
        int a=userDao.delete(104);
        if (a>0){
            System.out.println("删除成功");
        }else {
            System.out.println("删除失败");
        }
    }

mybatis映射文件

 
    <update id="update" parameterType="com.zhao.bean.Student">
        update student set name=#{name},age=#{age},gender=#{gender},score=#{score} where id=#{id};
    </update>

一对多查询

sql语句

测试类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值