快速入门Mybatis完成基本CURD(注解实现)
一.什么是Mybatis?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。
MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
二.Come on
1.新建Project 选择Maven 直接Next 不用选择模板

2.输入名称、公司或组织Id 选择位置 指定版本 Finish

3.选择Enable Auto-Import (启用自动导入)

4.导入坐标

5.添加表
1 DROP TABLE IF EXISTS `user`;
2
3 CREATE TABLE `mybatis`.`user` (
4 `userId` int(0) NOT NULL AUTO_INCREMENT,
5 `userName` varchar(20) NOT NULL,
6 `userSex` varchar(2) NULL,
7 PRIMARY KEY (`userId`)
8 );
6.编写domain层
package cn.lb.domain;
public class User {
private Integer userId;
private String userName;
private String userSex;
public User() {
}
public User( String userName, String userSex) {
this.userName = userName;
this.userSex = userSex;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserSex() {
return userSex;
}
public void setUserSex(String userSex) {
this.userSex = userSex;
}
@Override
public String toString() {
return "User{" +
"userId=" + userId +
", userName='" + userName + '\'' +
", userSex='" + userSex + '\'' +
'}';
}
}
7.编写dao层
1 package cn.lb.dao;
2
3 import cn.lb.domain.User;
4 import org.apache.ibatis.annotations.Delete;
5 import org.apache.ibatis.annotations.Insert;
6 import org.apache.ibatis.annotations.Select;
7 import org.apache.ibatis.annotations.Update;
8
9 import java.util.List;
10
11 public interface IUserDao {
12 /**
13 * 查询所有
14 * @return
15 */
16 @Select("select * from user")
17 List<User> findAllUser();
18
19 /**
20 * 根据Id查询
21 * @return
22 */
23 @Select("select * from user where userId=#{userId}")
24 User findUserById(Integer userId);
25
26 /**
27 * 根据名字查用户
28 * @param userName
29 * @return
30 */
31 @Select("select * from user where userName like #{username}")
32 List<User> findUserByName(String userName);
33
34 /**
35 * 保存用户
36 * @param user
37 */
38 @Insert("insert into user(userName,userSex) values(#{userName},#{userSex})")
39 void saveUser(User user);
40
41 /**
42 * 更新用户
43 * @param user
44 */
45 @Update("update user set userName=#{userName} , userSex=#{userSex} where userId=#{userId}")
46 void updateUser(User user);
47
48 /**
49 * 根据Id删除用户
50 * @param userId
51 */
52 @Delete("delete from user where userId=#{userId}")
53 void deleteUser(Integer userId);
54 }
8.添加Mybatis配置文件
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
3 "http://mybatis.org/dtd/mybatis-3-config.dtd">
4 <configuration>
5
6 <!--配置Properties
7 可以在标签内部配置连接数据库的信息,也可以通过属性引入外部配置文件信息
8 resource属性:用于指定配置文件的位置,是按照类路径的写法来写,并且必须存在于类路径下
9 -->
10
11 <!--引入JdbcConfig配置文件-->
12 <properties resource="jdbcConfig.properties"/>
13
14 <!--配置别名-->
15 <typeAliases>
16 <!--typeAlias用于配置别名 type属性指定的是实体类全限定类名,alias属性指定别名
17 当指定了别名就不区分大小写-->
18 <package name="cn.lb.domain"/>
19 </typeAliases>
20
21 <!-- 配置环境-->
22 <environments default="mysql">
23 <!--配置MySql环境-->
24 <environment id="mysql">
25 <transactionManager type="JDBC"></transactionManager>
26 <dataSource type="POOLED">
27 <property name="driver" value="${jdbc.driver}"/>
28 <property name="url" value="${jdbc.url}"/>
29 <property name="username" value="${jdbc.username}"/>
30 <property name="password" value="${jdbc.password}"/>
31 </dataSource>
32 </environment>
33 </environments>
34
35 <!--指定带注解的包-->
36 <mappers>
37 <!--package标签是用于指定dao接口所在的包 当指定了之后就是不需要写resource或者class或mapper-->
38 <package name="cn.lb.dao"/>
39 </mappers>
40 </configuration>
JdbcConfig配置
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis?characterEncoding=utf8
jdbc.username=root
jdbc.password=1234
9.测试
package cn.lb.test; import cn.lb.dao.IUserDao;
import cn.lb.domain.User;
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 org.junit.After;
import org.junit.Before;
import org.junit.Test; import javax.annotation.PreDestroy;
import java.io.InputStream;
import java.util.List; public class MybatisTest {
private SqlSessionFactory factory;
private SqlSession sqlSession;
private InputStream inputStream;
private IUserDao userDao; @Before
public void init() throws Exception {
inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
factory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = factory.openSession();
userDao = sqlSession.getMapper(IUserDao.class);
} @Test
public void testSave() {
User user = new User("张三", "男");
userDao.saveUser(user);
} @Test
public void testFindAll()
{
List<User> list =userDao.findAllUser();
list.forEach(user-> System.out.println(user));
} @Test
public void testFindById()
{
User user =userDao.findUserById(1);
System.out.println(user);
} @Test
public void testFindByName()
{
List<User> list =userDao.findUserByName("%三%");
} @Test
public void testUpdate()
{
User user =userDao.findUserById(1);
user.setUserName("李四");
userDao.updateUser(user);
System.out.println(userDao.findUserById(1));
} @Test
public void testDelete()
{
userDao.deleteUser(1);
} @After
public void destory() throws Exception {
sqlSession.commit();
sqlSession.close();
inputStream.close();
} }
注意:如果出现无法编译请指定项目编译版本

快速入门Mybatis完成基本CURD(注解实现)的更多相关文章
- 快速入门Mybatis
框架概述 什么是框架 它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题.使用框架的好处:框架封装了很多的细节,使开发者可以使用极简的方式实现功能.大大提高开发效率 三层架构 UI(表现层 ...
- 002-Spring4 快速入门-项目搭建、基于注解的开发bean,Bean创建和装配、基于注解的开发bean,Bean初始化销毁、Bean装配,注解、Bean依赖注入
一.项目搭建 1.项目创建 eclipse→project explorer→new→Project→Maven Project 默认配置即可创建项目 2.spring配置 <dependenc ...
- Mybatis3 快速入门
Mybatis3 快速入门 目前常见的持久层java框架有Hibernate,Mybatis,SpringData.笔者比较喜欢用SpringData.Hibernate 和 Mybatis 也经常用 ...
- Mybatis Plus (特性、快速入门、日志、CRUD)
Mybatis plus 可以节省很多的工作,所有的CRUD JPA yk-mapper Mybatis plus 偷懒的 简介: MyBatis-Plus(opens new window)(简称 ...
- Mybatis框架 的快速入门
MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...
- MyBatis学习总结(一)——MyBatis快速入门
一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...
- MyBatis快速入门
一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...
- MyBatis学习总结(一)——MyBatis快速入门(转载)
本文转载自http://www.cnblogs.com/jpf-java/p/6013537.html MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了 ...
- MyBatis入门学习教程-MyBatis快速入门
一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...
- MyBatis学习总结(一)——MyBatis快速入门
一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...
随机推荐
- 如何用CAN-EYE获取植被参数数据?
本文介绍植被冠层参数计算软件CAN-EYE的具体使用方法. 在文章下载.安装CAN-EYE植被参数工具中,我们介绍了CAN-EYE软件的下载.安装方法:本文就对该软件的具体使用方法进行介绍. ...
- 在centos7上使用 docker安装mongodb挂载宿主机以及创建其数据库的用户名和密码(最新版本)
前言 因为博主在使用docker安装mongodb并挂载时,发现在网上搜了好多都是以前版本的mongodb,并且按照他们操作总是在进入mongodb出问题,博主搞了好久终于弄好了,故写下博客,供有需要 ...
- MVC开发
我们通过前面的章节可以看到:https://www.liaoxuefeng.com/wiki/1252599548343744/1266264917931808 Servlet适合编写Java代码,实 ...
- 高精度减法(C语言实现)
高精度减法(C语言实现) 介绍 众所周知,整数在C和C++中以int ,long,long long三种不同大小的数据存储,数据大小最大可达2^64,但是在实际使用中,我们仍不可避免的会遇到爆long ...
- 神经网络入门篇:详解向量化实现的解释(Justification for vectorized implementation)
向量化实现的解释 先对几个样本计算一下前向传播,看看有什么规律: 公式1.16: \(z^{[1](1)} = W^{[1]}x^{(1)} + b^{[1]}\) \(z^{[1](2)} = W^ ...
- Vue 2.x源码学习:数据响应式改造
内容乃本人学习Vue2源码的一点笔记,若有错误还望指正. 源码版本: vue: 2.6 vue-loader: 13.x vue-template-compiler: 2.6 相关学习笔记: rend ...
- 【随手记录】Llama Tutorial 大语言模型实践
这个tutorial的契机是yy突然看到了一个workshop 所以类似于一周大作业的形式,输入command输出使用了自动驾驶哪些模块,代码在这里 所以就干一干,顺便写一个tutorial给大家参考 ...
- STL set容器
set 使用 set 容器存储的各个键值对,要求键 key 和值 value 必须相等. 举个例子,如下有 2 组键值对数据: {<'a', 1>, <'b', 2>, < ...
- AtCoder Beginner Contest 240 F - Sum Sum Max
原题链接F - Sum Sum Max 首先令\(z_i = \sum\limits_{k = 1}^i y_k\),\(z_0 = 0\),\(z_i\)就是第\(i\)段相同的个数的前缀和. 对于 ...
- 等保测评之主机测评——Centos7
目录 基础信息收集 (一)身份鉴别 (二)访问控制 (三)安全审计 (四)入侵防范 (五)恶意代码防范 (六)可信验证 (七)数据完整性 (八)数据保密性 (九)数据备份恢复 (十)剩余信息保护 命令 ...