MyBatis基本使用

MyBatis的简单使用

首先我来介绍一下什么是MyBatis:MyBatis是java的三大框架之一,用来与数据库交互
底层是实现是采用的jdbc,那么我们这边简单的声明一下MyBatis的好处!容易掌握,SQL语句统一管理,写在xml文件中等等….
Mybatis参考资料和jar包
MyBatis参考项目

我们首先需要以下这些类

1.dao(dao接口)
2.entity(实体类)
3.util(抽取出来的工具类)
4.test(测试类)

需要的文件

1.database.properties(连接数据库的参数配置文件)
2.mybatis-config.xml(MyBatis配置文件)

接下来就一个一个的介绍这些文件怎么写:

1.我们首先写database.properties配置文件

#数据库驱动
driver=com.mysql.jdbc.Driver
#连接url
url=jdbc:mysql://127.0.0.1:3306/mycodelibrary?
useUnicode=true&characterEncoding=utf-8
#数据库用户名
user=root
#数据库密码
password=123

2.然后就是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 resource="database.properties"/>
    <!-- 配置MyBatis实现log4j -->
    <settings>
        <!-- 配置mybatis的log实现为LOG4J -->
        <setting name="logImpl" value="LOG4J" />
        <!-- 设置resultMap的自动映射级别为NONE(禁止自动匹配) -->
        <!-- <setting name="autoMappingBehavior" value="NONE" /> -->
    </settings>

        <!--类型别名-->
    <typeAliases>
        <package name="keyboard.entity"/>
    </typeAliases>
    <!-- 配置数据库的环境 -->
    <environments default="mysql_development">
        <environment id="mysql_development">
            <!-- 配置事物管理 -->
           <transactionManager type="JDBC"/>
             <!-- POOLED  UNPOOLED JNDI -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${user}"/>
                <property name="password" value="${password}"/>
            </dataSource>   
        </environment>
    </environments>
    <!-- 引入映射文件 -->
    <mappers>
        <mapper resource="keyboard/dao/UserMapper.xml"/>
    </mappers>

</configuration>

紧接着就是数据库的实体类(entity)

package keyboard.entity;
/**
 * 用户实体类
 * @author 2B键盘
 *
 */
public class User {

    private int id;//id
    private String username;//用户名
    private String password;//密码
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

在这边写完之后我们就可以开始写SQL语句和dao接口了
我们首先来写dao接口

package keyboard.dao;

import java.util.List;
import keyboard.entity.User;
/**
 * 
 * @author 2B键盘
 *
 */
public interface UserMapper {

    /**
     * 添加一条新的用户数据
     * @param username
     * @param password
     * @return null
     */
    public int addUser(User user);
    /**
     * 查询用户数据
     * @param user
     * @return
     */
    public List<User> selectUserData(User user);
}

映射文件xml所有SQL语句都放在这个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命名空间   必须存唯一 
           保证和子元素中id来联合使用区别不同的mapper文件
 --> 
<mapper namespace="keyboard.dao.UserMapper">

    <!-- 保存用户注册数据 -->
    <insert id="addUser" parameterType="User">
        insert into TestDemo(
            username,password   
        )
        value(
            #{username},#{password}
        )
    </insert>

    <!-- 查询用户数据 -->
    <select id="selectUserData" resultType="User">
        select username,`password`
        from userdata
        where username=#{username} and password=#{password}
    </select>
</mapper>

在上面id必须要和dao接口中的方法名一致#{username}和#{password}是实体类(entity)的构造方法和变量名一致

然后我们将常MyBatis常用的语句抽出来单独写成一个类

package keyboard.util;

import java.io.IOException;
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;

public class MyBatisUtil {

    private static SqlSessionFactory factory;

    static{//在静态代码块下factory只会被创建一次
        System.out.println("factory================");
            try {
                InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
                factory = new SqlSessionFactoryBuilder().build(is);
                System.out.println("2");
                System.out.println(factory);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }

    public static SqlSession createSqlSession(){
        return factory.openSession(false);//true为自动提交事务
    }

    public static void closeSqlSession(SqlSession sqlSession){
        if(null != sqlSession){
            sqlSession.close();
        }
    }
}

最后就是测试的时刻了

“`
package keyboard.test;

import java.util.ArrayList;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import org.junit.Test;

import keyboard.dao.UserMapper;
import keyboard.entity.TestDemo;
import keyboard.entity.User;
import keyboard.util.MyBatisUtil;

public class Testone {

private Logger logger = Logger.getLogger(Testone.class);

/**
 * 
 */
@Test
public void one(){
    //创建slqsession对象
    SqlSession sqlSession=null;
    int count=0;
    //list集合存放查询到的数据
    List<User> result=new ArrayList<User>();

    try {

        sqlSession=MyBatisUtil.createSqlSession();

        User a=new User();
        a.setUsername("testusername");
        a.setPassword("testpassword");      result=sqlSession.getMapper(UserMapper.class).selectUserData(a);

        sqlSession.commit();
    }catch(Exception e){
        e.printStackTrace();
    }finally{
        MyBatisUtil.closeSqlSession(sqlSession);
    }

    for(User u : result){
        System.out.println("用户名---------------->"+u.getUsername());
        System.out.println("密码---------------->"+u.getPassword());
    }
}   

}
这样我们就实现了简单的查询了,我写的不怎么清楚,由于第一次写博客大家见谅!在上面我提供了mybatis的jar包和一个mybatis的简单查询,不懂的大家可以看看那个项目,谢谢大家!

MyBatis是一种持久层框架,它可以将SQL语句和Java代码分离,使得数据库操作更加简单、易于维护。下面是MyBatis基本使用: 1. 配置文件:MyBatis的配置文件包含数据库的连接信息、映射文件的位置等信息,需要在应用程序启动时加载。 2. 映射文件:MyBatis的映射文件包含SQL语句和Java对象之间的映射关系,需要在配置文件中指定映射文件的位置。 3. 数据库操作:MyBatis提供了多种方式进行数据库操作,如使用接口和注解等方式。 4. 会话工厂:MyBatis的会话工厂用于创建会话对象,会话对象可以用于执行SQL语句和管理事务等操作。 5. 事务管理:MyBatis的事务管理可以通过配置文件或编程方式进行管理,可以实现自动提交或手动提交事务。 下面是MyBatis基本使用步骤: 1. 编写配置文件,配置数据库连接信息和映射文件位置等信息。 2. 编写映射文件,实现SQL语句和Java对象之间的映射关系。 3. 创建会话工厂对象,通过配置文件构建会话工厂。 4. 创建会话对象,通过会话工厂获取会话对象。 5. 执行SQL语句,通过会话对象执行SQL语句,获取结果。 6. 提交事务,提交执行的SQL语句所在的事务。 7. 关闭会话对象和会话工厂,释放资源。 以上就是MyBatis基本使用步骤,需要注意的是,在使用MyBatis时,需要了解SQL语句的编写和Java对象的映射关系,才能更好地使用MyBatis进行数据库操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值