mybatis_增删改查

Myth丶恋晨 2022-06-05 11:38 424阅读 0赞

mybits最基本的例子————-实现增删改查

1,项目结构

Center

![Image 1][]![Image 1][]

2,表单结构

" class="reference-link">Center 1

3,项目代码

3.1 book.java

[java] view plain copy

  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. }

[java] view plain copy

  1. BookMapper.xml

[java] view plain copy

  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. delete * from book where id =
  5. #{id}
  6. insert into book
  7. values(null,#{bookname},#{bookauthor},#{bookprice})

[html] view plain copy

  1. Configuration.xml

[html] view plain copy

  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

[java] view plain copy

  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

[java] view plain copy

  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中字段名字不匹配:

[html] view plain copy

  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,命名空间

[java] view plain copy

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

总体感觉没什么好说的!

1,读取配置文件获得SqlsessionFactory

2,通过SqlsessionFactory获得sqlsession

那涉及到一个问题:配置文件

配置文件:Configtion.xml

这个文件定义了关于数据源的配置

[html] view plain copy

  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**>

[html] view plain copy

  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的封装就是强!

类属性与表字段之间联系的确定,实现了对象和表中数据的关联!

个人见解,望广大网友批评指正!

[Image 1]:

发表评论

表情:
评论列表 (有 0 条评论,424人围观)

还没有评论,来说两句吧...

相关阅读