zoukankan      html  css  js  c++  java
  • Java Spring JDBC访问数据库

    一、首先采用org.springframework.jdbc.datasource.DriverManagerDataSource类进行实现

    1.applicationContext.xml配置如下:

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="username" value="root"/>
        <property name="password" value="zdsoft"/>
        <property name="url" value="jdbc:mysql://172.23.88.107:3306/test?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC"/>
    </bean>
    
     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    2.Java的代码如下:

    public static void main(String[] args) {
        AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate");
    
        String sql = "select * from stat_app";
        jdbcTemplate.query(sql, new RowCallbackHandler() {
            @Override
            public void processRow(ResultSet rset) throws SQLException {
                System.out.println(rset.getString("source_market") + "	" + rset.getString("violations_type"));
    
            }
        });
    }

    说明:

    ①mysql的url配置中需要注意编码和时区,不然会出现报错。同时&符号必须使用&amp;转义。如果独立成properties就不需要了转义了。

    ②查询的数据进入processRow里面,每行数据都会调用一次这个方法。

    二、使用org.apache.commons.dbcp.BasicDataSource类进行实现

     1.首先需要引用jar包,pom.xml如下:

    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
    </dependency>

    2.applicationContext.xml配置如下:

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
           <property name="username" value="root"/>
           <property name="password" value="zdsoft"/>
           <property name="url" value="jdbc:mysql://172.23.88.107:3306/test?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC"/>
    </bean>
    
     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
           <property name="dataSource" ref="dataSource"/>
       </bean>

    Java代码就和上面一样了。没什么区别。BasicDataSource多了一个close方法,可以自动管理连接对象。

    三、将数据库配置独立出来。上面的配置如果想要把数据库相关配置独立为db.properties。可以首先创建文件db.properties,内容如下:

    jdbc.url=jdbc:mysql://172.23.88.107:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.username=root
    jdbc.password=zdsoft

    然后applicationContext.xml配置如下:

    <!-- 导入配置文件 -->
    <context:property-placeholder location="classpath:db.properties" />
    
    <!-- 配置数据源 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driver}"></property>
        <property name="url" value="${jdbc.url}"></property>
        <property name="username" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>
  • 相关阅读:
    sql server 错误9003:LSN无效(日志扫描号无效),对数据库的修复.
    用C#调用C++DLL时的字符串指针参数传递问题
    sql server 2005中的Service broker小示例(未完善)
    水晶报表钻取数据,在明细层导的时候,报表会从新加载,并显示主报表
    [转]gridview获取当前行索引的方法
    验证视图状态 MAC 失败的解决办法
    SQL SERVER 2005中对存储过程进行签名(转)
    MSChart图表控件的一些使用
    Repository模式
    职能式管理和流程式管理
  • 原文地址:https://www.cnblogs.com/duanjt/p/9370842.html
Copyright © 2011-2022 走看看