第一范文网 - 专业文章范例文档资料分享平台

mybatis从入门到精通

来源:用户分享 时间:2025/7/26 21:08:38 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

// 根据name查询用户信息,得到一条记录的结果 @Test

publicvoid findUserByNameTest()throwsIOException{ }

// mybatis配置文件

String resource =\;

InputStream input =Resources.getResourceAsStream(resource); // 创建会话工厂

SqlSessionFactory sqlSessionFactory =newSqlSessionFactoryBuilder()

.build(input);

// 通过工厂得到SqlSession

SqlSession sqlSession = sqlSessionFactory.openSession(); // 通过SqlSession操作数据库

List list = sqlSession.selectList(\,\李\); System.out.println(list.size()); // 释放资源

sqlSession.close();

3.6 插入用户信息

3.6.1 User.xml映射文件:

insert into user(username,password) value(#{username},#{password})

parameterType:制定输入参数类型是pojo

#{}:中指定pojo属性名,接收到pojo对象的属性值,mybatis通过OGNL获取对象的属性值

3.6.2 测试代码:

@Test

publicvoid insertUserTest()throwsIOException{

// mybatis配置文件

String resource =\;

InputStream input =Resources.getResourceAsStream(resource); // 创建会话工厂

SqlSessionFactory sqlSessionFactory =newSqlSessionFactoryBuilder()

.build(input);

// 通过工厂得到SqlSession

SqlSession sqlSession = sqlSessionFactory.openSession(); // 通过SqlSession操作数据库 User user =newUser(); user.setUsername(\);

}

user.setPassword(\);

sqlSession.insert(\,user); //提交事务

sqlSession.commit(); // 释放资源

sqlSession.close();

3.7 自增主键返回

mysql自增主键,执行insert提交之前自动生成一个自增主键。

通过mysql函数获取到刚刚插入的记录的自增主键 last_insert_id() ,是在insert

之后调用此函数

3.7.1 User.xml映射文件配置:

SELECT LAST_INSERT_ID()

parameterType:制定输入参数类型是pojo

#{}:中指定pojo属性名,接收到pojo对象的属性值,mybatis通过OGNL获取对象的属性值

resultType=\>

insert into user(username,password) value(#{username},#{password})

3.7.2 程序代码中直接获取

@Test

publicvoid insertUserTest()throwsIOException{

// mybatis配置文件

String resource =\;

InputStream input =Resources.getResourceAsStream(resource); // 创建会话工厂

SqlSessionFactory sqlSessionFactory =newSqlSessionFactoryBuilder()

.build(input);

// 通过工厂得到SqlSession

SqlSession sqlSession = sqlSessionFactory.openSession(); // 通过SqlSession操作数据库 User user =newUser(); user.setUsername(\); user.setPassword(\);

sqlSession.insert(\,user);

}

//提交事务

sqlSession.commit();

System.out.println(user.getUid()); // 释放资源

sqlSession.close();

3.8 非自增主键的返回

使用mysql的uuid()函数生成主键,需要修改表中uid字段类型为string,长度为35

执行的思路:

先通过uuid()查询到主键,将主键输入到sql语句中 执行uuid语句的顺序相对于insert语句之前

SELECT uuid()

insert into user(uid,username,password) value(#{uid},#{username},#{password})

3.9 删除和更新用户

delete from user where uid =#{id}

update user set username=#{username},password=#{password} where

uid=#{uid}

3.10 #{}和${}

3.11 mybatis和hibernate的区别

hibernate:是一个标准的ORM框架(对象关系映射)。不需要写sql,都是自动生成的。对sql语句进行优化、修改比较困难

适用于需求变化不多的中小型项目,比如:后台管理项目

mybatis:专注是sql本身,在映射文件中需要程序员自己编写sql语句,优化比较方便。mybatis是一个不完全的ORm框架;虽然程序员自己写sql,也可以实现映射(输入、输出映射)。

适用于需求变化较多的项目,比如:互联网项目。

4、mybatis开发dao两种方法:

1)原始dao开发方法(程序需要编写dao接口和dao实现类) 2)mybatis的mapper接口(相当于dao接口)代理开发方法

4.1 SqlSession使用范围

// mybatis配置文件

String resource =\;

InputStream input =Resources.getResourceAsStream(resource); // 创建会话工厂

SqlSessionFactory sqlSessionFactory =newSqlSessionFactoryBuilder().build(input); // 通过工厂得到SqlSession

SqlSession sqlSession = sqlSessionFactory.openSession();

4.1.1 通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory 4.1.2 通过SqlSessionFactory创建SqlSession,使用单例模式管理sqlsessionFactory

4.1.3 sqlSession是一个面向用户的接口:SqlSession中提供了很多操作数据库的方法;是线程不安全的;Sqlsession最佳适用场合在方法体内,定义成局部变量使用。

4.2 原始dao的开发方法(程序员需要写dao接口和dao实现类) 4.2.1 程序员需要向dao实现类中注入SqlSessionFactory UserDao接口:定义方法(抛异常)

UserDaoImpl类:实现接口UserDao,并通过构造函数的方法向UserDaoImpl类注入SqlSessionFactory;

UserDaoImplTest类:创建SqlSessionFactory实例,在创建UserDao对象 4.2.2 总结原始dao开发问题

搜索更多关于: mybatis从入门到精通 的文档
mybatis从入门到精通.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8xplx253nh5uqa87qzsz8c83h0epg601652_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top