mybatis实现最简单的增删改查
更多精彩文章欢迎关注公众号“Java之康庄大道”

1.数据库设计

2.项目结构(针对User不用管Blogger)

User.java
package com.yunqing.mybatis.bean;
public class User {
private Integer id;
private String name;
private String gender;
private String email;
//构造函数
public User() {
}
//带参构造函数
public User(Integer id, String name, String gender, String email) {
this.id = id;
this.name = name;
this.gender = gender;
this.email = email;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", gender='" + gender + '\'' +
", email='" + email + '\'' +
'}';
}
}
UserMapper.java接口类
package com.yunqing.mybatis.dao; import com.yunqing.mybatis.bean.User;
import org.apache.ibatis.annotations.Select; import java.util.List; public interface UserMapper {
//这种写法可以用于简单的sql操作,复杂的请写在sql的xml映射文件中
@Select("select * from t_user")
List<User> getAllUser(); User getUserById(Integer id);
//mybatis的增删改可以定义Integer|Long|boolean三种返回值类型
void insertUser(User user); void updateUser(User user); void deleteUserById(Integer id); }
UserMapper.xml(需要与接口类同名,批量注册到mybatis-config.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">
<!--
namespace:命名空间,指定为接口的全类名
selectUserById:唯一标识
resultType:返回值类型
-->
<mapper namespace="com.yunqing.mybatis.dao.UserMapper">
<select id="getUserById" resultType="com.yunqing.mybatis.bean.User">
select * from t_user where id = #{id}
</select>
<insert id="insertUser" parameterType="com.yunqing.mybatis.bean.User" useGeneratedKeys="true">
INSERT INTO t_user(name,gender,email) VALUES (#{name},#{gender},#{email})
</insert>
<update id="updateUser" parameterType="com.yunqing.mybatis.bean.User">
UPDATE t_user SET name=#{name},gender=#{gender},email=#{email} where id=#{id}
</update>
<delete id="deleteUserById">
DELETE from t_user where id=#{id}
</delete>
</mapper>
UserMapperAnnotation.java介绍注解的方式(不用写sql的xml映射文件 )
package com.yunqing.mybatis.dao; import com.yunqing.mybatis.bean.User;
import org.apache.ibatis.annotations.Select; public interface UserMapperAnnotation { @Select("SELECT * FROM t_user where id = #{id}")
User getUserById(Integer id);
}
mybatis-config.xml全局配置
<?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>
<properties resource="conf/dbconfig.properties"></properties>
<environments default="development">
<environment id="test">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///db_blog"/>
<property name="username" value="root"/>
<property name="password" value="5678"/>
</dataSource>
</environment>
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--将写好的sql映射文件注册到全局配置文件中,类路径下直接写 UserMapper.xml就行,要是在包中则写com/yunqing/.../UserMapper.xml-->
<mappers>
<!--<mapper resource="conf/UserMapper.xml"/>-->
<!--<mapper class="com.yunqing.mybatis.dao.UserMapperAnnotation"/>-->
<package name="com.yunqing.mybatis.dao"/>
</mappers>
</configuration>
dbconfig.properties
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql:///mybatis
jdbc.username = root
jdbc.password = 5678
测试文件MybatisTest.java
package com.yunqing.mybatis.test; import com.yunqing.mybatis.bean.Blogger;
import com.yunqing.mybatis.bean.User;
import com.yunqing.mybatis.dao.BloggerMapper;
import com.yunqing.mybatis.dao.UserMapper;
import com.yunqing.mybatis.dao.UserMapperAnnotation;
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.Test; import java.io.IOException;
import java.io.InputStream;
import java.util.List; public class MybatisTest { @Test
public void getAllUser() throws IOException {
//从xml中获取sqlSessionFactory
String resource = "conf/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //获取sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession(); //之前的mybatis的写法
/*User user = sqlSession.selectOne("com.yunqing.mybatis.UserMapper.selectUserById",1);
System.out.println(user);*/ //现在的mybatis接口式编程写法
//相当于接口的实现类
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> list = userMapper.getAllUser();//查询第一条记录
System.out.println(list);
sqlSession.close();
} @Test
public void getUserById() throws IOException {
//从xml中获取sqlSessionFactory
String resource = "conf/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //获取sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession(); /*//之前的mybatis的写法
User user = sqlSession.selectOne("com.yunqing.mybatis.UserMapper.selectUserById",1);
System.out.println(user);*/ //现在的mybatis接口式编程写法
//相当于接口的实现类
UserMapperAnnotation userMapperAnnotation = sqlSession.getMapper(UserMapperAnnotation.class);
User user = userMapperAnnotation.getUserById(1);//查询第一条记录
System.out.println(user);
sqlSession.close();
}
@Test
public void insertUser() throws IOException {
String resource = "conf/mybatis-config.xml";
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //使用自动提交,如果不使用则需要sqlSession.commit();手动提交
SqlSession sqlSession = sqlSessionFactory.openSession(true);
//SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//需要写有参和无参构造函数
User user = new User(null,"Letme","1","letme@qq.com");
userMapper.insertUser(user);
//sqlSession.commit();
}
@Test
public void updateUser() throws IOException {
String res = "conf/mybatis-config.xml";
InputStream is = Resources.getResourceAsStream(res);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = new User(9,"uzi","1","uzi@qq.com");
userMapper.updateUser(user); }
@Test
public void deleteUserById() throws IOException {
String res = "conf/mybatis-config.xml";
InputStream is = Resources.getResourceAsStream(res);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.deleteUserById(9);
}
/*@Test
public void test2() throws IOException {
String resource = "conf/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
BloggerMapper bloggerMapper = sqlSession.getMapper(BloggerMapper.class);
List<Blogger> list= bloggerMapper.getAllBloger();
System.out.println(list);
sqlSession.close();
}*/
}
如果想获取自增主键的值需要在sql的映射xml文件中加上这两个参数

mybatis实现最简单的增删改查的更多相关文章
- SSM框架之MyBatis框架实现简单的增删改查
MyBatis框架介绍 MyBatis是一个优秀的数据持久层框架,在实体类和SQL语句之间建立映射关系是一种半自动化的ORM实现,其封装性要低于Hibernate,性能优越,并且小巧,简单易学,应用也 ...
- Mybatis的简介+简单实现增删改查案例
@ 目录 总结内容 1. 基本概念 2. Mybatis的使用 需求 配置文件简介 总结 总结内容 1. 基本概念 Mybatis是一款优秀的持久层框架,它支持定制化SQL.存储过程以及高级映射.My ...
- springboot(三 使用mybatis +springboot 完成简单的增删改查)
先说一些注解: @EnableAutoConfiguration 可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器 ...
- MyBatis学习--简单的增删改查
jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: Public static void main(String[] args) ...
- MyBatis简单的增删改查以及简单的分页查询实现
MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...
- SpringMVC之简单的增删改查示例(SSM整合)
本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...
- SpringBoot+Mybatis+Maven+MySQL逆向工程实现增删改查
SpringBoot+Mybatis+MySQL+MAVEN逆向工程实现增删改查 这两天简单学习了下SpringBoot,发现这玩意配置起来是真的方便,相比于SpringMVC+Spring的配置简直 ...
- salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)
此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...
- 通过JDBC进行简单的增删改查
通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...
随机推荐
- SQL语句整理(一) 数据库查询语言DQL
前言: 这是我学数据库时整理的学习资料,基本上包括了所以的SQL语句的知识点. 我的教材是人大王珊老师的<数据库系统概论>. 因为是手打的,所以会用一些细节打错了,但都挺明显也不多(考完试 ...
- tmux使用技巧
1.tmux 进入tmux 2.在tmux中 按ctrl+b 表示要进行tmux操作了. 3. c -> create a session 4. "," -> ren ...
- IDEA 自动生成serialVersionUID
场景:刚转到用IDEA,因为需要生成serialVersionUID,并没有自动生成. 转自:http://blog.csdn.net/liuzongl2012/article/details/451 ...
- postgres备份数据库
1. psql --help psql is the PostgreSQL interactive terminal. Usage: psql [OPTION]... [DBNAME [USERNAM ...
- 转 linux screen 命令详解
一.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远 ...
- 【转】C# GDAL 配置
共生成9个dll,如下图: 1.在程序中添加*_csharp.dll四个文件的引用: 2.将剩余的五个文件复制到程序的Debug文件夹中:(如果不复制这五个文件就会出现类似“OSGeo.GDAL.Gd ...
- Android 单元测试Junit
- 浅谈 @RequestParam 和@PathVariable
版权声明:本文为博主原创文章,如果对你有用,敬请带走! https://blog.csdn.net/chuck_kui/article/details/55506723 首先 上两个地址: 地址①ht ...
- JS复制DOM元素文字内容
要实现的效果:将HTML页面中的某个DOM元素例如DIV下面的文本内容进行复制. 实现过程如下: <html> <head> <title>Copy text De ...
- Day02——Python基本数据类型
一.运算符 1.算数运算符 2.比较运算符 3.复制运算符 4.逻辑运算符 5.成员运算符 二.基本数据类型 1.数字 整数(int) 在32位机器上,整数的位数为32位,取值范围为-2**31-2* ...