MyBatis——增、删、改、查


第一步:jar包依赖

第二步:写配置文件

MyBatis配置文件:/MyBatis/src/mybatis-config.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">

<!-- xml配置文件包含对MyBatis系统的核心配置 -->
<configuration>

    <!-- 指定MyBatis所有日志的具体实现 -->
    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
    
    <!-- 环境配置,即连接的数据库。 -->
    <environments default="mysql">
        <environment id="mysql">
            <!-- 指定事务管理类型,type="JDBC"指直接简单使用JDBC的提交和回滚设置 -->
            <transactionManager type="JDBC"/>
            <!-- dataSource指数据源配置,POOLED是JDBC连接对象的数据源连接池的实现 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    
    <!-- mapper告诉了MyBatis去哪找持久化类的映射文件 -->
    <mappers>
        <mapper resource="com/web/mybatis/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

日志输出配置文件:/MyBatis/src/log4j.properties

#全局的日志配置
log4j.rootLogger=ERROR, stdout
#MyBatis的日志配置
log4j.logger.com.web.mybatis.mapper.UserMapper=DEBUG
#控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

第三步:将要与数据库表映射的对象类

/MyBatis/src/com/web/mybatis/domain/User.java

package com.web.mybatis.domain;

public class User {
    private Integer id;
    private String name;
    private String sex;
    private Integer age;
    
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", sex=" + sex + ", age=" + age + "]";
    }
    public User() {
        super();
    }
    public User(Integer id, String name, String sex, Integer age) {
        super();
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
  //忽略getter和setter方法
    
}

第四步:封装读取配置文件mybatis-config.xml,根据文件信息创建SqlSessionFactory对象,再获取SqlSession对象

/MyBatis/src/com/web/mybatis/factory/FKSqlSessionFactory.java

package com.web.mybatis.factory;

import java.io.InputStream;

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

/**
 * 封装读取配置文件mybatis-config.xml,
 * 根据文件信息创建SqlSessionFactory对象,
 * 再获取SqlSession对象
 * */
public class FKSqlSessionFactory {
    private static SqlSessionFactory sqlSessionFactory = null;
    //初始化创建SqlSessionFactory对象
    static {
        try {
            //读取mybatis-config.xml文件
            InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
            //初始化mybatis,创建SqlSessionFactory类的实例
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
    //获取SqlSession对象的静态方法
    public static SqlSession getSqlSession() {
        return sqlSessionFactory.openSession();
    }
    //获取SqlSessionFactory的静态方法
    public static SqlSessionFactory getSqlSessionFactory() {
        return sqlSessionFactory;
    }
}

第五步:Mapper.xml文件

/MyBatis/src/com/web/mybatis/mapper/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">

<mapper namespace="com.web.mybatis.mapper.UserMapper">
    <!-- parameterType属性指定插入时使用的参数类型     useGeneratedKeys="true"表示使用数据库自动增长策略,需要底层数据库支持 -->
    <insert id="saveUser" parameterType="com.web.mybatis.domain.User">
        INSERT INTO tb_user(id,name,sex,age) VALUES(#{id},#{name},#{sex},#{age})
    </insert>
    <select id="selectUser" parameterType="int" resultType="com.web.mybatis.domain.User">
        SELECT * FROM tb_user WHERE id=#{id}
    </select>
    <update id="modifyUser" parameterType="com.web.mybatis.domain.User">
        UPDATE tb_user SET name=#{name},sex=#{sex},age=#{age} WHERE id=#{id}
    </update>
    <delete id="removeUser" parameterType="com.web.mybatis.domain.User">
        DELETE FROM tb_user WHERE id=#{id}
    </delete>
</mapper>

第六步:测试

/MyBatis/src/com/web/mybatis/test/test.java

package com.web.mybatis.test;

import org.apache.ibatis.session.SqlSession;

import com.web.mybatis.domain.User;
import com.web.mybatis.factory.FKSqlSessionFactory;

public class test {
    //插入数据测试
    public static void InsertTest() {
        //获得Session实例
        SqlSession session = FKSqlSessionFactory.getSqlSession();
        //创建User对象
        User user = new User(2,"jack","男",10);
        //插入数据
        session.insert("com.web.mybatis.mapper.UserMapper.saveUser", user);
        //提交事务
        session.commit();
        //关闭Session
        session.close();
    }
    //查询测试
    public static void SelectTest() {
        //获得Session实例
        SqlSession session = FKSqlSessionFactory.getSqlSession();
        //根据id查询User对象
        User user = session.selectOne("com.web.mybatis.mapper.UserMapper.selectUser", 1);
        System.out.println(user.toString());
        //提交事务
        session.commit();
        //关闭Session
        session.close();
    }
    //修改测试
    public static void UpdateTest() {
        //获得Session实例
        SqlSession session = FKSqlSessionFactory.getSqlSession();
        //根据id查询User对象
        User user = session.selectOne("com.web.mybatis.mapper.UserMapper.selectUser", 1);
        //修改User对象的属性值
        user.setName("Tom");
        user.setAge(30);
        //修改User对象
        session.update("com.web.mybatis.mapper.UserMapper.modifyUser", user);
        //提交事务
        session.commit();
        //关闭Session
        session.close();
    }
    //删除测试
    public static void DeleteTest() {
        //获得Session实例
        SqlSession session = FKSqlSessionFactory.getSqlSession();
        //根据id删除User对象
        session.delete("com.web.mybatis.mapper.UserMapper.removeUser", 1);
        //提交事务
        session.commit();
        //关闭Session
        session.close();
    }
    public static void main(String[] args) {
//        InsertTest();
//        SelectTest();
//        UpdateTest();
//        DeleteTest();
    }

}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM