mybatis入门配置案例

一、配置数据库

0.导入jar包
导入jar包

  1. 将数据库配置文件放到JDBC.properties中

  2. 在src下创建conf.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>
    <!-- 数据源的加载 -->
    <!-- 
    加载数据库配置信息
    JDBC.properties:
        driverClassName=com.mysql.jdbc.Driver
        url=jdbc\:mysql\://localhost\:3306/mydb
        user=root
        password=root
    -->
    <properties resource="JDBC.properties"></properties>
    <environments default="development">
        <!--environment 表示一个数据库连接 可以配置多个数据库连接 -->
        <environment id="development">
            <!--transactionManager 事务管理器 两种type类型 一般选择 JDBC -->
            <transactionManager type="JDBC" />
            <!-- 数据源 -->
            <!-- jdbc四大连接参数 -->
            <dataSource type="POOLED">
                <!-- 驱动名称 -->
                <property name="driver" value="${driverClassName}" />
                <!-- url请求地址 -->
                <property name="url" value="${url}" />
                <property name="username" value="${user}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!-- 映射注册 include -->
        <!-- resource 全路径 -->
        <mapper resource="cn/wang/domain/UserMapper.xml" />
    </mappers>
</configuration> 

二、配置实例类映射

1.XML方式实现

(1)定义SQL映射XML文件
文件名一般为 XxxMapper.xml
e.g.:UserMapper.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="cn.wang.domain.UserMapper">
    <!-- id标识 语句的唯一性 -->
    <!-- resultType 全类名 -->
    <select id="findAll" resultType="cn.wang.domain.User">
        SELECT * FROM t_user
    </select>
    <!-- add添加 -->
    <!-- parameterType表示参数类型 全类名 -->
    <!-- 设置参数 用#{属性名称}表示值的获取 -->
    <insert id="add" parameterType="cn.wang.domain.User">
        insert into t_user
        (username,password,adress) values(#{username},#{password},#{adress})
    </insert>
    <delete id="deleteById" parameterType="java.io.Serializable">
        delete from t_user where
        uid=#{uid}
    </delete>
    <update id="update" parameterType="cn.wang.domain.User">
        update t_user set
        username=#{username},password=#{password},adress=#{adress} where uid=#{uid}
    </update>
    <select id="findById" resultType="cn.wang.domain.User"
        parameterType="java.io.Serializable">
        select * from t_user where uid=#{uid}
    </select>
</mapper>

(2)在配置文件conf.xml中注册映射接口

<mappers>
        <!-- 映射注册 include -->
        <!-- resource 全路径 -->
        <mapper resource="cn/wang/domain/UserMapper.xml" />
    </mappers>

2.注解方式实现

在方法上添加注解

package cn.wang.dao;

import java.io.Serializable;
import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import cn.wang.domain.User;

public interface UserDao {
    @Select("SELECT * FROM t_user")
    List<User> findAll();

    @Insert("insert into t_user(username,password,adress) values(#{username},#{password},#{adress})")
    void add(User user);

    @Delete("delete from t_user where uid=#{uid}")
    void deleteById(Serializable id);

    @Update("update t_user set username=#{username},password=#{password},adress=#{adress} where uid=#{uid}")
    void update(User user);

    @Select("select * from t_user where uid=#{uid}")
    User findById(Serializable id);
}

三、编写utils类

package cn.wang.utils;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisUtils {
    private static SqlSessionFactory sessionFactory=null;
    static{
        //读取配置文件
        InputStream in=MyBatisUtils.class.getResourceAsStream("/conf.xml");
        //获取sessionFactory
        sessionFactory=new SqlSessionFactoryBuilder().build(in);
    }
    public static SqlSession getSession(){
        //获取session
        return sessionFactory.openSession();
    }
}

四、mybatis实现crud

package cn.wang.dao;

import java.io.Serializable;
import java.util.List;

import org.apache.ibatis.session.SqlSession;

import cn.wang.domain.User;
import cn.wang.utils.MyBatisUtils;

public class UserDaoImpl implements UserDao {

    @Override
    public List<User> findAll() {
        // 获取session
        SqlSession session = MyBatisUtils.getSession();
        // 获取mapper
        UserDao mapper = session.getMapper(UserDao.class);
        // 查询所有用户
        List<User> list = mapper.findAll();
        // 关闭资源
        session.close();
        // 返回结果
        return list;
    }

    @Override
    public void add(User user) {
        // 获取session
        SqlSession session = MyBatisUtils.getSession();
        // 获取mapper
        UserDao mapper = session.getMapper(UserDao.class);
        // 添加用户
        mapper.add(user);
        // 提交事务
        session.commit();
        // 关闭资源
        session.close();
    }

    @Override
    public void deleteById(Serializable id) {
        // 获取session
        SqlSession session = MyBatisUtils.getSession();
        // 获取mapper
        UserDao mapper = session.getMapper(UserDao.class);
        // 删除用户
        mapper.deleteById(id);
        // 提交事务
        session.commit();
        // 关闭资源
        session.close();
    }

    @Override
    public void update(User user) {
        // 获取session
        SqlSession session = MyBatisUtils.getSession();
        // 获取mapper
        UserDao mapper = session.getMapper(UserDao.class);
        // 修改用户
        mapper.update(user);
        // 提交事务
        session.commit();
        // 关闭资源
        session.close();
    }

    @Override
    public User findById(Serializable id) {
        // 获取session
        SqlSession session = MyBatisUtils.getSession();
        // 获取mapper
        UserDao mapper = session.getMapper(UserDao.class);
        // 根据ID查询
        User user=mapper.findById(id);
        // 关闭资源
        session.close();
        return user;
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值