<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Kela's Blog

                前面的路很坎坷,但畢竟是條路.也許走過這一段就會(huì)發(fā)現(xiàn),走過去就是夢(mèng)想中的地方.因此堅(jiān)持成為此刻唯一能做且必須去做的事情.
    posts - 9, comments - 27, trackbacks - 0, articles - 15

    摘要:一個(gè)使用了DataSource注入的完整AOP例子。

    ?

    ???? IUserDAO.java

    ?

    完成一個(gè)插入和查詢方法

    package com.kela.spring.jdbc;

    ?

    public interface IUserDAO {

    ???

    ??? public void insert(User user);

    ??? public User find(Integer id);

    }

    ?

    ???? User.java

    同上一節(jié)

    ???? UserDAO.java

    ?

    package com.kela.spring.jdbc;

    ?

    import java.sql.Connection;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    ?

    import javax.sql.DataSource;

    ?

    import com.kela.spring.util.Util;

    ?

    public class UserDAO implements IUserDAO {

    ???

    ??? private DataSource dataSource;

    ???

    ??? public DataSource getDataSource() {

    ??????? return dataSource;

    ??? }

    ?

    ??? public void setDataSource(DataSource dataSource) {

    ??????? this.dataSource = dataSource;

    ??? }

    ?

    ??? public void insert(User user) {

    ??????? String name = user.getName();

    ??????? int age = user.getAge().intValue();

    ?

    ??????? String sql = "INSERT INTO user (name, age) VALUES ('" + name + "', " + age + ")";

    ??????? // 為解決Mysql5.0的中文問題,轉(zhuǎn)碼

    ??????? sql = Util.GBKToISO(sql);

    ???????

    ??????? Connection conn = null;

    ??????? Statement stmt = null;

    ???????

    ??????? try {

    ??????????? conn = dataSource.getConnection();

    ??????????? stmt = conn.createStatement();

    ??????????? stmt.execute(sql);

    ???????????

    ??????? } catch (SQLException e) {

    ??????????? e.printStackTrace();

    ??????? } finally {

    ??????????? if(stmt != null) {

    ??????????????? try {

    ??????????????????? stmt.close();

    ??????????????? } catch (SQLException e) {

    ??????????????????? e.printStackTrace();

    ??????????????? }

    ??????????? }

    ??????????? if(conn != null) {

    ??????????????? try {

    ??????????????????? conn.close();

    ??????????????? } catch (SQLException e) {

    ??????????????????? e.printStackTrace();

    ??????????????? }

    ??????????? }

    ??????? }

    ???????

    ???

    ??? }

    ?

    ??? public User find(Integer id) {

    ???????

    ??????? String sql = "SELECT * FROM user WHERE id = " + id.intValue();

    ???????

    ??????? Connection conn = null;

    ??????? Statement stmt = null;

    ???????

    ??????? try {

    ??????????? conn = dataSource.getConnection();

    ??????????? stmt = conn.createStatement();

    ???????????

    ??????????? ResultSet rs = stmt.executeQuery(sql);

    ??????????? if(rs.next()) {

    ??????????????? Integer i = new Integer(rs.getInt(1));

    ??????????????? String name = Util.getStr(rs.getString(2));// 轉(zhuǎn)碼

    ??????????????? Integer age? = new Integer(rs.getInt(3));

    ???????????????

    ??????????????? User user = new User();

    ??????????????? user.setId(i);

    ??????????????? user.setAge(age);

    ??????????????? user.setName(name);

    ???????????????

    ??????????????? return user;

    ??????????? }

    ??????? } catch(SQLException e) {

    ??????????? e.printStackTrace();

    ??????? } finally {

    ??????????? if(stmt != null) {

    ??????????????? try {

    ??????????????????? stmt.close();

    ??????????????? } catch (SQLException e) {

    ??????????????????? e.printStackTrace();

    ??????????????? }

    ??????????? }

    ??????????? if(conn != null) {

    ??????????????? try {

    ??????????????????? conn.close();

    ??????????????? } catch (SQLException e) {

    ??????????????????? e.printStackTrace();

    ??????????????? }

    ??????????? }

    ??????? }

    ???????

    ??????? return null;

    ??? }

    ?

    }

    ?

    ?

    ???? Beans-config.xml

    ?

    注入了DataSource的實(shí)例,這里使用了DBCP來獲得連接池的功能,如果需要其他連接設(shè)置,直接在修改該配置文件即可。另外需要,DBCP所需要的.jar文件(commons-dbcp.jar, commons-pool.jar, commons-collections.jar)。

    ?

    <?xml version= "1.0" encoding= "UTF-8" ?>

    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" >

    ?

    <beans>

    ??? <bean id= "dataSource" class= "org.apache.commons.dbcp.BasicDataSource" destroy-method= "close" >

    ?????? <property name= "driverClassName" >

    ?????????? <value> com.mysql.jdbc.Driver </value>

    ?????? </property>

    ??????

    ?????? <property name= "url" >

    ?????????? <value> jdbc:mysql://127.0.0.1:3306/demo </value>

    ?????? </property>

    ??????

    ?????? <property name= "username" >

    ?????????? <value> root </value>

    ?????? </property>

    ??????

    ?????? <property name= "password" >

    ?????????? <value></value>

    ?????? </property>

    ??? </bean>

    ???

    ??? <bean id= "userDAO" class= "com.kela.spring.jdbc.UserDAO" >

    ?????? <property name= "dataSource" >

    ?????????? <ref bean= "dataSource" />

    ?????? </property>

    ??? </bean>

    </beans>

    ?

    ?

    ???? SpringDAODemo.java

    ?

    最后是測(cè)試類

    ?

    package com.kela.spring.jdbc;

    ?

    import org.springframework.context.ApplicationContext;

    import org.springframework.context.support.FileSystemXmlApplicationContext;

    ?

    public class SpringDAODemo {

    ???

    /**

    * 測(cè)試insert()

    */

    ??? public void method_1() {

    ??????? try {

    ??????????? ApplicationContext context = new FileSystemXmlApplicationContext(

    ??????????????????? "bin\\beans-config.xml");

    ??????????? User user = new User();

    ??????????? user.setName("kela001");

    ??????????? user.setAge(new Integer(27));

    ?

    ??????????? IUserDAO userDao = (IUserDAO) context.getBean("userDAO");

    ??????????? userDao.insert(user);

    ??????????? System.out.println("** OK **");

    ??????? } catch (Exception e) {

    ??????????? System.out.println("[ERROR]" + e.getMessage());

    ??????? }

    ??? }

    ???

    ??? public void method_2() {

    ??????? try {

    ??????????? ApplicationContext context = new FileSystemXmlApplicationContext(

    ??????????????????? "bin\\beans-config.xml");

    ??????????? User user = new User();

    ??????????? IUserDAO userDao = (IUserDAO) context.getBean("userDAO");

    ??????????? user = userDao.find(new Integer(1));

    ??????????? System.out.println("name:" + user.getName());

    ??????????? System.out.println("age:" + user.getAge());

    ??????????? System.out.println("** OK **");

    ??????? } catch (Exception e) {

    ??????????? System.out.println("[ERROR]" + e.getMessage());

    ??????? }

    ??? }

    ??? public static void main(String[] args) {

    ??????? SpringDAODemo springDAODemo = new SpringDAODemo();

    ??????? springDAODemo.method_1();

    springDAODemo.method_2();

    ??? }

    }

    ?

    ???? demo.sql

    ?

    create table user (

    id int(11) not null auto_increment ERIMARY KEY,

    name varchar(20),

    age int(3));


    ?

    ???? Util.java

    ?

    測(cè)試中用的轉(zhuǎn)碼工具類

    ?

    package com.kela.spring.util;

    ?

    import java.io.UnsupportedEncodingException;

    ?

    public class Util {

    ???

    ??? public static String getStr(String str) {

    ??????? try {

    ??????????? String temp_p = str;

    ??????????? byte[] temp_t = temp_p.getBytes("ISO8859-1");

    ??????????? // 使用ISO8859-1字符集解碼字節(jié)的指定數(shù)組

    ??????????? String temp = new String(temp_t);

    ??? ??????? return temp;

    ??????? } catch(UnsupportedEncodingException ex) {

    ??????????? ex.printStackTrace();

    ??????????? return "";

    ??????? }

    ??? }

    ???

    ??? /**

    ??? ?* 方法是使用指定的字符集(ISO8859-1)解碼指定的字節(jié)數(shù)組(GBK)

    ??? ?* @param str

    ??? ?* @return

    ??? ?*/

    ??? public static String GBKToISO(String str) {

    ??????? if(str == null) {

    ??????????? str = "";

    ??????? } else {

    ??????????? try {

    ??????????????? str = new String(str.getBytes("GBK"), "ISO8859-1");

    ??????????? } catch (Exception e) {

    ??????????????? e.printStackTrace();

    ??????????? }

    ???????????

    ??????? }

    ???????

    ??????? return str;

    ??? }

    }

    ?

    分享到:
    主站蜘蛛池模板: 免费看黄的成人APP| 免费国产黄线在线观看| 日本免费一区二区久久人人澡| 最近免费视频中文字幕大全| 国产伦精品一区二区三区免费迷 | 一区二区3区免费视频| 日韩中文字幕免费视频| 日韩亚洲国产二区| 久久久亚洲欧洲日产国码是AV| 亚洲av无码一区二区三区天堂| 97在线视频免费公开观看| 亚洲综合一区二区精品导航| 成人a毛片视频免费看| 国产精品美女午夜爽爽爽免费| 亚洲自国产拍揄拍| 国产在线观看免费av站| 免费国产高清视频| 亚洲熟女综合色一区二区三区| 午夜无码A级毛片免费视频| 亚洲国产精品尤物YW在线观看| 国产成人精品日本亚洲18图| 最近免费中文字幕视频高清在线看| 黑人精品videos亚洲人| 一边摸一边桶一边脱免费视频| 国产亚洲精品激情都市| 国产午夜亚洲精品不卡免下载| 我要看WWW免费看插插视频| 色偷偷尼玛图亚洲综合| 亚洲色成人网站WWW永久| 九九免费精品视频在这里| 亚洲综合日韩久久成人AV| 尤物视频在线免费观看| 亚洲成AV人片天堂网无码| a级成人毛片免费图片| 亚洲色自偷自拍另类小说| 一级毛片全部免费播放| 亚洲中文字幕乱码熟女在线| 亚洲男女内射在线播放| 一级日本高清视频免费观看| 亚洲A∨无码一区二区三区| 性xxxx视频免费播放直播|