07_資料庫建立,新增c3p0操作所需的jar包,編寫c3p0-config.xml檔案,編寫User.java,編寫jdbcUtils.java實現操作資料庫的模板工具類,UserDao編寫,Dao
1建立day14資料庫,建立user.sql表:
A 建立資料庫 day14
B 建立資料表 users
createtable users
(
id intprimarykeyauto_increment,
username varchar(20),
passwordvarchar(20)
);
2新增依賴的jar包
c3p0-0.9.1.2.jar |
mysql-connection-java-5.0.8-bin.jar |
commons-beanutils-1.8.0.jar |
commons-logging.jar |
3編寫c3p0-config.xml
<?xml version="1.0" encoding="utf-8"?> <c3p0-config> <default-config> <property name="initialPoolSize">5</property> <property name="maxPoolSize">20</property> < <property name="jdbcUrl">jdbc:mysql://localhost:3306/day14</property> <property name="user">root</property> <property name="password">123456</property> </default-config> <named-config <property name="initialPoolSize">5</property> <property name="maxPoolSize">20</property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/day14</property> <property name="user">root</property> <property name="password">123456</property> </named-config> </c3p0-config> |
4 編寫User.java
package cn.toto.domain; publicclass User { privateintid; private String username; private String password; publicint getId() { returnid; } publicvoid setId(int id) { this.id = id; } public String getUsername() { returnusername; } publicvoid setUsername(String username) { this.username = username; } public String getPassword() { returnpassword; } publicvoid setPassword(String password) { this.password = password; } public User() { super(); } } |
5 編寫jdbcUtils.java
package cn.toto.utils; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.sql.DataSource; import cn.toto.exception.DaoException; import com.mchange.v2.c3p0.ComboPooledDataSource; public class JdbcUtils { private static DataSource ds; static { //ds = new ComboPooledDataSource();//預設的預設的配置 ds = new ComboPooledDataSource("toto");//配置檔案中設定的內容 } //獲取與指定資料的連線 public static DataSource getSource(){ return ds; } //獲得與指定資料庫的連線 public static Connection getConnection() throws SQLException { //從連線池返回一個連線 return ds.getConnection(); } //釋放資源 public static void release(ResultSet rs,Statement stmt,Connection conn) { if(rs!=null){ try{ rs.close(); }catch(SQLException e){ e.printStackTrace(); } rs = null; } if(stmt!=null){ try{ stmt.close(); }catch(SQLException e){ e.printStackTrace(); } stmt=null; } if(conn!=null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } conn = null; } } //寫一個通過的增刪改方法 public static boolean update(String sql,Object[] params) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { //獲得連線 conn = getConnection(); //寫SQL //預編譯sql pstmt = conn.prepareStatement(sql); //替換引數 int pos = 1;//設定一個腳標 //for(Object param : params)這樣寫是有錯誤的,會有空指標異常,要寫成如下的方法: pstmt.setObject(i+1, params[1]);//由於不知道是什麼型別的,故可以用Object //傳送sql int num = pstmt.executeUpdate(); //返回結果 if(num>0) return true; return false; } catch (SQLException e) { throw new DaoException(e); }finally{ release(rs,pstmt,conn); } } //實現一個通用的查詢方法 public static Object query(String sql,Object[] params,ResultSetHandler handler){ Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ conn = getConnection(); //寫sql //預編譯sql pstmt = conn.prepareStatement(sql); //替換引數 for(int i=0;params!=null&&i<params.length;i++) pstmt.setObject(i+1, params[1]);//由於不知道是什麼型別的,故可以用Object //傳送sql rs = pstmt.executeQuery(); //處理結果集 /*我們在方法中需要一種功能讓呼叫者裡呼叫 * 在方法的內部都有一個模組不會寫,有變化,需要留給呼叫者來處理*/ //這時我們需要用一種設計模式策略模式 TreeSet //TreeSet實現排序,只是實現了部分功能(二叉樹,還有沒實現的) //(元素的比較) 讓我們傳入比較器來實現 //讓我們傳入比較器實現Comparator的compare方法 /*元素的自然順序實現Comparable介面的compareTo方法*/ //向呼叫者要一個結果集處理器 Object result = handler.handle(rs);//呼叫結果處理器的handle方法,它返回的結果就是我們想要的。將結果集變成了一個物件 return result; }catch(SQLException e){ throw new DaoException(e); }finally { release(rs,pstmt,conn); } } } //寫一個通過的增刪改方法 public static boolean update(String sql,Object[] params) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { //獲得連線 conn = getConnection(); //寫SQL //預編譯sql pstmt = conn.prepareStatement(sql); //替換引數 int pos = 1;//設定一個腳標 for(Object param : params) pstmt.setObject(pos, param);//由於不知道是什麼型別的,故可以用Object //傳送sql int num = pstmt.executeUpdate(); //返回結果 if(num>0) return true; return false; } catch (SQLException e) { throw new DaoException(e); }finally{ release(rs,pstmt,conn); } } } |
6 編寫UserDao.java
package cn.toto.dao; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import cn.toto.domain.User; import cn.toto.exception.DaoException; import cn.toto.utils.BeanHandler; import cn.toto.utils.BeanListHandler; import cn.toto.utils.JdbcUtils; import cn.toto.utils.ResultSetHandler; publicclass UserDao { public List<User> getAll() { //寫sql String sql = "select * from users"; //封裝引數 //實現結果集處理器也可以用預設的實現類 List list = (List) JdbcUtils.query(sql, null, new BeanListHandler(User.class)); return list; } public User find(int id){ String sql = "select * from users where id = ?"; //呼叫方法 User user = (User) JdbcUtils.query(sql, new Object[]{id}, new BeanHandler(User.class)); return user; } publicboolean insert(User user) { /*//寫Sql String sql = "insert into users(username,password) values(?,?)"; //封裝引數 Object[] params = new Object[2]; params[0] = user.getUsername(); params[1] = user.getPassword(); //呼叫新方法 boolean b = JdbcUtils.update(sql, params); return b;*/ String sql = "insert into users(username,password) values(?,?)"; boolean b = JdbcUtils.update(sql, new Object[]{user.getUsername(),user.getPassword()});
相關推薦Struts2、hibernate和spring下載,整合所需jar包ssh三個框架各自所有版本下載地址如下 Struts framework 下載地址: spring framework 下載地址: ------------------------------------- struts2 commons-logging 搭建SSH環境之新增所需jar包<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" struts2,hibernate,spring下載整合所需JAR包原文地址:http://blog.csdn.net/zhuo889/article/details/9468225 ssh三個框架各自所有版本下載地址如下 Struts framework 下載地址: http://mirror.bjtu.edu.cn/apache/struts/bi 使用SAXReader所需jar包使用SAXReader需要兩個jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar 記錄一下 SSH框架學習(一)——匯入框架所需jar包SSH框架學習(一)——匯入框架所需jar包 一、建立一個web專案 二、匯入Struts2的jar包 三、匯入Hibernate的jar包 四、匯入Spring的jar包 IOC開發: AOP開發: 五、引入整合 下載ssm框架所需jar包 和 meaven結構。<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= springmvc 專案完整示例07 設定配置整合springmvc springmvc所需jar包springmvc web.xml檔案配置前面主要是後臺程式碼,spring以及mybatis的整合 下面主要是springmvc用來處理請求轉發,展現層的處理 之前所有做到的,完成了後臺,業務層和持久層的開發完成了 接下來就是展現層了 有很多的mvc框架,這裡我們用springMVC 首先還是需要jar包 我們既然是web專案了 spring+mybatis+struts2 所需jar包c3p0-0.9.1.2.jar cglib-nodep-2.2.jar commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang-2.5.jar commons-logging-1.1.1.jar fre ssm框架所需jar包依賴新增的jar包依賴名 <dependencies> <!-- 測試用的包 --> <dependency> <groupId>junit</groupId> java 讀取Excel所需jar包包地址:http://download.csdn.net/detail/xiaoshixiu/9446010 中間三個包是poi相關包,用於處理xls和xlsx等Excel檔案,但是僅僅這兩個不夠 SSM整合所需jar包1.3 pre express 表達 repo 博文 校驗 版權 freemark MySql驅動包 mysql-connector-java-5.1.7-bin.jar MyBatis的核心包和依賴包 mybatis-3.2.7.jar(核心包)a 07_資料庫建立,新增c3p0操作所需的jar包,編寫c3p0-config.xml檔案,編寫User.java,編寫jdbcUtils.java實現操作資料庫的模板工具類,UserDao編寫,Dao 1建立day14資料庫,建立user.sql表: A 建立資料庫 day14 B 建立資料表 users createtable users ( id eclipse下使用java api 進行hbase的常用的操作所需的jar包,以及如何檢視java build path下的jar是否使用對於學習hbase的初學者來說,使用java開發的時候很多朋友直接將hbase/lib下面的所有jar包全部都匯入java build path-->libraries中,但實際上常用的操作,比如建表,刪表,使用各種濾波器進行各種查詢等操作用的jar不多,大部分匯入的 Android Service完全解析,關於服務你所需知道的一切(下)並且 無法 數據類型 界面 其它 wid logcat listen 程序崩潰 文章轉載至:http://blog.csdn.net/guolin_blog/article/details/9797169 這是郭霖寫的.......就是寫 "第一行代碼"的那個厲害人物,大 Android Service完全解析,關於服務你所需知道的一切(上)(筆記)參考原文:Android Service完全解析,關於服務你所需知道的一切(上) Service的基本用法 然後新建一個MyService繼承自Service,並重寫父類的onCreate()、onStartCommand()和onDestroy()方法, 可以看到,在Sta Python中自己寫一個計時器,計算一個過程所需秒數import time import sys import numpy as np i = np.arange(1, 5000) def k_timer(bool_start_end, start_time): if bool_start_end: return tim SQL server中刪除synonym時報不存在,或者您沒有所需的許可權sql server 2008 使用sa登入的。建立了synonym成了,但是刪除時發生下面的錯誤資訊: 建立>create synonym dbo.test1 for table_test; 檢視所有同義詞>select * Android Fragment完全解析,關於碎片你所需知道的一切我們都知道,Android上的介面展示都是通過Activity實現的,Activity實在是太常用了,我相信大家都已經非常熟悉了,這裡就不再贅述。但是Activity也有它的侷限性,同樣的介面在手機上顯示可能很好看,在平板上就未必了,因為平板的螢幕非常大,手機的介面放在平板上 Android Scroller完全解析,關於Scroller你所需知道的一切轉載請註明出處:http://blog.csdn.net/guolin_blog/article/details/48719871 2016大家新年好!這是今年的第一篇文章,那麼應CSDN工作人員的建議,為了能給大家帶來更好的閱讀體驗,我也是將部落格換成了寬屏 Android Service完全解析,關於服務你所需知道的一切(上)相信大多數朋友對Service這個名詞都不會陌生,沒錯,一個老練的Android程式設計師如果連Service都沒聽說過的話,那確實也太遜了。Service作為Android四大元件之一,在每一個應用程式中都扮演著非常重要的角色。它主要用於在後臺處理一些耗時的邏輯,或者去執行 |