Mybatis开端

Mybatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架,几乎消除了所有JDBC代码和参数的设计及结果集的检索。


什么是持久化?
数据从瞬时状态变为持久状态。持久化过程如写入文件,写入数据库。原来放到缓存中,下次访问就没有了。
什么叫持久层?
完成持久化工作的代码块。也叫dao层。


Mybatis就是帮助程序员将数据存放到数据库中和从数据库取数据。传统的JDBC操作有很多重复的代码块,比如数据取出时的封装,数据库的建立连接等等。使用Mybatis可以减少重复的代码,提高开发效率。
Mybatis是一个半自动化的ORM框架。
为什么是半自动化?
因为Mybatis还要手动写SQL语句,所以不是全自动化。
ORM释义?
Object–Relation–Mapping。
对象关系映射.将对象转化为关系的一个过程。现在的数据库基本都是关系型数据库。


JDBC就是一个Java项目,所以单独演示Mybatis建Java工程既可。
Mybatis第一个Hello案例:
Mybatis的中文文档(准备开始)写的很好。
步骤:

1 . 导入相关的jar包
核心jar包 依赖jar包 和数据库jar包
mybatis3.30下载后有个核心包,lib里是依赖包,
mybatis3.3.1下载后只提供了核心包和核心源码包

2 . 看文档模板写mybatis核心配置文件,一般这种框架核心配置文件放在src下比较好,Spring mvc默认在web-INF下都要修改配置。

<?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>
    <environments default="development">
    <environment id="development">
    <transactionManager type="JDBC"/>
    <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/test"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </dataSource>
    </environment>
</environments>
<!-- 匹配映射文件 -->
<mappers>
<mapper resource="cn/sxt/entity/user.mapper.xml"/>
</mappers> 
</configuration>

3 . 从xml创建SqlSessionFactory以及获得SqlSession
看文档,最好把这个创建的过程封装

package cn.sxt.util;

import java.io.IOException;
import java.io.Reader;

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 {

    public static SqlSessionFactory getSqlSessionFactory() throws IOException{
        String resource = "mybatis.cfg.xml";
        Reader reader = Resources.getResourceAsReader(resource);
        SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
        return  sqlMapper;
    }
    public  static SqlSession getSqlSession() throws IOException{
        SqlSession session = getSqlSessionFactory().openSession();
        return session;
    }
}

4 . 创建实体类

package cn.sxt.entity;

public class User {
    private int id;
    private String name;
    private String pwd;
    //省略set/get方法

5 .编写sql语句的映射文件

<?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.sxt.entity.UserMapper">
<select id="selectUser" parameterType="int" resultType="cn.sxt.entity.User">
select * from User where id = #{id}
</select>
</mapper>

6 . 测试

public class Test {


    public static void main(String[] args) throws IOException {
        SqlSession  sqlSession=MyBatisUtil.getSqlSession();
         //映射文件的namespace加id
         User  user= sqlSession.selectOne("cn.sxt.entity.UserMapper.selectUser",1);
         System.out.println(user.getName());
    }

}

调试记载:

1 . 核心配置文件datasource中的driver名称。找到mysql jar包下的jdbc
包下的Driver.class右键copy qualified name获取类全名复制后去掉.class即可

2 . mysql url:
jdbc:mysql://localhost:3306/数据库名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值