您的位置:首页 > 编程语言 > Java开发

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

2017-10-17 10:16 841 查看
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>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: