05mybatis配置方式简单入门

mybatis 配置方式入门实例
1、建立maven项目 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.fz</groupId>
<artifactId>my02</artifactId>
<packaging>jar</packaging>
<version>1.0</version>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<testSourceDirectory>src/test/java</testSourceDirectory>
<sourceDirectory>src/main/java</sourceDirectory>
<!-- 处理无法加载资源配置文件 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
</project>

2、src/main/resources/db.properties 建立db.properties文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db?useSSL=true&useUnicode=true&characterEncoding=UTF8
jdbc.username=root
jdbc.password=root


什么是DAO?
DAO(Data Access Object) 数据访问对象是一个面向对象的数据库接口

dao类
dao层

模型类
Book.java

数据库有 Book 表

接口
BookDAO.java 接口
insert
delete
deleteById
query
queryAll
update
selectOne
show
page
编写dao接口的实现类
BookDAOimpl.java 实现类

BookDAO bookdao = new BookDAOImpl();

Book book = new Book();
bookdao.insert(book);
com.fz.entity.Book
com.fz.dao.BookDAO
com.fz.dao.BookDAOImpl

Student stu = new Student();
stu.setName("jack");
stu.setAge(18);

StudentDAO sdao = new StudentDAOImpl();

sdao.save(stu);

List<Student> stus = sdao.query();

3、src/main/resources/mybatis-config.xml 建立mybatis配置文件 mybatis-config.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>
<properties resource="db.properties"/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 引入DAO接口文件 -->
<mapper class="com.fz.mapper.StudentMapper"/>
<!-- 引入映射配置文件XxxMapper.xml -->
<mapper resource="com/fz/mapper/BookMapper.xml"/>
</mappers>
</configuration>
4、编写实体类
com.fz.entity.Student.java
package com.fz.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
* Created by webrx on 2017-06-13.
*/
@Data @AllArgsConstructor @NoArgsConstructor
public class Student {
private int id;
private String name;
private String address;
}


com.fz.entity.Book.java
package com.fz.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
* Created by webrx on 2017-06-13.
*/
@Data @AllArgsConstructor @NoArgsConstructor
public class Book {
private int id;
private String name;
private double price;
}

5、编写接口
com.fz.mapper.StudentMapper.java

package com.fz.mapper;
import com.fz.entity.Student;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
* Created by webrx on 2017-06-13.
*/
public interface StudentMapper {
@Select("select * from student")
public List<Student> query();

@Insert("insert into student values(null,#{name},#{address})")
public int save(Student student);
}

6、编写实体映射文件
com.fz.mapper.BookMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fz.mapper.BookMapper">
<select id="queryAll" resultType="com.fz.entity.Book">
select * from book
</select>
</mapper>
7、测试 src/test/java
package com;

import com.fz.entity.Book;
import com.fz.entity.Student;
import com.fz.mapper.StudentMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;


import java.io.IOException;
import java.io.InputStream;
import java.util.List;

/**
* Created by webrx on 2017-06-13.
*/
public class Demo {


@Test
public void show(){
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream("mybatis-config.xml");
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

SqlSession session = sqlSessionFactory.openSession();
System.out.println(session);

StudentMapper sdao = session.getMapper(StudentMapper.class);

List<Book> list = session.selectList("com.fz.mapper.BookMapper.queryAll");
System.out.println(list.size());
for(Book book : list){
System.out.println(book.getName());
}

//添加数据
//Student st = new Student();
//st.setName("赵六");
//st.setAddress("天津");
//int r = sdao.save(st);
//System.out.println(r);

//提交会话事务
session.commit();

//数据查询
//List<Student> list = sdao.query();
//System.out.println(list.size());
//for(Student stu : list){
// System.out.println(stu.getName());
//}
}
}

怕什么真理无穷,进一步有一步的欢喜
原文地址:https://www.cnblogs.com/Mkady/p/7001703.html