MyBatis基本例子-实现增删改查

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis基本例子-实现增删改查相关的知识,希望对你有一定的参考价值。

1,项目结构

技术分享

技术分享技术分享

 

2,表单结构

 

技术分享

 

3.代码

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

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

3.4 MysqlSessionFactory


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

以上是整个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的封装就是强!
类属性与表字段之间联系的确定,实现了对象和表中数据的关联!
 
个人见解,望广大网友指正!





以上是关于MyBatis基本例子-实现增删改查的主要内容,如果未能解决你的问题,请参考以下文章

mybatis生成的增删改查怎么用

springboot集成mybatis环境搭建以及实现快速开发微服务商品模块基本的增删改查!

MySQL基本操作--库表增删改查

mybatis增删改查 配置怎么写

Mybatis基本应用:增删改查

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