java框架Mybatis的第一个程序
1:什么是MyBatis
MyBatis 是一款优秀的持久层框架
MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程
MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类映射成数据库中的记录。
简化了JDBC的操作
Mybatis官方文档 : http://www.mybatis.org/mybatis-3/zh/index.html 多看官方文档
介绍一下Mybatis的优点:简单 上手难度小 解耦合 使用人数多
开始我们第一个Mybatis程序需要准备什么环境搭建
1:jdk8或以上- maven- idea- mysql
开始我的的第一步 :先准备数据库数据
开始我们的第二步:maven项目里面导入mysql依赖(我使用的是8.0以上的mysql) :
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
2:再导入mybatis依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
3:第三步开始:编写MyBatis核心配置文件:(可以查看官方文档参考):
<configuration>
<properties resource="db.properties">
</properties>
<typeAliases>
<package name="com.kuang.jieko"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com\kuang\day1\UserMapper.xml"></mapper>
</mappers>
</configuration>
因为我这边使用了roperties 来从外部导入的资源文件
资源文件:因为我是mysql8.0所以加了时区 8.0一下把去掉即可
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/luyunjie?useSSL=false&useUnicode=false&characterEncoding=UTF-8&serverTimezone=UTC
username=root
password=5825600
配置实体类和接口:我这边使用的是lombok工具所以可以不用重新构造方法 set get方法 toString方法
import lombok.Data;
@Data
public class User {
private int id;//这边的属性名字最好和数据库里面的数据名字一样
private String name;
private String pwd;
lombok工具:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
</dependency>
写一个工具类来简化操作:(因为看的狂神mybatis视频 所以工具类几乎一模一样 )
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取SqlSession连接
public static SqlSession getSession(){
return sqlSessionFactory.openSession();//这里可以填true 默认为false 这里可以设置自动提交事务
}
}
然后写接口方法:
public interface UserMapper {
//查询
List<User> getUserList();
}
最好在写接口的包中再写Mapper.xml配置文件 来执行mysql语句:
<?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">
<!--绑定对应的Dom-- 后面这个namespace绑定接口的地址>
<mapper namespace="com.kuang.day1.UserMapper">
<select id="getUserList" resultType="User">
select * from user
</select>
</mapper>
也可以使用注解来执行mysql语句:
public interface UserMapper {
@Select("select *from user")
List<User> getUserList();//但写不了复杂的sql语句
}
最后一步编写测试类:(我使用的是junit驱动 )
public class UserDaoTset {
@Test
public void test(){
SqlSession sqlSession= MybatisUtils.getSession();
UserMapper userDao=sqlSession.getMapper(UserMapper.class);
List<User> userList = userDao.getUserList();
for (User user : userList){
System.out.println(user);
}
sqlSession.close();
}
}
junit驱动:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
java小白刚学mybatis 有些写的不好的地方多多包涵!
java框架Mybatis的第一个程序的更多相关文章
- java提前工作、第一个程序
java提前工作 我们学习编程肯定会 运用到相应的软件 在这里 我个人推荐 eclipse.idea 这里的软件呢 都是用我们的java编程出来的,那它也需要用java来支持他的开发环境 这里就运用到 ...
- mybatis入门-第一个程序
今天,我们就一起来完成mybatis的第一个小demo,使用mybatis对我们的数据库进行一个小小的操作. 需求 根据用户id查询用户的信息. 环境搭建 java环境:jdk1.7版本 开发工具:e ...
- java框架-Mybatis
一.Mybatis介绍 mybatis是一个持久层的框架,是对JDBC操作数据库的封装,使开发者只需要关注业务本身,不需要花费精力去处理加载驱动.创建数据库连接对象.创建statement语句对象.参 ...
- mybatis的第一个程序
程序结构图: 表结构: 创表sql: CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varch ...
- 【mybatis源码学习】调试mybatis的第一个程序
[一].基础知识准备 mybatis-config.xml配置文件的结构 MyBatis配置文件中大标签configuration下子标签包括: configuration |--- properti ...
- java框架---->mybatis的使用(一)
这里我们记录一些mybatis的一些常用知识和项目中遇到的问题总结.快乐人生的三个必要元素是,有要做的事.热爱的事及盼望的事. mybatis的一些知识 一.mybatis插入返回主键值 插入的jav ...
- Java框架-MyBatis三剑客之MyBatis Generator(mybatis-generator MBG插件)详解
生成器设计思路: 连接数据库 -> 获取表结构 -> 生成文件 1 下载与安装 官网文档入口 最方便的 maven 插件使用方式 贴至pom 文件 2 新建配置文件 填充配置信息(官网示例 ...
- 流行的9个Java框架介绍: 优点、缺点等等
流行的9个Java框架介绍: 优点.缺点等等 在 2018年,Java仍然是世界上最流行的编程语言.它拥有一个巨大的生态系统,在全世界有超过900万Java开发人员.虽然Java不是最直接的语言,但是 ...
- 第一个基础框架 — mybatis框架 — 更新完毕
1.Mybatis是什么? 百度百科一手 提取一下重点: MyBatis 本是apache的一个开源项目iBatis.即:mybatis的原名为:ibatis 2010年迁移到google code, ...
- Java数据持久层框架 MyBatis之背景知识二
对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...
随机推荐
- 我看懂了oracle中pivot行转列的用法
我看懂了PIVOT的用法 用法Select * From 表名,PIVOT( SUM('要合并的列1'),MAX('要合并的列2'),....FOR 将值转换成列的列名 IN(列名1,列名2,列名3 ...
- Go方法特性详解:简单性和高效性的充分体现
本文深入探讨了Go语言中方法的各个方面,包括基础概念.定义与声明.特性.实战应用以及性能考量.文章充满技术深度,通过实例和代码演示,力图帮助读者全面理解Go方法的设计哲学和最佳实践. 关注[TechL ...
- iframe用的场景
iframe可用在以下几个场景中: 1:典型系统结构,左侧是功能树,右侧就是一些常见的table或者表单之类的.为了每一个功能,单独分离出来,采用iframe. 2:ajax上传文件. 3:加载别的网 ...
- 网格布局grid
起因 昨天面试的时候,出了一道面试题,模拟面试公司的列表的元素宽度伸缩变化,根据屏幕大小的不同,一行上放置最多的元素,元素宽度不固定,间距固定,可换行,靠左对齐,当时猜出来用flexjs监听resiz ...
- 一文读懂计算机底层网络原理,包括TCP、UDP、header,什么是包、帧、段等关键问题
说到计算机网络原理,大家可能马上联想到,七层协议,传输层,链路层,三次握手四次挥手:前端的同学,还会想到我们用Crome F12的network里面的headers,状态码等.后端同学可能会联想到,抓 ...
- 理解maven命令package、install、deploy的联系与区别(转)
https://blog.csdn.net/zhaojianting/article/details/80324533 我们在用maven构建java项目时,最常用的打包命令有mvn package. ...
- JVM核心知识体系(转)
1.问题 1.如何理解类文件结构布局? 2.如何应用类加载器的工作原理进行将应用辗转腾挪? 3.热部署与热替换有何区别,如何隔离类冲突? 4.JVM如何管理内存,有何内存淘汰机制? 5.JVM执行引擎 ...
- 一个java文件的JVM之旅
准备 我是小C同学编写得一个java文件,如何实现我的功能呢?需要去JVM(Java Virtual Machine)这个地方旅行. 变身 我高高兴兴的来到JVM,想要开始JVM之旅,它确说:&quo ...
- zookeeper源码(04)leader选举流程
在"zookeeper源码(03)集群启动流程"中介绍了leader选举的入口,本文将详细分析leader选举组件和流程. leader选举流程(重要) quorumPeer的st ...
- AtCoder Beginner Contest 328 (ABC328)
A. Not Too Hard 模拟. Code B. 11/11 模拟. Code C. Consecutive Description 给你一个字符串 \(S\),有 \(Q\) 次询问,每次输入 ...