當前位置:首頁 » 操作系統 » spring資料庫

spring資料庫

發布時間: 2022-01-08 15:36:35

java springboot 資料庫用哪個好

比較php和JSP這兩個Web開發技術,在目前的情況是其實是比較PHP和Java的Web開發。以下是智能職涯bigdata-job就幾個主要方面進行的比較:一、語言比較PHP是解釋執行的伺服器腳本語言,首先php有簡單容易上手的特點。語法和c語言比較象,所以學過c語言的程序員可以很快的熟悉PHP的開發。而java需要先學好java的語法和熟悉一些核心的類庫,懂得面向對象的程序設計方法。所以Java不如PHP好學。Java首先要編譯成位元組碼.class文件,然後在java虛擬機上解釋執行。Java的Web開發首先最容易想到的就是JSP(現在已經到JSP2.0),原來的java的Web開發都是用servlet來實現的,用servlet來開發需要程序員在java的源文件中嵌入大量的html代碼。所以後來就出現了JSP,JSP可以方便的嵌入到html文件當中,其實jsp文件在伺服器上執行的時候首先會被應用伺服器轉換成servlet,然後再編譯執行。JSP可以通過servlet和JavaBean的支持產生強大的功能。JavaBean是一種可復用的、跨平台的軟體組件。使用javabean可以方便的實現java代碼和html的分離,能夠增強系統的功能和軟體的復用性。Java的Web開發屬於SUN公司定義的J2EE其中的規范。而且在J2EE中包括了java的Web開發的所有方面,如:JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特別適合於做大型的企業級的應用。二、資料庫訪問比較Java通過JDBC來訪問資料庫,通過不同的資料庫廠商提供的資料庫驅動方便地訪問資料庫。訪問資料庫的介面比較統一。PHP對於不同的資料庫採用不同的資料庫訪問介面,所以資料庫訪問代碼的通用性不強。例如:用Java開發的Web應用從Mysql資料庫轉到Oracle資料庫只需要做很少的修改。而PHP則需要做大量的修改工作。三、系統設計架構比較採用Java的Web開發技術,需要使用的是面向對象的系統設計方法,而PHP還是採用面向過程的開發方法。所以用Java進行開發前期需要做大量的系統分析和設計的工作。四、跨平台性Java和PHP都有很好的跨平台的特性。幾乎都可以在不作任何修改的情況下運行在Linux或者Windows等不同的操作系統上。五、開發成本比較PHP最經典的組合就是:PHP+MySQL+Apache。非常適合開發中小型的Web應用,開發的速度比較快。而且所有的軟體都是開源免費的,可以減少投入。Java的Web應用伺服器有免費Tomcat、JBoss等,如果需要更好的商業化的服務有:WebSphere和Weblogic。六、分布式多層架構比較PHP只能實現簡單的分布式兩層或三層的架構,而JAVA在這方面就比較強大,可以實現多層的網路架構。資料庫層(持久化層)、應用(業務)邏輯層、表示邏輯層彼此分開,而且現在不同的層都已經有一些成熟的開發框架的支持。例如Struts就是利用java的Web開發技術實現了MVC的設計模式,而在業務邏輯層也有Spring框架,資料庫持久化層有Hibernate等框架。這些框架可以方便開發者高效、合理、科學得架構多層的商業應用。下面簡要的說一下Struts,它實質上是在JSPModel2的基礎上實現的一個MVC(Model、View、Controler)框架。JSPModel2體系結構是一種聯合使用JSP與Servlet來提供動態內容的方法。在Struts框架中,模型由實現業務邏輯的JavaBean或EJB組件構成,控制器由Servlet實現的,視圖由一組JSP文件組成。採用Struts可以明確角色的定義和開發者與網頁設計者的分工。而且項目越復雜,其優勢越明顯。七、源代碼安全PHP開發的程序的源代碼都是公開的,他人拿到php開發的程序後都可以進行修改。Java開發的程序,最後用戶拿到的是只是一些編譯好的class類,無法看到完整的源代碼,安全性高。八、性能比較有人做過試驗,對這兩種種語言分別做迴圈性能測試及存取Oracle資料庫測試。在循環性能測試中,JSP只用了令人吃驚的四秒鍾就結束了20000*20000的迴圈。而PHP測試的是2000*2000循環(少一個數量級),卻分別用了63秒。資料庫測試中,二者分別對Oracle8進行1000次Insert,Update,Select和Delete:JSP需要13秒,PHP需要69秒。綜上所述,智能職涯bigdata-job認為,PHP適合於快速開發,中小型應用系統,開發成本低,能夠對變動的需求作出快速的反應。而Java適合於開發大型的應用系統,應用的前景比較廣闊,系統易維護、可復用性較好。還有,同樣功能的系統用Java開發的系統要比PHP開發的系統的價格要高。

⑵ 怎麼用spring語句往資料庫加數據

Spring中常用的操作資料庫的(Dao)方法
介面:
public interface BaseDAO {
void save(T instance);
void update(T instance);
void delete(T instance);
T get(String id);
List<T> findAll();
List<T> findByExample(T instance);
int bulkUpdate(String hql);
int bulkUpdate(String hql, Object value);
int bulkUpdate(String hql, Object[] value);
List<T> find(String queryString);
List<T> find(String queryString, Object obj);
List<T> find(String queryString, Object[] obj);
List<T> findByNamedParam(String queryString, String paramName, Object value);
List<T> findByNamedParam(String queryString, String[] paramNames, Object[] values);
List<T> findByNamedQuery(String queryName);
List<T> findByNamedQuery(String queryName, Object value);
List<T> findByNamedQuery(String queryName, Object[] values);
List<T> findByProperty(String property, Object value);
List<T> findByPagination(final T t, final int firstResult, final int maxResult);
int countByPagination(final T t);
}
實現類:
import java.sql.*;
import java.util.List;
import org.hibernate.*;
import org.hibernate.criterion.*;
import org.springframework.orm.hibernate3.*;
import org.springframework.orm.hibernate3.support.*;

import com.vo.T;

public abstract class BaseDAOImpl extends HibernateDaoSupport implements BaseDAO{

protected abstract Class type(); //反射方法調用類

// 保存
public void save(T instance) {
getHibernateTemplate().save(instance);
}

// 更新
public void update(T instance) {
getHibernateTemplate().update(instance);
}

// 刪除
public void delete(T instance) {
getHibernateTemplate().delete(instance);
}

// 根據ID查詢
@SuppressWarnings("unchecked")
public T get(String id) {
return (T) getHibernateTemplate().get(type(), id);
}

// 查詢所有
@SuppressWarnings("unchecked")
public List<T> findAll() {
return getHibernateTemplate().loadAll(type());
}

// 根據例子查詢

@SuppressWarnings("unchecked")
public List<T> findByExample(T instance) {
return getHibernateTemplate().findByExample(instance);
}

// 根據HQL語句進行update操作等
public int bulkUpdate(String hql) {
return getHibernateTemplate().bulkUpdate(hql);
}

// 根據HQL語句進行update操作等
public int bulkUpdate(String hql, Object value) {
return getHibernateTemplate().bulkUpdate(hql, value);
}

// 根據HQL語句進行update操作等
public int bulkUpdate(String hql, Object[] value) {
return getHibernateTemplate().bulkUpdate(hql, value);
}

// 根據HQL語句進行查詢
@SuppressWarnings("unchecked")
public List<T> find(String queryString) {
return getHibernateTemplate().find(queryString);
}

// 根據HQL語句進行查詢
@SuppressWarnings("unchecked")
public List<T> find(String queryString, Object obj) {

return getHibernateTemplate().find(queryString, obj);
}

// 根據HQL語句進行查詢
@SuppressWarnings("unchecked")
public List<T> find(String queryString, Object[] obj) {
return getHibernateTemplate().find(queryString, obj);
}

/**
* 使用命名查詢進行查詢
*
* @param queryString
* HQL
* @param paramName
* 參數名
* @param value
* 參數值
* @return
*/
@SuppressWarnings("unchecked")
public List<T> findByNamedParam(String queryString, String paramName, Object value) {
return this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);
}

/**
* 使用命名查詢進行查詢 多個參數
*
* @param queryString
* HQL
* @param paramNames
* 參數名的數組
* @param values
* 參數值的數組
* @return
*/
@SuppressWarnings("unchecked")
public List<T> findByNamedParam(String queryString, String[] paramNames, Object[] values) {
return this.getHibernateTemplate().findByNamedParam(queryString, paramNames, values);
}

/**
* 使用HIBERNATE映射文件中的定義的HQL語句進行查詢
*
* @param queryName
* 文件中定義的HQL語句的名字
* @return
*/
@SuppressWarnings("unchecked")
public List<T> findByNamedQuery(String queryName) {
return getHibernateTemplate().findByNamedQuery(queryName);
}

/**
*
* @param queryName
* @param value
* @return
*/
@SuppressWarnings("unchecked")
public List<T> findByNamedQuery(String queryName, Object value) {
return getHibernateTemplate().findByNamedQuery(queryName, value);
}

/**
*
* @param queryName
* @param values
* @return
*/
@SuppressWarnings("unchecked")
public List<T> findByNamedQuery(String queryName, Object[] values) {
return getHibernateTemplate().findByNamedQuery(queryName, values);
}

/**
* 根據屬性查詢
*
* @param property
* @param value
* @return
*/
@SuppressWarnings("unchecked")
public List<T> findByProperty(String property, Object value) {
return this.getHibernateTemplate().findByCriteria(
DetachedCriteria.forClass(type()).add(Restrictions.eq(property, value)));
}

/**
* 分頁查詢
* 注:不能滿足要求子類重寫該方法
* @param t
* @param firstResult
* @param maxResult
* @return 返回分頁查詢的數據
*/
@SuppressWarnings("unchecked")
public List<T> findByPagination(final T t, final int firstResult, final int maxResult) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(type());
criteria.add(Example.create(t).enableLike(MatchMode.ANYWHERE));
criteria.setFirstResult(firstResult);
criteria.setMaxResults(maxResult);
return criteria.list();
}
});
}

/**
* 分頁統計查詢
*
* @param t
* @return 一共有多少條數據
*/
@SuppressWarnings("unchecked")
public int countByPagination(final T t) {
return (Integer) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(type());
criteria.setProjection(Projections.rowCount());
criteria.add(Example.create(t).enableLike(MatchMode.ANYWHERE));
return criteria.uniqueResult();
}
});
}
}

反射類:

public class ClassInfoDAO{

@SuppressWarnings("unchecked")
protected Class type() {
return User.class;
}

}

⑶ spring中配置MySql數據源,怎樣配置資料庫信息

我知道的有兩種:
一種:
單獨寫個jdbc.properties,在裡面配置
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/school
jdbc.username=root
jdbc.password=root
然後,在applicationContext中設置你的jdbc.properties路徑:
<bean id="propertyConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>

在dataSource bean中把你配置中的參數引用:
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${jdbc.driverClassName}</value>
</property>

<property name="url">
<value>${jdbc.url}</value>
</property>

<property name="username">
<value>${jdbc.username}</value>
</property>

<property name="password">
<value>${jdbc.password}</value>
</property>
</bean>

二種,這種比較簡單點兒,就直接在datasource bean中把jdbc.properties中的值在裡面對應的地方配置就可以了。

⑷ spring的資料庫連接池和JDBC選哪個更好

jdbc和連接池對於你這個場景來說,都足夠,既然用spring管理了,建議還是使用連接池,另外,spring自身沒有實現連接池,一般都是對第三方連接池的包裝,常見的有C3P0,dbcp以及最近比較流行的boneCP等,這幾個配置都差不多太多,以boneCP為例:
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"
destroy-method="close">
<property name="driverClass" value="${jdbc.driverClass}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="username" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
<property name="idleConnectionTestPeriod" value="60" />
<property name="idleMaxAge" value="240" />
<property name="maxConnectionsPerPartition" value="30" />
<property name="minConnectionsPerPartition" value="10" />
<property name="partitionCount" value="2" />
<property name="acquireIncrement" value="5" />
<property name="statementsCacheSize" value="100" />
<property name="releaseHelperThreads" value="3" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>

使用jdbcTemplate做你的數據操作即可,jdbcTemplate是spring對jdbc的封裝,很實用,也很簡單,樓主可以了解下。

⑸ Spring連接資料庫的幾種常用方法

資料庫是按照數據結構來組織、存儲和管理數據的倉庫,它產生於距今六十多年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以後,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。資料庫有很多種類型,從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型資料庫系統都在各個方面得到了廣泛的應用。在信息化社會,充分有效地管理和利用各類信息資源,是進行科學研究和決策管理的前提條件。資料庫技術是管理信息系統、辦公自動化系統、決策支持系統等各類信息系統的核心部分,是進行科學研究和決策管理的重要技術手段。資料庫是一個單位或是一個應用領域的通用數據處理系統,它存儲的是屬於企業和事業部門、團體和個人的有關數據的集合。資料庫中的數據是從全局觀點出發建立的,按一定的數據模型進行組織、描述和存儲。其結構基於數據間的自然聯系,從而可提供一切必要的存取路徑,且數據不再針對某一應用,而是面向全組織,具有整體的結構化特徵。資料庫中的數據是為眾多用戶所共享其信息而建立的,已經擺脫了具體程序的限制和制約。不同的用戶可以按各自的用法使用資料庫中的數據;多個用戶可以同時共享資料庫中的數據資源,即不同的用戶可以同時存取資料庫中的同一個數據。數據共享性不僅滿足了各用戶對信息內容的要求,同時也滿足了各用戶之間信息通信的要求。

⑹ 用spring框架顯示資料庫的數據在網頁上

你需要學習web方面的一些知識,比如httpclient或者servelet。當然struts2也可以
spring只是用來做依賴注入的,也就是說不需要new對象,就可以調用對象的方法。
你可以用網頁向後台發送請求,然後後台連接資料庫,將數據取出來,發送到網頁上,用js來截取,顯示到網頁上去。中間可能要用到ajax,連接資料庫的話或許可以用mybatis等等

⑺ Spring中如何配置多個資料庫連接

1.解決方案:
property name="<.commons; value=" value="close".properties文件
2.配置多個資料庫:
jdbc;minEvictableIdleTimeMillis"driverClassName".maxActive}" /
password}".url}"${jdbc;>.driver;3600000"maxActive";>${jdbc.driver}"
/username"${dbcp;
</ value=".dbcp;url".BasicDataSource"
< value="bean id=".username}"
< value="
<>password"${dbcp;org.;dataSource"false" /
<property name=" destroy-method="3600000"
application;property name=" class=",property name="
< value=">.apache; value=" /property name=">
<${jdbc;property name="property name=">.;

⑻ spring動態選擇資料庫,怎麼做比較好

層的話,每個資料庫都要實現一套,而且命名要規范

比如說:UserDao.java 這個介面,Oracle 實現就為 UserDaoOracle.java,MySQL 實現就為 UserDaoMySQL.java

所有的 需要使用工廠方法返回 的實例,工廠方法中把用戶所選擇的資料庫名稱傳進去,比如說:

public static UserDao DaoFactory.getUserDao(String database);

傳進去的 database 比如說是 "Oracle",那麼就根據命名規則:

String clazz = "com.test.." + database.toLowerCase() + ".UserDao" + database;

再使用反射產生 clazz 的對象就可以了。

⑼ spring mvc中如何讀取資料庫

實現方法如下:
web.xml中
<servlet>
<servlet-name>t1</servlet-name>
<servlet-class>com.abc.test.T1</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet> <load-on-startup>標記web容器是否在啟動的時候就載入這個servlet,當值為0或者大於0時,表示web容器在應用啟動時就載入這個servlet;
當是一個負數時或者沒有指定時,則指示容器在該servlet被選擇時才載入;
正數的值越小,啟動該servlet的優先順序越高。

⑽ spring事務和資料庫資料庫事務的區別

本質上其實是同一個概念,spring的事務是對資料庫的事務的封裝,最後本質的實現還是在資料庫,假如資料庫不支持事務的話,spring的事務是沒有作用的.資料庫的事務說簡單就只有開啟,回滾和關閉,spring對資料庫事務的包裝,原理就是拿一個數據連接,根據spring的事務配置,操作這個數據連接對資料庫進行事務開啟,回滾或關閉操作.但是spring除了實現這些,還配合spring的傳播行為對事務進行了更廣泛的管理.其實這里還有個重要的點,那就是事務中涉及的隔離級別,以及spring如何對資料庫的隔離級別進行封裝.事務與隔離級別放在一起理解會更好些.以上回答希望能幫助到你.

熱點內容
tiobe編程語言社區 發布:2024-12-26 10:48:11 瀏覽:423
日立存儲微碼升級 發布:2024-12-26 10:43:48 瀏覽:152
如何建立家庭網站伺服器 發布:2024-12-26 10:40:46 瀏覽:185
安卓顯示e是什麼意思 發布:2024-12-26 10:35:13 瀏覽:705
電磁爐編程 發布:2024-12-26 10:30:51 瀏覽:97
經典福克斯壓縮比是多少 發布:2024-12-26 10:26:33 瀏覽:747
存取速度最快的存儲器是 發布:2024-12-26 10:17:39 瀏覽:66
我的世界伺服器只能邊跳邊走 發布:2024-12-26 09:55:26 瀏覽:464
銹湖綠色盒子密碼是什麼 發布:2024-12-26 09:53:16 瀏覽:205
mysql資料庫連接類 發布:2024-12-26 09:49:21 瀏覽:83