最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring通過jdbc連接數(shù)據庫

 更新時間:2019年08月21日 11:07:56   作者:just_you_java  
這篇文章主要為大家詳細介紹了spring通過jdbc連接數(shù)據庫的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了spring通過jdbc連接數(shù)據庫的具體代碼,供大家參考,具體內容如下

首先看下整個工程的架構目錄:

需要的jar包:

一、建表

create table student(
 id int primary key auto_increment,
 name varchar(32),
 age int,
 phone varchar(32)
);

二、新建與數(shù)據庫對應JavaBean

package com.etoak.bean;
 
public class Student {
 /**
 * 一個標準的javaBean對象 : 
 *  表字段對應的屬性
 *  屬性對應的getter、setter方法
 *  無參構造器
 *  除id[主鍵]之外其他參數(shù)組成的構造器
 *  所有參數(shù)組成的構造器
 */
 
 private Integer id;
 private String name;
 private Integer age;
 private String phone;
 public Student() {
 super();
 }
 public Student(String name, Integer age, String phone) {
 super();
 this.name = name;
 this.age = age;
 this.phone = phone;
 }
 public Student(Integer id, String name, Integer age, String phone) {
 super();
 this.id = id;
 this.name = name;
 this.age = age;
 this.phone = phone;
 }
 public Integer getId() {
 return id;
 }
 public void setId(Integer id) {
 this.id = id;
 }
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public Integer getAge() {
 return age;
 }
 public void setAge(Integer age) {
 this.age = age;
 }
 public String getPhone() {
 return phone;
 }
 public void setPhone(String phone) {
 this.phone = phone;
 }
}

三、spring的applicationContext配置文件

<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
 http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context-3.2.xsd">
 
 <!-- 
 使用spring提供的整合jdbc功能
 需要導入DAO層提供的兩個jar包[spring-jdbc spring-tx]
 
 通過ioc依賴注入 將JdbcTemplate注入給StuDaoImpl
 -->
 <bean id="dao" class="com.etoak.dao.StuDaoImpl">
 <!-- 
  name="jt"  setJt(JdbcTemplate jt)
  ref="jt"  id="jt"
  自定義對象 ref=""
  -->
 <property name="jt" ref="jt"></property>
 </bean>
 
 <bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
 <property name="dataSource" ref="ds"></property>
 </bean>
 <!-- 
 此時的JdbcTemplate還不具備數(shù)據庫連接能力
 為了讓其具備數(shù)據庫連接能力,需要為其提供DataSource 連接池、數(shù)據源
  setDataSource(DataSource ds)
 需要在ioc容器中再配置一個DataSource對象:
  driverClassName
  url
  username
  password
  maxIdle
  maxActive
  maxWait
 
 DataSource 接口
  1 實現(xiàn)類  
  BasicDataSource  commons-dbcp.jar
  spring框架自帶了DataSource實現(xiàn)類
  DriverManagerDataSource
   setDriverClassName(String driver)
   setUrl(String url)
   setUsername(String u)
   setPassword(String p)
  [
   ref屬性 : 表示調用該方法需要注入的數(shù)據類型 : 自定義類型/引用類型
   value屬性 : 表示調用該方法需要注入的數(shù)據類型 : 基本數(shù)據類型/String類型/Class類型
  ] 
  2 工廠bean
 -->
 <bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
 <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
 <property name="url" value="jdbc:mysql://localhost:3306/etoak"/>
 <property name="username" value="root"/>
 <property name="password" value="root"/>
 </bean>
 
</beans>

四、編寫Dao

package com.etoak.dao;
 
import java.util.List;
import java.util.Map;
 
import org.springframework.jdbc.core.JdbcTemplate;
 
import com.etoak.bean.Student;
 
/**
 * 使用jdbc方式對student表數(shù)據進行CRUD操作
 *  1 傳統(tǒng)的jdbc開發(fā)方式 [ConFactory ...]
 *  2 spring提供的整合方案  JdbcTemplate
 */
public class StuDaoImpl {
 
 private JdbcTemplate jt;
 public void setJt(JdbcTemplate jt) {
 this.jt = jt;
 }
 
 /**
 * JdbcTemplate將連接數(shù)據庫執(zhí)行添加操作的流程封裝在其update(sql)
 */
 public boolean addStu(Student stu){
 String sql = "insert into student values(null,?,?,?)";
 Object[] args = {stu.getName() , stu.getAge() , stu.getPhone()};
 int result = jt.update(sql , args);
 // result 執(zhí)行當前操作影響的數(shù)據量
 return result==1;
 }
 
 public boolean delStuById(Integer id){
 String sql = "delete from student where id="+id;
 return jt.update(sql)==1;
 }
 public boolean updateStu(Student stu){
 String sql = "update student set name=?,age=?,phone=? where id=?";
 Object[] args = {stu.getName() , stu.getAge() , stu.getPhone() , stu.getId()};
 return jt.update(sql , args)==1;
 }
 
 /**
 * jt.queryForMap(sql) - Map 
 *  Jdbc不是ORM工具,不知道sql查詢的對應哪個對象
 *  只能將查詢出的關系型數(shù)據封裝在一個Map集合中返回
 *  {字段名=字段值,...}
 *  map.get("id/name/age/phone") 
 * 注意 : 
 *  在使用queryForMap(sql)查詢單條數(shù)據時
 *  必須能夠確保根據傳入的sql語句能夠并且只能查詢出單條數(shù)據
 *  否則使用該方法會拋出異常
 */
 public Map selStuById(Integer id){
 String sql = "select * from student where id="+id;
 Map map = jt.queryForMap(sql);
 return map;
 }
 
 // List<Map> 每一個student被封裝成了一個Map對象
 public List selectAllStus(){
 String sql = "select * from student";
 return jt.queryForList(sql);
 }
 
 public int selectStuCount(){
 String sql = "select count(*) from student";
 return jt.queryForInt(sql);
 }
 
 public List selectStusByPage(int start , int max){
 String sql = "select * from student limit ?,?";
 Object[] args = {start , max};
 return jt.queryForList(sql , args);
 }
}

五、測試

package com.etoak.test;
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
import com.etoak.bean.Student;
import com.etoak.dao.StuDaoImpl;
 
public class Test {
 
 public static void main(String[] args) {
 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
 StuDaoImpl dao = (StuDaoImpl)ac.getBean("dao");
 Student stu = new Student("sheldon",30,"111");
 boolean flag = dao.addStu(stu);
 System.out.println(flag);
 }
 
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java 入門圖形用戶界面設計之事件處理上

    Java 入門圖形用戶界面設計之事件處理上

    圖形界面(簡稱GUI)是指采用圖形方式顯示的計算機操作用戶界面。與早期計算機使用的命令行界面相比,圖形界面對于用戶來說在視覺上更易于接受,本篇精講Java語言中關于圖形用戶界面的事件處理
    2022-02-02
  • springboot項目連接多種數(shù)據庫該如何操作詳析

    springboot項目連接多種數(shù)據庫該如何操作詳析

    在Spring Boot應用中連接多個數(shù)據庫或數(shù)據源可以使用多種方式,下面這篇文章主要給大家介紹了關于springboot項目連接多種數(shù)據庫該如何操作的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-08-08
  • Android中的LinearLayout布局

    Android中的LinearLayout布局

    在一般情況下,當有很多控件需要在一個界面列出來時,我們就可以使用線性布局(LinearLayout)了,線性布局是按照垂直方向(vertical)或水平方向(horizontal)的順序依次排序子元素,每一個子元素都位于前一個元素之后,下面我們就簡單的了解一下吧
    2017-01-01
  • Java實現(xiàn)登錄與注冊頁面

    Java實現(xiàn)登錄與注冊頁面

    這篇文章主要為大家詳細介紹了Java實現(xiàn)登錄與注冊頁面,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Java實現(xiàn)學生信息管理系統(tǒng)(使用數(shù)據庫)

    Java實現(xiàn)學生信息管理系統(tǒng)(使用數(shù)據庫)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)學生信息管理系統(tǒng),使用數(shù)據庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 手把手帶你理解java線程池之工作隊列workQueue

    手把手帶你理解java線程池之工作隊列workQueue

    這篇文章主要介紹了java線程池之工作隊列workQueue,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Java swing實現(xiàn)的計算器功能完整實例

    Java swing實現(xiàn)的計算器功能完整實例

    這篇文章主要介紹了Java swing實現(xiàn)的計算器功能,結合完整實例形式分析了java基于swing組件實現(xiàn)計算器布局與運算功能的具體操作技巧,需要的朋友可以參考下
    2017-12-12
  • Java線程池隊列PriorityBlockingQueue原理分析

    Java線程池隊列PriorityBlockingQueue原理分析

    這篇文章主要介紹了Java線程池隊列PriorityBlockingQueue原理分析,PriorityBlockingQueue隊列是?JDK1.5?的時候出來的一個阻塞隊列,但是該隊列入隊的時候是不會阻塞的,永遠會加到隊尾,需要的朋友可以參考下
    2023-12-12
  • Java實現(xiàn) 基于密度的局部離群點檢測------lof算法

    Java實現(xiàn) 基于密度的局部離群點檢測------lof算法

    這篇文章主要介紹了Java實現(xiàn) 基于密度的局部離群點檢測------lof算法,本文通過算法概述,算法Java源碼,測試結果等方面一一進行說明,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • Spring解決依賴版本不一致報錯問題

    Spring解決依賴版本不一致報錯問題

    許多同學經常會遇到依賴版本不一致導致代碼報錯,所以這篇文章就給大家詳細介紹一下Spring解決依賴版本不一致報錯問題,需要的朋友跟著小編一起來看看吧
    2023-07-07

最新評論

股票| 淅川县| 宣化县| 丽江市| 石门县| 庆阳市| 富锦市| 克什克腾旗| 青龙| 尚义县| 高雄市| 大洼县| 迁安市| 北辰区| 平塘县| 登封市| 积石山| 邵阳县| 张家口市| 遵义市| 金湖县| 特克斯县| 聂拉木县| 灌云县| 大英县| 北辰区| 开化县| 洪洞县| 高密市| 韩城市| 黄浦区| 确山县| 富顺县| 策勒县| 琼中| 漳州市| 伊吾县| 汪清县| 兴化市| 依安县| 南乐县|