mybatis入门--以新人的角度看问题

mybatis快速入门程序案例


环境准备:eclipse、jdk1.7
内容目录:
1. mybatis简单介绍
2. 快速入门案例
3. 实现对数据库的增删改查(CRUD)


1、mybatis简单介绍:
mybaits是一个持久层框架,对jdbc操作数据库的过程进行了封装。可以简单理解为对数据库的增删改查,基本只用关注sql语句即可,非常方便。

2、快速入门案例:实现对数据库的查询,输出至控制台
mybatis开发过程步骤:先实现功能,不懂没关系,后面再详解。
1、创建数据库
这里写图片描述
创建mybaits数据库及user表,插入三条数据。

2、创建web工程项目,项目名:mybaits
这里写图片描述
项目的目录结构,其中src为源文件,存放类,配置文件等,编译后会形成.classes文件

3、导jar包
最后会上传打包好的常用的jar包。

4、编写sqlMapConfig.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>
    <!-- 这里配置不做解释,作用是引入连接池,与数据库进行连接。
    和spring整合后environments配置将不再使用 -->
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc事务管理 -->
            <transactionManager type="JDBC" />
            <!-- 数据库连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url"
                    value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    <!--此段代码为映射mapper.xml文件-->
    <mappers>
        <mapper resource="com/zixue/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

5、准备POJO类,Mapper接口及sql语句
pojo类:类的属性名与数据库的字段名一致(会自动映射,不一致就要手动映射)
为何要pojo类?因为创建与数据库映射的pojo类,可以实现对属性的封装,调用该类的对象即可拿到该类的所有属性和方法,进而传递至mapper.xml实现对数据库的增删改查。

public class User {
    private Long id;
    private String username;
    private String password;
    get()\set().....方法
}

UserMapper接口:

public interface UserMapper {
    User select(User u);
}

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.zixue.mapper">
    <select id="select" parameterType="com.zixue.pojo.User" resultType="com.zixue.pojo.User">
        select * from user where id = #{id}
    </select>
</mapper>

1、namespcae指向UserMapper.java的存放目录
2、id为接口方法的名称,parameterType为传入参数,resultType为返回值参数,与UserMapper接口一一对应。
这样做法是为了自动映射,实现Mapper动态代理,根据UserMapper接口来创建接口的动态代理对象,相当于程序员只需要关注sql语句本身。其中语句当中“#{}”代表一个占位符,内容可以任意,不过一般为了有意义,常将传入的参数属性填入。也可以用“${}”来拼接sql语句,此时括号中只能是明确的value值

最终目录结构:
这里写图片描述

图中编写了测试类demo.java,用来单元测试,检测代码功能:

public class demo {

    @Test
    public void demo1() throws IOException{

        //创建sqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //加载sqlMapConfig.xml配置文件,由于用IO流获取配置文件,如果未找到文件,需要抛异常。
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        //创建SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        //创建SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行SqlSession对象执行查询,获取结果User
        Object user = sqlSession.selectOne("select", 1L);

        System.out.println(user);

        //释放资源
        sqlSession.close();
    }
}

运行测试类,发现控制台打印如下:
这里写图片描述
实现了对数据库的简单的查询

mybatis的jar包及约束
链接:http://pan.baidu.com/s/1i4AxCFz 密码:y9t4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值