MyBatis在eclipse环境下搭建+“Java+Mysql+Mybatis实现一个简单的图书信息录入”

  MyBatis封装了JDBC操作(还有Hibernate\JDO\JPA\mybatis)
  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>

 

posted @ 2017-10-16 23:35  Lawliet__zmz  阅读(980)  评论(0编辑  收藏  举报