1,项目结构

2,表单结构

3.代码

  1. package com.entity;
  2. public class Book {
  3. private int bookid;
  4. private String bookname;
  5. private String bookauthor;
  6. private int bookprice;
  7. public Book() {
  8. super();
  9. }
  10. public Book(int bookid, String bookname, String bookauthor, int bookprice) {
  11. super();
  12. this.bookid = bookid;
  13. this.bookname = bookname;
  14. this.bookauthor = bookauthor;
  15. this.bookprice = bookprice;
  16. }
  17. public Book(String bookname, String bookauthor, int bookprice) {
  18. super();
  19. this.bookname = bookname;
  20. this.bookauthor = bookauthor;
  21. this.bookprice = bookprice;
  22. }
  23. public int getBookid() {
  24. return bookid;
  25. }
  26. public void setBookid(int bookid) {
  27. this.bookid = bookid;
  28. }
  29. public String getBookname() {
  30. return bookname;
  31. }
  32. public void setBookname(String bookname) {
  33. this.bookname = bookname;
  34. }
  35. public String getBookauthor() {
  36. return bookauthor;
  37. }
  38. public void setBookauthor(String bookauthor) {
  39. this.bookauthor = bookauthor;
  40. }
  41. public int getBookprice() {
  42. return bookprice;
  43. }
  44. public void setBookprice(int bookprice) {
  45. this.bookprice = bookprice;
  46. }
  47. }

  1. BookMapper.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. <mapper namespace="com.mapper.BookMapper">
  5. <span style="white-space:pre">    </span><resultMap id="mapBook" type="com.entity.Book">
  6. <id property="bookid" column="id"></id>
  7. <result property="bookname" column="username"></result>
  8. <result property="bookprice" column="price"></result>
  9. <result property="bookauthor" column="author"></result>
  10. </resultMap></span></strong>
  11. <select id="findById" parameterType="int" resultMap="mapBook">
  12. select *
  13. from book where id = #{id}
  14. </select>
  15. <delete id="del" parameterType="int">
  16. delete * from book where id =
  17. #{id}
  18. </delete>
  19. <insert id="add" parameterType="com.entity.Book">
  20. insert into book
  21. values(null,#{bookname},#{bookauthor},#{bookprice})
  22. </insert>
  23. <select id="show" resultMap="mapBook">
  24. select * from book
  25. </select>
  26. </mapper>

  1. Configuration.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <environments default="development">
  7. <environment id="development">
  8. <transactionManager type="JDBC"></transactionManager>
  9. <dataSource type="POOLED">
  10. <property name="driver" value="com.mysql.jdbc.Driver"></property>
  11. <property name="url" value="jdbc:mysql://localhost:3306/<span style="color:#ff6666;"><mysqlDb></span>?characterEncoding=utf-8"></property>
  12. <property name="username" value=mysqlnam"></property>
  13. <property name="password" value="mysqlpassword"></property>
  14. </dataSource>
  15. </environment>
  16. </environments>
  17. <mappers>
  18. <mapper resource="com/mapper/BookMapper.xml"></mapper>
  19. </mappers>
  20. </configuration>

3.4 MysqlSessionFactory


  1. package com.util;
  2. import java.io.IOException;
  3. import java.io.Reader;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8. public class MysqlSessionFactory {
  9. static SqlSession session;
  10. public SqlSession getSqlSession(){
  11. try {
  12. Reader reader = Resources.getResourceAsReader("Configuration.xml");
  13. SqlSessionFactory  sessionFactory = new SqlSessionFactoryBuilder().build(reader);
  14. session = sessionFactory.openSession();
  15. } catch (IOException e) {
  16. // TODO Auto-generated catch block
  17. e.printStackTrace();
  18. }
  19. return session;
  20. }
  21. }
[java] view plain copy
  1. Test.java
 
  1. package com.util;
  2. import org.apache.ibatis.session.SqlSession;
  3. import com.entity.*;
  4. public class Test {
  5. public static void main(String[] args) {
  6. MysqlSessionFactory mysqlSessionFactory = new MysqlSessionFactory();
  7. SqlSession session = mysqlSessionFactory.getSqlSession();
  8. System.out.println(session);
  9. Book book = (Book)session.selectOne("com.mapper.BookMapper.findById",25);
  10. System.out.println(book);
  11. session.commit();
  12. Book bookadd = new Book(0, "java","mike",90);
  13. session.insert("com.mapper.BookMapper.add",bookadd);
  14. session.commit();
  15. }
  16. }

以上是整个demo的所有源代码!

只想说这一部分
1,book.javav中的属性名与mysql中book table中字段名字不匹配:
  1. <resultMap id="mapBook" type="com.entity.Book">
  2. <id property="bookid" column="id"></id>
  3. <result property="bookname" column="username"></result>
  4. <result property="bookprice" column="price"></result>
  5. <result property="bookauthor" column="author"></result>
  6. </resultMap>

resulteMap   是为了解决book.javav中的属性名与mysql中book table中字段名字不匹配,无法进行数据的填充!

2,命名空间

  1. <mapper namespace="com.mapper.BookMapper">

这个是service的名字,不要写错,另外service的方法名也要和配置文件的方法名一样。

总体感觉没什么好说的!
1,读取配置文件获得SqlsessionFactory
2,通过SqlsessionFactory获得sqlsession
那涉及到一个问题:配置文件
配置文件:Configtion.xml
这个文件定义了关于数据源的配置

  1. <environments default="development">
  2. <environment id="development">
  3. <transactionManager type="JDBC"></transactionManager>
  4. <dataSource type="POOLED">
  5. <property name="driver" value="com.mysql.jdbc.Driver"></property>
  6. <property name="url" <span style="font-family: Arial, Helvetica, sans-serif;">value="jdbc:mysql://localhost:3306/</span><span style="font-family: Arial, Helvetica, sans-serif;"></property></span>

  1. <property name="username" value="mysqlnam"></property>
  2. <property name="password" value="mysqlpassword"></property>
  3. </dataSource>
  4. </environment>
  5. </environments>

那么这里有了连接mysql数据库的必要信息但是我们的目的是通过java语句操作数据库

封装数据库为一个POJO,也就是book.java
我们通过操作book对象操作数据库的记录!
那么类有了就会有类与数据库中表的关系的对应配置信息BookMapper.xml
其实这里与其说配置的是表和类的关系还不如说是对sql语句的关系的配置
参数是BOOK对象,与BOOK类建立了联系通过强大的#{}让字段名与类属性相关联,实现数据的填充!
不得不说,java的封装就是强!
类属性与表字段之间联系的确定,实现了对象和表中数据的关联!
个人见解,望广大网友指正!

转载于:https://www.cnblogs.com/LZHBB/p/7631820.html

MyBatis基本例子-实现增删改查相关推荐

  1. 极其方便的使用Mybatis单表的增删改查

    [活动]Python创意编程活动开始啦!!!      CSDN日报20170427 --<如何在没有实际项目经验的情况下找到工作>      深入浅出,带你学习 Unity 目录(?)[ ...

  2. servlet mysql insert_servlet+mybatis 实现mysql的增删改查实例

    古人云:温故而知新.趁周末,重新来学习了一遍servlet + mybatis 实现mysql的增删改查,算是对自己学习的一个总结和记录. 开门见山,首先我们来看一下项目目录结构: 不难发现这是一个m ...

  3. ❤️使用Mybatis对数据库进行增删改查!!!

    ❤️使用Mybatis对数据库进行增删改查!!! ❤️namespace的用法 namespace中的包名要和接口一致: ❤️select用法 id:就是对应的namespace的方法名 result ...

  4. Java中的sqlsession_java相关:MyBatis中SqlSession实现增删改查案例

    java相关:MyBatis中SqlSession实现增删改查案例 发布于 2020-6-13| 复制链接 摘记: 前言     开博客这是第一次写系列文章,从内心上讲是有点担心自己写不好,写不全,毕 ...

  5. 用Spring+Mybatis写一个数据库增删改查

    用Spring+Mybatis写一个数据库增删改查 总体结构 ClassBiz.java package com.gxj.biz;import java.util.List;import com.gx ...

  6. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] arg ...

  7. mybatis --入门 单表增删改查-curd

    目录 1. mybatis 环境搭建 2. 实体类映射文件配置(写sql) 3. mybatis核心配置文件 (环境配置) 4. 测试 mybatis document https://mybatis ...

  8. MyBatis笔记——配置文件完成增删改查

    l 完成品牌数据的增删改查操作 § 要完成的功能列表清单:□ 查询® 查询所有数据® 查看详情® 条件查询□ 添加□ 修改® 修改全部字段® 修改动态字段□ 删除® 删除一个® 批量删除准备环境:§ ...

  9. 利用Mybatis对数据库进行增删改查操作

    文章目录 mybatis模糊查找 先来了解一下 #{}和${}的使用 parameterType和resultType的使用 selectOne和selectList的使用 mysql自增主键返回 方 ...

最新文章

  1. 【Network Security!】DOS基本命令与批处理(看不懂来打我)
  2. ubuntu 下 SubLime Text2 使用之创建快捷方式
  3. Nexus【环境搭建 01】CentOS 7.5 环境下搭建私有Maven仓库实录(启动问题处理+安装文件 nexus-3.4.0-02-unix.tar.gz 云盘链接)
  4. C#中的委托与事件[翻译]
  5. 英语写作学习笔录 task1 conclusion
  6. 阿里云MaxCompute(大数据)公开数据集---带你玩转人工智能 1
  7. 第一阶段SCRUM冲刺-05
  8. python命名时可以使用中文吗_Python命名约定
  9. 流量限制器(Flux Limiter)
  10. Gerber文件各层的介绍
  11. 【无标题】公众号引流进阶教程(公众号对接电影,影视资源)
  12. 所谓的AI芯片到底指什么?
  13. 财务会计中会计科目的基础
  14. device_register分析
  15. SOT23(Small Outline Transistor)
  16. 上海创蓝253董事长_从世界记忆大师到互联网百强企业CEO:创蓝253钛牛哥的传奇之路...
  17. 忽视显而易见的东西:差分放大器的输入阻抗
  18. 猫是如何躲开影子的?
  19. 总结2019大前端开发十大战略性技术布局
  20. jmeter 5.5+influxdb 2.0+grafana v9.3.2 - 压测看板setup

热门文章

  1. vscode打开一个文件就会关闭一个文件
  2. NoClassDefFoundError: Could not initialize class com.fasterxml.jackson.databind.ObjectMapper
  3. 用计算机画出方格表,方格造型图_怎么做这种颜色相间的方格图(有图)_彩妆阁...
  4. [译] 如何学习 CSS
  5. Mybatis经验总结
  6. 考研笔记-物理层协议
  7. Lock应用之 读写锁
  8. centos activemq 集群配置 Networks of Brokers
  9. 算法(Algorithms)第4版 练习 2.1.24
  10. 笔记本电脑磁盘加密技术