原有的SSM的基礎上切換數據庫mysql爲SQLlite

一直用的mysql數據庫,最近有個項目需要用到SQLite數據庫
好吧 只能在原先的框架上刪除一些配置進行修改了。

先從SQLite小白開始
1.安裝SQlite
SQLite下載地址:https://www.sqlite.org/download.html

我下載了這兩個文件,創建文件夾 E:\sqlite,並在此文件夾下解壓上面兩個壓縮文件,將得到 sqlite3.def、sqlite3.dll 和 sqlite3.exe 文件。
添加 E:\sqlite 到 PATH 環境變量,最後在命令提示符下,使用 sqlite3 命令,將顯示如下結果:

在這裏插入圖片描述

2.安裝Sqlite Studio
下載地址:https://sqlitestudio.pl/index.rvt?act=download
在這裏插入圖片描述

3.安裝之後新建一個數據庫
數據庫的名字和位置

新建一張user表如下:
在這裏插入圖片描述

4.改配置
(1)pom.xml 引入SQLite臨街數據庫的jar包 ,如果下載不了,就手動下載放到maven庫裏面
jar包雲盤鏈接 : https://pan.baidu.com/s/1D4VEQ0qeKT2_OVPupzg8DA

     <!-- sqlite 數據庫連接 -->
	<dependency>
	    <groupId>org.xerial</groupId>
	    <artifactId>sqlite-jdbc</artifactId>
	    <version>3.7.2</version>
	</dependency>

(2)更改spring-content.xml 的配置
在這裏插入圖片描述

  <!-- 定義數據源Bean-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <!-- 指定連接數據庫的驅動 -->
    <property name="driverClassName" value="org.sqlite.JDBC" />
    <!-- 指定連接數據庫的URL -->
  <property name="url" value="jdbc:sqlite:E:/sqlite/dbc.db" />
</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource">
        <ref bean="dataSource" />
    </property>
</bean>

(3)增加SQLite工具類到DaoImpl包中

package com.sys.dao.impl;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**

  • sqlite的工具類
    */
    @Repository
    public class SqliteUtil {

    /**

    • 數據源
      */
      @Resource
      private DataSource sqliteDataSource;

    /**

    • 獲取數據庫連接
    • @return conn
      */
      public Connection getConnection() throws SQLException {
      Connection conn = sqliteDataSource.getConnection();
      conn.setAutoCommit(false);
      return conn;
      }

    /**

    • 關閉數據庫連接

    • @param conn
      */
      public void close(Connection conn, Statement stmt, ResultSet rs) {
      if (null != rs) {
      try {
      rs.close();
      } catch (SQLException ex) {

       }
       rs = null;
      

      }
      if (null != stmt) {
      try {
      stmt.close();
      } catch (SQLException ex) {

       }
       stmt = null;
      

      }
      if (null != rs) {
      try {
      rs.close();
      } catch (SQLException ex) {

       }
       rs = null;
      

      }
      }
      }

(4)UserDaoImpl的重寫

package com.sys.dao.impl;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import com.sys.dao.UserDao;
import com.sys.entity.User;
@Repository(“userDao”)
public class UserDaoImpl implements UserDao {
@Autowired
private SqliteUtil sUtil;

private JdbcTemplate jdbcTemplate;

Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

@Override
public List<User> findUserList() {
	List<User> userList = null;
	try {
		conn = sUtil.getConnection();// 鏈接數據庫
		stmt = conn.createStatement();// 創建數據庫
		String sql = "select * from User ";// 編寫sql語句
		rs = stmt.executeQuery(sql);
		User user = null;
		userList = new ArrayList<User>();// 戶政集合

		while (rs.next()) {
			user = new User();
			user.setId(rs.getLong("id"));
			user.setName(rs.getString("name"));
			user.setPhone(rs.getString("phone"));
			userList.add(user);
		}
	} catch (SQLException e) {
		e.printStackTrace();
	} finally {
		sUtil.close(conn, stmt, rs);// 關閉數據庫
	}
	return userList;
}

}

(5)測試
完善相應的controller和service,請求接口
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章