myBatis的步骤
时间:2022-06-17
本文章向大家介绍myBatis的步骤,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
简介
什么是 MyBatis ?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。
MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,
将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
持久层框架,对jdbc封装,是一个orm 对象关系映射框架,需要使用xml配置文件。
hibernate orm 面向对象--面向关系 全自动的orm映射框架 不需要写sql
jdbc:
1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
2.建立连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/库名","username","password");
3.获取预编译语句
PreparedStatement stmt = conn.preparedStatement("select * from user where username = ?");
4.给占位符赋值
stmt.setString(1,"zhangsan");
5.执行sql
ResultSet rs = stmt.executeQuery();
6.处理结果集
List list = new ArrayList();
while(rs.next()){
User u = new User();
u.setId(rs.getInt("id"));
......
list.add(u);
}
7.关闭结果集
rs.close();
stmt.close();
conn.close();
hibernate: 使用简单 不需要写sql 优化很难
User.java
User.hbm.xml配置文件或者注解进行映射
获取sessionFactory
打开session
String hql = "from User where username=?";
List<User> list = session.createQuery(hql).setParameter(1,"zhangsan").list();
mybatis: orm 半自动的orm框架 需要自定义sql,但是不需要封装结果集
使用myabtis的基本步骤:
1.导入jar
org.mybatis mybatis 3.4.5
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
2.创建myabtis核心配置文件,修改jdbc连接
<?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/java1807"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
3.创建实体类对应的Mapper映射文件
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="mapper.UserMapper">
<select id="selectUser" resultType="com.qy.domain.User">
select * from user where id = #{id}
</select>
</mapper>
4.创建对应的实体类
public class User {
private int id;
private String nickname;
private String password;
private int status;
private int vip;
//省略getter setter
}
5.测试
@Test
public void selectOne() throws Exception{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
try {
User user = (User) session.selectOne("mapper.UserMapper.selectUser", 1);
System.out.println(user.getNickname());
} finally {
session.close();
}
}
- Otter-入门篇2(Manager安装配置)
- Java的字符串常量相关的一个问题
- [喵咪Liunx(3)]端口转发工具rinetd
- 基于PhalApi的Smarty拓展
- PhalGo-参数验证过滤
- [喵咪Redis]Redis配置文件和主从设置
- [喵咪Redis]Redis-Sentinel
- [喵咪Redis]Redis安装与介绍
- [喵咪Liunx(4)Monit进程监控
- 【第四期】GC专题
- ML中相似性度量和距离的计算&Python实现
- ASP.NET MVC Model元数据及其定制: Model元数据的定制
- 小白也可以操作的手机TensorFlow教程:Android版和iOS版
- PhalApi-PHPExcel基于PhalApi的PHPExcel拓展
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 使用Apple Configurator 2提取商店ipa or app文件
- Spring 自动装配模式之byType
- 使用ATOMac进行Mac自动化测试
- 【赵渝强老师】什么是Oracle的数据字典?
- antd 如何在 src目录下 引入 Public 目录下的文件
- (精编)Python与安全(三)SSTI服务器模板注入
- 一年经验Java开发0713面试
- 【分享】MicroBlaze大内部存储器(AXI BRAM)设计
- Spring Beans 自动装配
- Python将txt文件内容转换成列表
- 刷题记录-猿辅导2020
- redis stream(一):stream命令入门
- os.path.basename()
- 利用frida与ida实战脱壳360加固
- 你知道C语言中的危险函数吗?