zoukankan      html  css  js  c++  java
  • Spring+Myecilpse+SqlServer2012配置(+C3P0)

    初学Spring不久,在配置数据库连接的时候花费了差不多一天时间,所以记下来以后以便查阅也方便了一下新手。

    下面分别介绍是否使用C3P0连接池的两种方法。

    两个项目结构均如下:
    结构
    一.Spring+Myecilpse+SqlServer2012+C3P0配置

    1.Spring相应包加入类路径下

    这一步不用详细解释吧,如果你连Spring的包都不能引入,那你还是学了Spring再来吧!(最好不要使用Myecilpse右键导入自带的Spring包,我使用那些包缺少一些类,可能Myecilpse版本有些低了吧)

    2.导入commons-logging.jar
    一个日志包,必须导入

    3.创建applicationContext.xml和db.properties

    applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:aop="http://www.springframework.org/schema/aop" 
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
                                          http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                                          http://www.springframework.org/schema/aop 
                                          http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 
                                          http://www.springframework.org/schema/context
                                         http://www.springframework.org/schema/context/spring-context.xsd">
        <!-- 声明数据源配置文件 -->
         <context:property-placeholder location="classpath:db.properties"/>
    
         <!-- C3P0的类的使用,property name="driverClass"的driverClass键这些都不要改变 -->
         <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
                <property name="driverClass" value="${jdbc.driverClass}"></property>
                <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
                <property name="user"  value="${jdbc.user}"> </property>  
                <property name="password" value="${jdbc.password}"></property> 
      </bean>
    
       <!-- Spring文件中jdbcTemplate的使用 -->
       <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
         <property name="dataSource" ref="dataSource"></property>
        </bean> 
    </beans>

    db.properties

    //确认SQLServer数据库是SQlServer身份验证而不是windows身份验证,不是的话自行百度修改
     jdbc.user=sa //driverClass和jdbcUrl随SQLServer版本不同可能有改变
     jdbc.password=159357 //用户名密码端口视自己情况改变,1433是默认端口
     jdbc.driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver
     jdbc.jdbcUrl=jdbc:sqlserver://localhost:1433

    4.导入C3P0.jar和sqljdbc4.jar(SQLServer连接驱动包)到类路径下
    相关文件自行百度下载(后面我会放上Myecilpse完整项目结构的所有文件,可以自行下载)

    5.测试文件Main.java

    package com.hello;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.jdbc.core.JdbcTemplate;
    
    public class Main {
    
        private static ApplicationContext ctx;
    
        public static void main(String[] args) {
            ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
            //获取IoC容器中JdbcTemplate实例
            JdbcTemplate jdbcTemplate=(JdbcTemplate) ctx.getBean("jdbcTemplate");
            //必须声明数据库,表名前面dbo.可有可无
            String sql="use sampledb insert into t_user (user_name,credits) values ('李子123546',1009)";
             int count=jdbcTemplate.update(sql);
            System.out.println(count);
        }
    }
    

    二.Spring+Myecilpse+SqlServer2012配置

    1.Spring相应包加入类路径下
    这一步不用详细解释吧,如果你连Spring的包都不能引入,那你还是学了Spring再来吧!(最好不要使用Myecilpse右键导入自带的Spring包,我使用那些包缺少一些类,可能Myecilpse版本有些低了吧)

    2.导入commons-logging.jar
    一个日志包,必须导入

    3.创建applicationContext.xml和db.properties,applicationContext.xml有所不同,db.properties同上

    applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:aop="http://www.springframework.org/schema/aop" 
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
                                          http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                                          http://www.springframework.org/schema/aop 
                                          http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 
                                          http://www.springframework.org/schema/context
                                         http://www.springframework.org/schema/context/spring-context.xsd">
    
         <context:property-placeholder location="classpath:db.properties"/>
         <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
                <property name="driverClassName" value="${jdbc.driverClass}"></property>
                <property name="url" value="${jdbc.jdbcUrl}"></property>
                 <property name="username"  value="${jdbc.user}"> </property>  <!-- ${jdbc.user}  -->
                 <property name="password" value="${jdbc.password}"></property>      
      </bean>
       <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource">
                <ref bean="dataSource"/>
                </property>
        </bean>
      <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
         <property name="dataSource" ref="dataSource"></property>
        </bean>
        <!-- 通过依赖注入userDao中的set方法将jdbcTemplate绑定 -->
        <bean id="userDao" class="com.dao.userDao">
            <property name="jdbcTemplate">
                <ref bean="jdbcTemplate"/>
            </property>
            <property name="transactionManager">
                <ref bean="transactionManager"/>
            </property>
        </bean>
    </beans>

    db.properties

    //确认SQLServer数据库是SQlServer身份验证而不是windows身份验证,不是的话自行百度修改
     jdbc.user=sa //driverClass和jdbcUrl随SQLServer版本不同可能有改变
     jdbc.password=159357 //用户名密码端口视自己情况改变,1433是默认端口
     jdbc.driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver
     jdbc.jdbcUrl=jdbc:sqlserver://localhost:1433

    4.sqljdbc4.jar到类路径下(注意没有C3P0这个包了)
    相关文件自行百度下载(后面我会放上Myecilpse完整项目结构的所有文件,可以自行下载)

    5.userDao.java

    package com.dao;
    
    import org.springframework.dao.DataAccessException;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.transaction.PlatformTransactionManager;
    import org.springframework.transaction.TransactionStatus;
    import org.springframework.transaction.support.DefaultTransactionDefinition;
    
    public class userDao {
        private JdbcTemplate jdbcTemplate;
        private PlatformTransactionManager transactionManager;
        private String sql;
        public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
            this.jdbcTemplate = jdbcTemplate;
        }
        public void setTransactionManager(PlatformTransactionManager transactionManager) {
            this.transactionManager = transactionManager;
        }
        public void setSql(String sql) {
            this.sql = sql;
        }
        public int  create(String msg) {
            DefaultTransactionDefinition defaultTransactionDefinition=new DefaultTransactionDefinition();
            TransactionStatus status=transactionManager.getTransaction(defaultTransactionDefinition);
            int count=-1;
            try {
                count=jdbcTemplate.update(this.sql);
            } catch (DataAccessException e) {
                // TODO: handle exception
                transactionManager.rollback(status);
                throw e;
            }finally{
                transactionManager.commit(status);
            }
            return count;
        }
    }
    

    6.测试文件Main.java

    package com.hello;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import com.dao.userDao;
    
    public class Main {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            @SuppressWarnings("resource")
            ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
            //获取IoC容器中JdbcTemplate实例
            userDao userdao=(userDao) ctx.getBean("userDao");
            //必须声明数据库,表名前面dbo.可有可无
            String sql="use sampledb insert into t_user (user_name,credits) values ('李子',993)";
            userdao.setSql(sql);
            int count=userdao.create("123");
            System.out.println(count);
        }
    }
    

    最后:两个测试的Myecilpse导出项目如下:
    C3P0_JDBCTemplate.zip
    JDBCTemplate.zip

  • 相关阅读:
    MySQL高可用之MHA的搭建
    MySQL MGR 集群搭建(单主模式&多主模式)
    ansible-playbook定义变量与使用
    linux LVM逻辑卷管理
    Oracle 19C RAC 静默(silent)安装on RHEL7.x
    Python语言基础02-变量和运算
    Python之路,Day6
    Python 之路 Day5
    Python之路,Day4
    Python之路,Day3
  • 原文地址:https://www.cnblogs.com/lizijuna/p/11907426.html
Copyright © 2011-2022 走看看