初识MyBatis

MyBatis的前身是iBatis,本是Apache的一个开源项目。
MyBatis是一个数据持久层(ORM)框架,把实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现。
MyBatis小巧,易学。
基于SQL语法,简单易学。
能了解底层组装过程。
SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度。
程序调试方便。
添加相应的jar包
  【mybatis】
  mybatis-3.1.1.jar
  【MYSQL驱动包】
  mysql-connector-java-5.1.7-bin.jar

在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">

<!-- 通过这个配置文件完成mybatis与数据库的连接 -->
<configuration>
    <!-- 引入 database.properties 文件-->
    <properties resource="database.properties"/>
    <!-- 配置mybatis的log实现为LOG4J -->
    <settings>
        <setting name="logImpl" value="LOG4J" />
    </settings>
    <environments default="development">
        <environment id="development">
            <!--配置事务管理,采用JDBC的事务管理  -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
            <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>

    <!-- 将mapper文件加入到配置文件中 -->
    <mappers>
        <mapper resource="cn/dao/UserMapper.xml"/>
    </mappers>



</configuration>

新建一个表的实体类

package cn.entity;

import java.io.Serializable;

public class UserEntity implements Serializable {
    private int uid;
    private String unama;
    private String upwd;
    /**
     * @return the uid
     */
    public int getUid() {
        return uid;
    }
    /**
     * @param uid the uid to set
     */
    public void setUid(int uid) {
        this.uid = uid;
    }
    /**
     * @return the unama
     */
    public String getUnama() {
        return unama;
    }
    /**
     * @param unama the unama to set
     */
    public void setUnama(String unama) {
        this.unama = unama;
    }
    /**
     * @return the upwd
     */
    public String getUpwd() {
        return upwd;
    }
    /**
     * @param upwd the upwd to set
     */
    public void setUpwd(String upwd) {
        this.upwd = upwd;
    }
    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return "UserEntity [uid=" + uid + ", unama=" + unama + ", upwd=" + upwd
                + "]";
    }

}

在创建一个DAO包在下面创建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="cn.dao.AdminDao">


    <select id="select" resultType="cn.entity.UserEntity" parameterType="String">
    select * from user

    </select>

    <delete id="delete" parameterType="int">
        delete from user where uid=#{uid}
    </delete>

    <update id="update"  parameterType="cn.entity.UserEntity" >
        UPDATE USER set unama=#{unama},upwd=#{upwd} where uid=#{uid}

    </update>
    <insert id="insert" parameterType="cn.entity.UserEntity">

        INSERT INTO `user`(unama,upwd) VALUES(#{unama},#{upwd})
    </insert>
    <select id="likeselect" resultType="cn.entity.UserEntity" parameterType="String">
        select * from user where unama like concat ('%',#{unama},'%')

    </select>

</mapper>

在mybatis-config.xml中注册UserMapper.xml

<mappers>
        <mapper resource="cn/dao/UserMapper.xml"/>
    </mappers>

创建一个Test类测试

package cn.test;


import java.util.List;

import org.apache.ibatis.session.SqlSession;


import cn.dao.AdminDao;
import cn.entity.UserEntity;
import cn.untils.UserUntils;

public class Test {

    public static void main(String[] args) {
        SqlSession session = null;
        try {
            UserEntity entity=new UserEntity();
            session = UserUntils.getSession();
        /*  entity.setUid(1);
            entity.setUnama("benben");
            entity.setUpwd("7818");
            int update1=session.getMapper(AdminDao.class).update(entity);
            System.out.println(update1);*/
            /*int delete=session.getMapper(AdminDao.class).delete(1);
            System.out.println(delete);*/
            /*entity.setUnama("dou");
            entity.setUpwd("love");     
            int insert=session.getMapper(AdminDao.class).insert(entity);
            System.out.println(insert);*/

            /*List<UserEntity> list=session.getMapper(AdminDao.class).likeselect("l");
            for(UserEntity bb:list){
                System.out.println(bb.toString());
            }*/
            session.commit();
            List<UserEntity> list = session.getMapper(AdminDao.class).select();
            for (UserEntity bb : list) {
                System.out.println(bb.toString());
            }
        } catch (Exception e) {
            e.printStackTrace();
            session.rollback();
        } finally {

        }
        UserUntils.closeSession(session);

    }
}

创建一个接口类

package cn.dao;

import java.util.List;

import cn.entity.UserEntity;

public interface AdminDao {
         List<UserEntity> select();

        int delete(int uid);

        int update(UserEntity entity);

        int insert(UserEntity entity);

        List<UserEntity> likeselect(String unama);

}

创建连接

package cn.untils;

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 UserUntils {
    private static SqlSessionFactory sessionFactory;



    static{

        InputStream is=null;
        try {
            is=Resources.getResourceAsStream("mybatis-config.xml"); 
             sessionFactory=new SqlSessionFactoryBuilder().build(is);
        } catch (IOException e) {
            e.printStackTrace();
        }       
        }
    public static SqlSession getSession(){
        SqlSession session=sessionFactory.openSession(false);

        return session;
    }
    public static void closeSession(SqlSession session){
        if(session!=null){
            session.close();
        }
    }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值