快速入门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可以 ...
随机推荐
- poj2279
Mr. Young's Picture Permutations Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5841 ...
- 麒麟系统开发笔记(十三):在国产麒麟系统上编译OSG库、搭建基础开发环境和移植测试Demo
前言 在国产麒麟系统上实现C++三维仿真,使用OSG技术,其他基于web的技术也是可以但是交互上鼠标拽托等交互相对差一些,所以这块需要斟酌选择到底是何种技术来取舍. 本篇在厂家指定的麒麟系统上编 ...
- P1126 机器人搬重物 题解
Problem 题目概括 $n \times m $ 的网格,有些格子是障碍格.\(0\) 无障碍,\(1\) 有障碍.机器人有体积,总是在格点上. 有5种操作: 向前移动 \(1/2/3\) 步 左 ...
- 2023-11-11:用go语言,字符串哈希+二分的例题。 给定长为 n 的源串 s,以及长度为 m 的模式串 p, 要求查找源串中有多少子串与模式串匹配, s‘ 与 s 匹配,当且仅当 s‘ 与 s
2023-11-11:用go语言,字符串哈希+二分的例题. 给定长为 n 的源串 s,以及长度为 m 的模式串 p, 要求查找源串中有多少子串与模式串匹配, s' 与 s 匹配,当且仅当 s' 与 s ...
- Python学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
def SlowSnail(score): name = input('请输入姓名:') if score >= 90: grade = 'A' elif score >= 60: gra ...
- H.264 和 H.265对比
前言 H.264标准正式发布于2003年3月,距今已经20多年了,但它仍然是当下最流行的视频编解码标准. H.265正式发布于2013年4月.虽然H.265标准是围绕着H.264进行制定的,也保留了原 ...
- 自学day7 数组
typora-copy-images-to: media 数组 一.概念 对象中可以通过键值对存储多个数据,且数据的类型是没有限制的,所以通常会存储一个商品的信息或一个人的信息: var obj = ...
- 用友NCC&WMS&泛微 系统对接案例分享
用户故事 产品版本:NCC2105 故事是这么开始的,用友全国伙伴社区的社区成员,对我们的多系统集成架构很感兴趣,经常跟我讨论相关系统集成层面的问题:随着企业的发展,由于信息产业的技术含量高,信息系统 ...
- 用友NCC产品API使用指南
轻易云用友NCC产品API集成专题 open api简介 Open API即开放API,也称开放平台. 所谓的开放API(OpenAPI)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成 ...
- Mysql中的FOREIGN_KEY_CHECKS方法【外键约束作用】
一.命令行 首先FOREIGN_KEY_CHECKS方法的作用是用来启动和关闭外键约束的方法. 二.外键约束 即数据库中两个数据表之间的某个列建立的一种联系.MySQL通过外键约束的引入,可以使得数据 ...