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>
  • 相关阅读:
    vb移动窗体的代码
    vb得到一个进程的启动参数?
    UTF8方式读写文件的模块
    JavaScript中Window.event详解
    vb设置窗体不可移动
    一拖二
    实习第一天
    사랑해
    决定考研
    Eclipse快捷键
  • 原文地址:https://www.cnblogs.com/zhangmingzhao/p/7679544.html
Copyright © 2011-2022 走看看