zoukankan      html  css  js  c++  java
  • MyBatis在eclipse环境下搭建+“Java+Mysql+Mybatis实现一个简单的图书信息录入”

      MyBatis封装了JDBC操作(还有HibernateJDOJPAmybatis)
      MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
       映射通过注解实现,以前是通过xml。

    环境配置:

    下载官方的Java版本,搭建环境两种方法,一种就是下载好,放在一个Java_lib目录,右键要加的项目,

    第二种方法在实际的项目更常用写,eclipse里面右键转为

    转成功后,第一次好像要下载点东西,然后

    添加依赖,填上响应的名字,版本号,OK,即可下载。我们在pom.xml里可以控制版本等。。。。

    代码:

    代码注释很详细了,直接看吧:

    App.java:(注意测试需要注释不同的代码)

    package com.zmz.orm;
    
    import java.io.IOException;
    import java.util.List;
    
    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 App {
    
        public static void main(String[] args) {
    
            // SQL 会话(数据库连接)工厂
            // mybatis 对 pool 的封装
            try {
                SqlSessionFactory factory = new SqlSessionFactoryBuilder()
                        .build(Resources.getResourceAsReader("com/zmz/orm/config.xml"));
    
                // 一次会话
                // Connection
                SqlSession session = factory.openSession();
    
                // 获得了接口的一个具体实现(实例)
                // mybatis 根据注解创建了接口的实力
                BookMapper mapper = session.getMapper(BookMapper.class);
    
                mapper.save(new Book("t1", "a1", 23));
                mapper.save(new Book("t2", "a2", 34));
    
                List<Book> list = mapper.findAll(4, 0);// 从下标0开始,取4个,ID降序排序了
                for (Book b : list) {
                    System.out.println(b);
                }
    
                // 会话提交
                session.commit();
                System.out.println("save");
    
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    }

    Book.java:

    package com.zmz.orm;
    
    public class Book {
    
        int id;
        String title;
        String author;
        int price;
        
        // create table books(id int primary key auto_increment,title varchar(40),author varchar(40),price int);
    
        public Book() {
        }
    
        public Book(String title, String author, int price) {
            super();
            this.title = title;
            this.author = author;
            this.price = price;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getTitle() {
            return title;
        }
    
        public void setTitle(String title) {
            this.title = title;
        }
    
        public String getAuthor() {
            return author;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    
        public int getPrice() {
            return price;
        }
    
        public void setPrice(int price) {
            this.price = price;
        }
    
        @Override
        public String toString() {
            return "Book [id=" + id + ", title=" + title + ", author=" + author + ", price=" + price + "]";
        }
        
        
        
    }

    BookMapper.java(核心的映射代码):

    package com.zmz.orm;
    
    import java.util.List;
    
    import org.apache.ibatis.annotations.Delete;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Param;
    import org.apache.ibatis.annotations.Select;
    import org.apache.ibatis.annotations.Update;
    
    /*
     * 映射 SQL方法
     */
    public interface BookMapper {
    
        @Insert("insert into books(author,title,price) values(#{author}, #{title}, #{price})")
        void save(Book b);
        
        @Select("select * from books where id = #{pk}")
        Book find(@Param("pk") int id);
        
        @Select("select * from books order by id desc limit #{size} offset #{start}")
        List<Book> findAll(
                @Param("size") int size, 
                @Param("start") int start);
        
        @Delete("")
        void remove(String title);
        
        @Update("")
        void update(Book b);
    }

    cpnfig.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>
      <environments default="development">
        <environment id="development">
          <transactionManager type="JDBC"/>
          <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://127.0.0.1:3306/Test"/>
            <property name="username" value="root"/>
            <property name="password" value="123456"/>
          </dataSource>
        </environment>
      </environments>
      <mappers>
           <package name="com.zmz.orm"/>
      </mappers>
    </configuration>
  • 相关阅读:
    2020.10.23 19级training 补题报告
    2020.10.17 天梯赛练习 补题报告
    2020.10.16 19级training 补题报告
    2020.10.9 19级training 补题报告
    2020.10.10 天梯赛练习 补题报告
    2020.10.3 天梯赛练习 补题报告
    2020.10.2 19级training 补题报告
    第十届山东省ACM省赛复现补题报告
    VVDI Key Tool Plus Adds VW Passat 2015 Key via OBD
    Xhorse VVDI Prog Software V5.0.3 Adds Many MCUs
  • 原文地址:https://www.cnblogs.com/zhangmingzhao/p/7679544.html
Copyright © 2011-2022 走看看