1. 程式人生 > 資料庫 >java資料庫訪問—Mybatis

java資料庫訪問—Mybatis

前述的幾種java訪問資料庫的方式:

  • jdbc是最原始的方式,使用比較繁瑣;
  • JdbcTemplate方式相對方便性有一些提高,但在工程應用中仍然很不方便。

接下來繼續記錄使用持久化框架來進行資料庫操作,本文記錄使用Mybatis進行記錄的的簡單示例:

1、定義

官網的定義:

MyBatis is a first class persistence framework with support for custom SQL,stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives,Map interfaces and Java POJOs (Plain Old Java Objects) to database records.

2、依賴

spring中使用mybatis需要新增如下依賴(pom.xml):

        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.3</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.6</version>
		</dependency>

3、配置檔案

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context-2.5.xsd  
     http://www.springframework.org/schema/beans
     https://www.springframework.org/schema/beans/spring-beans.xsd">
     <bean id="dataSource"
     class="org.apache.commons.dbcp2.BasicDataSource"
     destroy-method="close">
     <property name="url" value="jdbc:mysql://localhost:3306/test"/>
     <property name="username" value="root"/>
     <property name="password" value="root"/>
     <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
     </bean>
     <bean id="sqlSessionFactory"
     class="org.mybatis.spring.SqlSessionFactoryBean">
      <property name="dataSource" ref="dataSource"/>
      <property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"/>
     </bean>
     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      <property name="basePackage" value="com.test.database.mybatis"/>
      <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
     </bean>
</beans>

4、sql對映檔案

<?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.test.database.mybatis.TestDao">
<select id="getAll" resultType="com.test.database.User">
select * from user
</select>
</mapper>

5、介面定義

package com.test.database.mybatis;

import java.util.List;

import com.test.database.User;

public interface TestDao {
	
	public List<User> getAll();

}

User定義

package com.test.database;

public class User {
	
	private int id;
	private String name;
	private String password;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ",name=" + name + ",password=" + password + "]";
	}
	
	

}

6、測試類

package com.test;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.test.database.mybatis.TestDao;

public class Main {

	public static void main(String[] args) throws BeansException,Exception {
		ApplicationContext context = new ClassPathXmlApplicationContext("spring-context*.xml");
		//測試mybatis
		System.out.println(context.getBean(TestDao.class).getAll());
	}
}

7、測試結果

[User [id=1,name=tim,password=tim],User [id=2,name=park,password=park]]