文件目录

写一下每个文件的代码

 UserDao.java

package cn.zys.dao;

import java.io.IOException;
import java.util.List; import org.apache.ibatis.session.SqlSession; import cn.zys.entity.User;
import cn.zys.until.MyBatisUtils; public class UserDao {
//根据id查用户
public User getById(int id) throws IOException{
SqlSession sqlsession = MyBatisUtils.getSqlSession();
User user = sqlsession.selectOne("cn.zys.entity.UserMapper.selectUser", id);
/*System.out.println(user.toString());*/
sqlsession.close();
return user;
} //查询所有用户
public List<User> selectAll() throws IOException{
SqlSession sqlsession = MyBatisUtils.getSqlSession();
List<User> list = sqlsession.selectList("cn.zys.entity.UserMapper.selectAll");
sqlsession.close();
return list;
} //添加用户
public int addUser(User user) throws IOException{
SqlSession sqlsession = MyBatisUtils.getSqlSession();
int res = sqlsession.insert("cn.zys.entity.UserMapper.insertUser",user);
sqlsession.commit();
sqlsession.close();
return res;
} //更新用户
public int updateUser(User user) throws IOException{
SqlSession sqlsession = MyBatisUtils.getSqlSession();
int res = sqlsession.update("cn.zys.entity.UserMapper.updateUser",user);
sqlsession.commit();
sqlsession.close();
return res;
} //删除用户
public int deleteUser(int id) throws IOException{
SqlSession sqlsession = MyBatisUtils.getSqlSession();
int res = sqlsession.delete("cn.zys.entity.UserMapper.deleteUser",id);
sqlsession.commit();
sqlsession.close();
return res;
}
//分页查询
public List<User> selectLimt(int startindex,int pagenum) throws IOException{
SqlSession sqlsession = MyBatisUtils.getSqlSession();
Map<String,Integer> maps = new HashMap<String, Integer>();
maps.put("startindex", (startindex-1)*pagenum);
maps.put("pagenum", pagenum);
List<User> list = sqlsession.selectList("cn.zys.entity.UserMapper.selectLimit",maps);
sqlsession.commit();
sqlsession.close();
return list;
} //rowbangs分页查询
public List<User> selectLimts(int startindex,int pagenum) throws IOException{
SqlSession sqlsession = MyBatisUtils.getSqlSession();
RowBounds rowbounds = new RowBounds((startindex-1)*pagenum,pagenum);
List<User> list = sqlsession.selectList("cn.zys.entity.UserMapper.selectLimits",null,rowbounds);
sqlsession.commit();
sqlsession.close();
return list;
}
}

User.java

package cn.zys.entity;

public class User {
private int id;
private String name;
private String pwd;
//
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + "]";
}
}

user-mappers.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 -->
<mapper namespace="cn.zys.entity.UserMapper">
<select id="selectUser" resultType="User">
select * from user where id = #{id}
</select> <!-- 查询所有 -->
<select id="selectAll" resultType="User" 返回值类型 >
select * from user
</select>
    <!-- 分页 -->
<select id="selectLimit" parameterType="Map" resultType="User">
select * from user limit #{startindex},#{pagenum}
</select> <!-- 使用rowbangs分页 -->
<select id="selectLimits" parameterType="Map" resultType="User">
select * from user
</select>
    <insert id="insertUser" parameterType="User" 此处的属性为参数类型 useGeneratedKeys="true" 此处属性为是否使用自增字段 >   增删改默认返回int类型
insert into user(name,pwd) values(#{name},#{pwd})
</insert> <update id="updateUser" parameterType="User" >
update user set name=#{name},pwd=#{pwd} where id=#{id}
</update> <delete id="deleteUser" >
delete from user where id=#{id}
</delete>
</mapper>

MyBatisUtils.java

package cn.zys.until;

import java.io.IOException;
import java.io.InputStream; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MyBatisUtils {
public static SqlSessionFactory getSqlSessionFactory() throws IOException{
String resource = "mybatis.config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory;
} public static SqlSession getSqlSession() throws IOException{
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
return sqlSessionFactory.openSession();
}
}

db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis1
username=root
password=root

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="db.properties"></properties> <!-- 为某个类型指定别名 方便在某个引用时使用 比如传值 在此处使用在 user-mappers.xml的resultType -->
<typeAliases>
<!-- <typeAlias type="cn.zys.entity.User" alias="User" /> -->
<!-- 为某个包下的所有类指定别名 默认别名是对应类名 -->
<package name="cn.zys.entity" />
</typeAliases> <environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<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="cn/zys/entity/user-mappers.xml"/>
</mappers>
</configuration>

test.java

package cn.zys.test;

import java.io.IOException;
import java.util.List; import cn.zys.dao.UserDao;
import cn.zys.entity.User; public class test {
public static void main(String[] args) throws IOException {
UserDao userdao = new UserDao();
     

      //新用户
      /* User user = new User();
      user.setName("002");
      user.setPwd("002");
      userdao.addUser(user);*/

      //分页测试
      List<User> list = userdao.selectLimts(0, 2);
      System.out.println(list);

    }
}

最后的测试中只测试了最后一个查询多条数据

MyBatis的使用增删改查(两种分页查询)的更多相关文章

  1. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  2. Mybatis入门之增删改查

    Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...

  3. MyBatis -- 对表进行增删改查(基于注解的实现)

    1.MyBatis对数据库表进行增/删/改/查 前一篇使用基于XML的方式实现对数据库的增/删/改/查 以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查 1.1  首先须要定义映射sql的 ...

  4. Spring Boot 使用Mybatis注解开发增删改查

    使用逆向工程是遇到的错误 错误描述 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): c ...

  5. Mybatis实现简单增删改查

    Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...

  6. JavaWeb系统(增删改查、多条件查询功能)

    该系统是一个简单的青年服务管理系统,主要包括了较完整的常用的增删改查以及多条件查询功能,对于初学者有很大帮助. 下面是相关的Java代码.jsp页面.以及数据库的创建和相关表的设计 java代码 首先 ...

  7. mybatis:开发环境搭建--增删改查--多表联合查询(多对一)

    什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或 ...

  8. SpringMVC,MyBatis商品的增删改查

    一.需求 商品的增删改查 二.工程结构 三.代码 1.Mapper层 (1) ItemsMapperCustom.java package com.tony.ssm.mapper; import ja ...

  9. 基于SSM之Mybatis接口实现增删改查(CRUD)功能

    国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...

随机推荐

  1. 美国在线CEO:雅虎被Verizon收购或导致裁员

    北京时间9月13日消息,据外媒报道,AOL首席执行官蒂姆·阿姆斯特朗(Tim Armstrong)称,雅虎.AOL和Verizon整合业务,将导致"部分工作岗位的变化". 阿姆斯特 ...

  2. bootstrap-分页-默认分页

    说明 默认分页 示例 <!DOCTYPE html> <html lang="zh-CN">    <head>      <meta c ...

  3. Jmeter 插件图表分析

    1.jp@gc - Actiive Threads Over Time:不同时间的活动用户数量展示(图表) 当前的时间间隔是1毫秒,在 setting 中可以设置时间间隔以及其他的参数,右击可以导出 ...

  4. 重新认识Java注解

    重新认识Java注解 今天Debug看源码的时候,无意间看到这么个东西 首先承认我的无知,看到这个我很惊诧. 也勾起了我的好奇心,于是有了这篇认知记录. 下面就来重新认识下注解吧! 注解的本质 关于运 ...

  5. Gitlab常规操作

    一.Git和SVN的区别 和SVN类似,Git是一个版本控制系统(Version Control System,VCS),不同的是SVN为集中式版本控制系统,为单一的集中管理的服务器,保存所有文件的修 ...

  6. Docker 快速安装Jenkins完美教程 (亲测采坑后详细步骤)

    一.前言 有人问,为什么要用Jenkins,在一些中小型企业?我说下我以前开发的痛点,每次开发一个项目完成后,需要打包部署,可能没有专门的运维人员,只能开发人员去把项目打成一个war包,可能这个项目已 ...

  7. 软件——IDEA 超实用使用技巧分享

    前言 工欲善其事 ​必先利其器 最近受部门的邀请,给入职新人统一培训IDEA,发现有很多新人虽然日常开发使用的是IDEA,但是还是很多好用的技巧没有用到,只是用到一些基本的功能,蛮浪费IDEA这个优秀 ...

  8. SpringBoot:扩展SpringMVC、定制首页、国际化

    目录 扩展使用SpringMVC 如何扩展SpringMVC 为何这么做会生效(原理) 全面接管SpringMVC 首页实现 页面国际化 SpringBoot扩展使用SpringMVC.使用模板引擎定 ...

  9. CC2530外部中断

    一.中断基础概念  内核与外设之间的主要交互方式有两种:轮询和中断.中断系统使得内核具备了应对突发事件的能力. 在执行CPU当前程序时,由于系统中出现了某种急需处理的情况,CPU暂停正在执行的程序,转 ...

  10. 【matlab 基础篇 01】快速开始第一个程序(详细图文+文末资源)

    快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你: 文章目录 1 软件安装 2 打开软件 3 编写程序 3.1 基础步骤 3.2 添加PATH 3.3 命令行模式 4 ...