1. 程式人生 > >springMVC-router工程操作sqlite資料庫

springMVC-router工程操作sqlite資料庫

sqlite資料庫是一款全面支援SQL的輕量級資料庫,本文接上一篇介紹的springMVC-router工程來實現對sqlite資料庫的整合操作;


1、持久化資料配置匯入

在DispatcherServlet配置檔案story-servlet.xml中匯入持久化資料配置檔案:

<import resource="classpath:storyconfig/storyPersistent.xml"/>

2、配置storyPersistent.xml——配置資料來源

在storyPersistent.xml中配置Spring操作資料庫所依賴的資料來源,配置完成即可以通過DataSource獲取到資料庫連線,操作資料庫:

<bean id="storyDataSource"
	                class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	                   <property name="driverClassName">
	                            <value>org.sqlite.JDBC</value>
	                   </property>
	                   <property name="url">
	                           <value>jdbc:sqlite:dbhome/storyDb.db</value>
	                   </property>
	                   <property name="username">
	                           <value>root</value>
	                   </property>
	                   <property name="password">
	                  <value>021217</value>
	          </property>
	</bean>
url配置的相對路徑是以配置的working directory目錄為參考,storysDb.db放在workspace/dbhome目錄下,雙擊server,點選Open launch configuration:


伺服器的working directory配置為即可:

3、配置storyPersistent.xml——配置SqlSessionFactory

<!-- 建立SqlSessionFactory -->
	<bean id="storySqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">	
		<!--指定資料來源-->
		<property name="dataSource" ref="storyDataSource"/>
		<!-- 指定sqlMapConfig總配置檔案,具體見7--> 
	  	<!-- <property name="configLocation"  value="classpath:storyconfig/storySqlMapConfig.xml"/>-->
		<!--指定實體類對映檔案,可以同時指定某一包以及子包下面的所有配置檔案 --> 
		<property name="mapperLocations" value="classpath:storysqlmapper/*.xml"/>
		<!--該屬性可以給包中的類註冊別名,註冊後可以直接使用類名,而不用使用全限定的類名 (就是不用包含包名) ,該屬性可以配置多個,可以用逗號進行分割-->
		<property name="typeAliasesPackage" value="com.feyn.story.dao"/>
	</bean>

4、配置storysPersistent.xml——配置MapperScannerConfigurer
<!--配置此項後無需自己實現dao, 只要提供介面和xml對映即可,xml對映即上面配置的mapperLocations目錄下的所有xml -->
	<bean id="storyMapperScannerConfigurer"
	     class="org.mybatis.spring.mapper.MapperScannerConfigurer">	
	     <property name="sqlSessionFactoryBeanName" value="storySqlSessionFactory" />	
	     <property name="basePackage" value="com.feyn.story.dao" />	
	</bean>
5、建立用於訪問資料庫的DAO類和訪問物件Entity類

此處建立使用者類User和訪問資料庫的DAO類UserDao,其中UserDao以介面實現,具體的介面實現以mybatis mapper的形式實現:

程式碼實現如下:

UserDao介面

package com.feyn.story.dao;

import java.util.Map;

import org.springframework.stereotype.Repository;

import com.feyn.story.entity.User;

@Repository("userDao")
public interface UserDao {
	public User getUserById(Map param);
}
User類
package com.feyn.story.entity;

import com.alibaba.fastjson.annotation.JSONField;

public class User {
	
	private Integer id;
	
	private String name;
		
	public Integer getId() {
		return id;
	}
	
	@JSONField(name="ID")
	public void setId(Integer id) {
		this.id = id;
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
}


6、配置storysqlmapper對映關係
使用SQLiteStudio在工程下的workspace/dbhome/目錄下建立資料庫storyDb.db,並建立表tUser,新增兩條測試用資料:


在storysqlmapper目錄下新建user_mapper.xml檔案,新增UserDao提供的介面對應的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.feyn.story.dao.UserDao"><!--相應的DAO介面類-->
    <!--select對應的方法、入參型別及返回值型別-->
	<select id="getUserById" parameterType="java.util.Map"
         resultType="com.feyn.story.entity.User">
		<!--執行的sql語句-->
        select
        *
        from
        tUser
        where
        ID= #{ID}
	</select>
</mapper>

工程目錄如下:


附:

名詞解釋:
SqlSessionFactoryBean:MyBatis為Spring提供的用於建立SqlSessionFactory的類;
SqlSessionFactory:建立SqlSession例項的工廠;
SqlSession:用於執行持久化操作的物件,類似於jdbc中的Connection;

依賴的工具和jar包:
sqlitestudio-3.1.1
http://mvnrepository.com/artifact/com.alibaba/fastjson/1.2.20           fastjson-1.2.20.jar
http://mvnrepository.com/artifact/org.mybatis/mybatis-spring           mybatis-spring-1.3.0.jar
https://bitbucket.org/xerial/sqlite-jdbc/downloads                              sqlite-jdbc-3.14.2.1.jar
https://github.com/mybatis/mybatis-3/releases                                 mybatis-3.4.1.jar
mybatis- spring1.3.0需要和mybatis 3.4.1版本相匹配。