mybatis_简单使用(1)

mybatis的编写流程

1.dao:编写功能接口,并通过注解配置SQL语句
2.配置:编写核心配置文件SqlMapConfig.xml,用于配置数据源,用于加载接口
3.测试:编写Mybatis框架测试代码

在这里插入图片描述
在这里插入图片描述

入门小案例

案例需求:查询user表中所有的用户信息
环境:1.创建maven项目导入mybatis的pom包 2.创建数据库和表 3.编写连接db的xml核心配置文件 4.编写mapper功能接口 和user对象 5.测试类

1

<dependencies>
        <!-- mybatis核心依赖 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
            <version>4.1.5</version>
        </dependency>
        <!-- mysql连接依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.5</version>
        </dependency>

        <!-- junit测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>

        <!-- log4j日志依赖 -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>

2

CREATE DATABASE day20200917mybatis

CREATE TABLE `user` (
  `uid` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `username` VARCHAR(32) NOT NULL COMMENT '用户名称',
  `birthday` DATE DEFAULT NULL COMMENT '生日',
  `sex` CHAR(1) DEFAULT NULL COMMENT '性别',
  `address` VARCHAR(256) DEFAULT NULL COMMENT '地址'
);
-- 测试数据
INSERT INTO `user`(`uid`,`username`,`birthday`,`sex`,`address`) VALUES ( NULL,'zhangsan','1999-09-09','男','北京');
 
INSERT INTO `user`(`uid`,`username`,`birthday`,`sex`,`address`) VALUES ( NULL,'lisi','2000-01-01','女','上海');

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>
    <!--引入jdbc属性配置-->
    <properties resource="jdbc.properties"></properties>

    <!--mybatis的核心环境配置-->
    <environments default="development">
        <environment id="development">
            <!--
             在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]"):
             JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施
             MANAGED – 这个配置几乎没做什么
             -->
            <transactionManager type="JDBC"/>
            <!--type可选值:UNPOOLED 不使用连接池
                          POOLED使用连接池
                          JNDI 从配置好的JNDI数据源获取连接池-->
            <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>

    <mappers>
        <package name="com.czxy.dao"/>
    </mappers>

</configuration>

4

package com.czxy.dao;

import com.czxy.domain.User;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface UserDao {
    //模糊查询
    @Select("select * from user where username like #{username}")
    public List<User> findusername(@Param("username") String username);

    //查询所有
@Select("select * from user")
    public List<User>finAllUser();

//插入数据
    @Insert("insert into  user(username,birthday,sex,address) values (#{username},#{birthday},#{sex},#{address})")
    public void insert(User user);
//删除数据
    @Delete("delete from user where uid=#{uid}")
    public void delete(@Param("uid") Integer uid);
//修改数据
@Update("update user set address=#{address} where uid=#{uid}")
    public void updata(@Param("address") String address,@Param("uid")Integer uid);
}

5

这里需要使用MyBatis提供的API来获取UserMapper接口的实现类对象,步骤如下
资源:通过XML配置文件得到IO流对象;
工厂:创建构造者对象,使用IO流对象调用构造者对象的构造方法得到工厂对象;
会话:调用工厂的openSession()方法得到会话对象;
DAO:调用会话方法的getMapper()方法得到DAO接口的实现类对象

package com.czxy.Test;

import com.czxy.dao.UserDao;
import com.czxy.domain.User;
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 org.junit.jupiter.api.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List;

public class findAllUser   {
    //1.加载配置文件  得到连接工厂 获取连接
    static InputStream is;

    static {
        try {
            is = Resources.getResourceAsStream("mybatis-config.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    static SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
   static SqlSession sqlSession = factory.openSession();
    //2.获取对应mapper对象
    static UserDao mapper = sqlSession.getMapper(UserDao.class);

    /**
     * 查询所有user
     * @throws IOException
     */
    @Test
public void findAllUser() throws IOException {
        //3.执行查询
        List<User> list = mapper.finAllUser();

        for (User user : list) {
            System.out.println(user);
        }

        //4.关闭资源
        sqlSession.close();
    }

    /**
     * 模糊查询username
     */
    @Test
    public void findusername(){
     List<User> user = mapper.findusername("%lis%");
        System.out.println(user);
        sqlSession.close();
    }

    /**
     * 添加user对象到表中
     */
    @Test
    public void insertuser(){
        User user = new User(null, "jack", new Date(), "男", "江苏");
        mapper.insert(user);
         sqlSession .commit();
        sqlSession.close();
    }

    /**
     * 删除
     */
    @Test
public void delete(){
mapper.delete(3);
sqlSession.commit();
sqlSession.close();

}

    /**
     * 修改
     */
    @Test
public void update(){
        mapper.updata("重庆",2);
    sqlSession.commit();
    sqlSession.close();

}


}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值