首先,创建一个数据库my,并在数据库中插入一张表user,然后在user表中插入一行数据,代码如下:

  1. create database my;
  2.  
  3. use my;
  4. create table user(
  5. id int(10) auto_increment,
  6. name varchar(64),
  7. level varchar(256),
  8. phone varchar(256),
  9. primary key(id)
  10. );
  11.  
  12. insert into user(id,name,level,phone) values(1,'a','a','1234555666');

其次,创建mybatis配置文件config.xml,配置文件代码如下:

  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. <typeAliases>
  6. <typeAlias alias="User" type="com.zk.model.User" />
  7. </typeAliases>
  8.  
  9. <environments default="development">
  10. <environment id="development">
  11. <transactionManager type="JDBC" />
  12. <dataSource type="POOLED">
  13. <property name="driver" value="com.mysql.jdbc.Driver" />
  14. <property name="url" value="jdbc:mysql://localhost:3306/my"/>
  15. <property name="username" value="root"/>
  16. <property name="password" value="123456"/>
  17. </dataSource>
  18. </environment>
  19. </environments>
  20.  
  21. <mappers>
  22. <!-- // power by http://www.yiibai.com -->
  23. <mapper resource="com/zk/model/UserMapper.xml" />
  24. </mappers>
  25. </configuration>

再次,创建一个IUser.java接口

  1. package com.zk.dao;
  2.  
  3. import java.util.List;
  4.  
  5. import com.zk.model.User;
  6.  
  7. public interface IUser {
  8. //增加
  9. public void addUser(User user);
  10. //删除
  11. public void deleteUser(int id);
  12. //更新
  13. public void updateUser(User user);
  14. //删除
  15. public User selectUser(int userid);
  16. //查看所有使用者
  17. public List<User> selectAllUser();
  18. }

创建一个User.java实体类

  1. package com.zk.model;
  2.  
  3. public class User {
  4. private int id;
  5. private String name;
  6. private String level;
  7. private String phone;
  8. public int getId() {
  9. return id;
  10. }
  11. public void setId(int id) {
  12. this.id = id;
  13. }
  14. public String getName() {
  15. return name;
  16. }
  17. public void setName(String name) {
  18. this.name = name;
  19. }
  20. public String getLevel() {
  21. return level;
  22. }
  23. public void setLevel(String level) {
  24. this.level = level;
  25. }
  26. public String getPhone() {
  27. return phone;
  28. }
  29. public void setPhone(String phone) {
  30. this.phone = phone;
  31. }
  32. @Override
  33. public String toString() {
  34. return "User [id=" + id + ", name=" + name + ", level=" + level
  35. + ", phone=" + phone + "]";
  36. }
  37. }

接着,在配置UserMapper.xml文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4.  
  5. <mapper namespace="com.zk.dao.IUser">
    <insert id="addUser" parameterType="User">
    Insert into user(id,name,level,phone) values(#{id},#{name},#{level},#{phone});
  6. </insert>
  7.  
  8. <delete id="deleteUser" parameterType="User">
  9. delete from user where id=#{id};
  10. </delete>
  11.  
  12. <update id="updateUser" parameterType="User">
  13. update user set name=#{name},level=#{level},phone=#{phone} where id=#{id};
  14. </update>
  15.  
  16. <select id="selectUser" parameterType="User" resultType="com.zk.model.User">
  17. Select * from user where id=#{id};
  18. </select>
  19.  
  20. <select id="selectAllUser" resultType="com.zk.model.User">
  21. Select * from user;
  22. </select>
  23. </mapper>

最后,构建一个Main.java,实现数据库增删改查的功能:

  1. package MainApp;
  2.  
  3. import java.io.IOException;
  4. import java.io.Reader;
  5. import java.util.List;
  6.  
  7. import org.apache.ibatis.io.Resources;
  8. import org.apache.ibatis.session.SqlSession;
  9. import org.apache.ibatis.session.SqlSessionFactory;
  10. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  11.  
  12. import com.zk.dao.IUser;
  13. import com.zk.model.User;
  14.  
  15. public class Main {
  16. private static SqlSessionFactory sqlsessionfactory;
  17. private static Reader reader;
  18.  
  19. static{
  20. try {
  21. reader=Resources.getResourceAsReader("config/config.xml");
  22. sqlsessionfactory=new SqlSessionFactoryBuilder().build(reader);
  23. } catch (IOException e) {
  24. // TODO Auto-generated catch block
  25. e.printStackTrace();
  26. }
  27. }
  28.  
  29. public SqlSessionFactory getSqlSessionFactory()
  30. {
  31. return sqlsessionfactory;
  32. }
  33.  
  34. public static void main(String[]args)
  35. {
  36. //Insert();
  37. //delete();
  38. //update();
  39. select(1);
  40. }
  41.  
  42. public static void Insert(){
  43. //获取session连接
  44. SqlSession session=sqlsessionfactory.openSession();
  45. //获取mapper
  46. IUser usermap=session.getMapper(IUser.class);
  47. //执行插入
  48. User user1=new User();
  49. user1.setId(1);
  50. user1.setLevel("a");
  51. user1.setName("a");
  52. user1.setPhone("19832321123");
  53. usermap.addUser(user1);
  54. //提交事务
  55. //获取插入信息
  56. session.commit();
  57. selectAllUser();
  58. }
  59.  
  60. public static void delete(){
  61. //获取session连接
  62. SqlSession session=sqlsessionfactory.openSession();
  63. //获取mapper
  64. IUser usermap=session.getMapper(IUser.class);
  65. //执行删除
  66. usermap.deleteUser(1);
  67. session.commit();
  68. selectAllUser();
  69. }
  70.  
  71. public static void update(){
  72. //获取session连接
  73. SqlSession session=sqlsessionfactory.openSession();
  74. //获取mapper
  75. IUser usermap=session.getMapper(IUser.class);
  76. selectAllUser();
  77. User user = usermap.selectUser(1);
  78. user.setName("c");
  79. //执行删除
  80. usermap.updateUser(user);
  81. session.commit();
  82. selectAllUser();
  83. }
  84.  
  85. public static void select(int id){
  86. //获取session连接
  87. SqlSession session=sqlsessionfactory.openSession();
  88. //获取mapper
  89. IUser usermap=session.getMapper(IUser.class);
  90. //selectAllUser();
  91. User user = usermap.selectUser(id);
  92. //执行查询
  93. System.out.println(user.toString());
  94. session.commit();
  95. //selectAllUser();
  96. }
  97.  
  98. private static void selectAllUser() {
  99. // TODO Auto-generated method stub
  100. SqlSession session=sqlsessionfactory.openSession();
  101. IUser user=session.getMapper(IUser.class);
  102. printUser(user.selectAllUser());
  103. }
  104.  
  105. private static void printUser(final List<User> users) {
  106. // TODO Auto-generated method stub
  107. int count = 0;
  108.  
  109. for (User user : users) {
  110. System.out.println("User Id: " + user.getId());
  111. System.out.println("User Name: " + user.getName());
  112. System.out.println("User Dept: " + user.getLevel());
  113. System.out.println("User Website: " + user.getPhone());
  114. }
  115. }
  116. }

这样就完成了数据库的增删改查。

程序结构如下图所示:

mybatis--实现数据库增删改查的更多相关文章

  1. Mybatis入门之增删改查

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

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

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

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

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

  4. Mybatis实现简单增删改查

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

  5. Yii2.0高级框架数据库增删改查的一些操作(转)

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  6. 2. MongoDB基本操作 —— 用Mongo.exe操作数据库增删改查

    一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...

  7. go——beego的数据库增删改查

    一直都不理解使用go语言的时候,为什么还要自己去装beego,以为使用go便可以解决所有的问题,结果在朋友的点拨下,才意识到: go与beego的关系就好比是nodejs与thinkjs的关系,因此也 ...

  8. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

  9. Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

随机推荐

  1. 巴塞尔问题(Basel problem)的多种解法

    巴塞尔问题(Basel problem)的多种解法——怎么计算\frac{1}{1^2}+\frac{1}{2^2}+\frac{1}{3^2}+\cdots112+122+132+⋯ ? (PS:本 ...

  2. LeetCode 860. 柠檬水找零 (贪心)

    在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美元.你必须给 ...

  3. 1080 Graduate Admission

    大致题意就是有N个学生,有M个学校,每个学校的名额都是正整数.每个学生可以填K个学校志愿,N个学生一起排名以后,排名高的学生先挑学校,不保护一志愿. 题目要求: 首先,把所有学生按总成绩SUM(GE+ ...

  4. 2019牛客多校第八场A All-one Matrices 悬线法,单调栈待补

    All-one Matrices 题意 对于一个n,m的01矩阵,问有多少个极大矩阵. 分析 对于悬线法来说,其过程就是枚举极大矩阵的过程,那如何计数呢?对于一个点来说,若其左右边界包含了上一个点的悬 ...

  5. BZOJ3932 CQOI2015 任务查询系统 - 主席树,离散化

    记录下自己写错的地方吧 1. 区间可能有重复 2. 没有出现的坐标也要计入version (因为询问里可能会有) #include <bits/stdc++.h> using namesp ...

  6. Unity3D制作3D虚拟漫游场景(二)

    传送门: Unity3D制作3D虚拟漫游场景(一) -------------------------------------------------------------------------- ...

  7. poj1321棋盘问题(dfs+摆放问题)

    在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. ...

  8. fastadmin 框架中图片点击放大

    fastadmin的原生图片预览,重新打开一个窗口太麻烦,使用layui做一个弹窗式的图片预览 1.将下面代码放在backend-init.js文件中 $('body').on('click', '[ ...

  9. 控制台输出Scanner和BufferedReader区别

    Scanner取得输入的依据是空格符,包括空格键,Tab键和Enter键.当按下这其中的任一键 时,Scanner就会返回下一个输入. 当你输入的内容中间包括空格时,显然,使用Scanner就不能完整 ...

  10. [HDU4609] 3-idiots - 多项式乘法,FFT

    题意:有\(n\)个正整数,求随机选取一个3组合,能构成三角形的概率. Solution: 很容易想到构造权值序列,对其卷积得到任取两条边(可重复)总长度为某数时的方案数序列,我们希望将它转化为两条边 ...