云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > mybatis从入门到精通

mybatis从入门到精通

  • 62 次阅读
  • 3 次下载
  • 2025/5/24 18:01:12

// 根据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从入门到精通 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

// 根据name查询用户信息,得到一条记录的结果 @Test publicvoid findUserByNameTest()throwsIOException{ } // mybatis配置文件 String resource =\; InputStream input =Resources.getResourceAsStream(resource); // 创建会话工厂 SqlSessionFactory sqlSessionFactory =newSqlSessionFactoryBuilder() .build(input); // 通过工厂得到SqlSession SqlS

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com