169it科技资讯


当前位置:  编程技术>综合
本页文章导读:
    ▪spring小结二      五、Spring数据库操作     1.Spring+JDBC         (1)特点             静态代码+动态变量 = jdbc编程。在spring中动态变量可以用.........
    ▪spring小结一      一、概述     1. Spring是一个开源框架,其目的是为了解决企业应用开发的复杂性.     2. Spring功能:使用基本的JavaBean代替EJB,并提供更多的企业应用功能.     3..........
    ▪SQL Server Error Log 管理      SQL Server除了每个数据库有Log文件,即LDF文件外,SQL Server自己本身也有一个Error Log,位置存在安装目录下,Widows系统中log文件位于C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log。 Error lo.........

[1]spring小结二
    来源: 互联网  发布时间: 2013-11-10
五、Spring数据库操作
    1.Spring+JDBC
        (1)特点
            静态代码+动态变量 = jdbc编程。在spring中动态变量可以用注入的形式给予,这样的编程方式适合包装成模版,
            静态代码构成了模版,而动态变量则是需要传入的参数.
        (2)引入DataSource
            在spring中注入DataSource,一般采用c3p0
        (3)核心类JdbcTemplate
            * 它是基于模版的设置
            * 完成了资源的创建和释放的工作
            * 简化为我们对JDBC的操作
            * 完成了对JDBC的核心流程的工作,包括SQL语句的创建和执行
            * 仅需要传递DataSource就可以把它实例化
            * JdbcTemplate只需要创建一次
            * JdbcTemplate是线程安全类
        (4)使用JdbcTemplate
            在Dao类中,用JdbcTemplate作为属性,用spring对JdbcTemplate进行注入.
            再对jdbcTemplate进行DataSource注入.
        (5)继承JdbcDaoSupport
            在Dao类中,继承JdbcDaoSupport,因为JdbcDaoSupport已经有了jdbcTemplate的引用,所以
            只要继承jdbcDaoSupport就相当于有了jdbcTemplate属性.
        (6)使用properties文件
            <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
                <property name="locations">
                    <list>
                        <value>jdbc.properties</value>
                    </list>
                </property>
            </bean>
            或者
            <context:property-placeholder location="classpath:jdbc.properties" />    
            jdbc.properties文件中配置连接信息
                jdbc.driverclass=com.mysql.jdbc.Driver
                jdbc.url=jdbc:mysql://localhost:3306/databasename
                jdbc.username=root
                jdbc.password=root
                
                c3p0.pool.size.max=10
                c3p0.pool.size.min=2
                c3p0.pool.size.ini=3
                c3p0.pool.size.increment=2
        (7)RowMapper的使用
            * 由来:    在jdbc的操作中,有很多情况下是要将ResultSet里的数据封装到一个持久化Bean里,再把持久化
                    Bean封装到集合中,这样会造成大量的代码的重复,不利于代码重用.而RowMapper正好解决这个问题.
            * 使用:
                首先,写一个类实现RowMapper接口
                public class AccountMapper implements RowMapper {
                    public Object mapRow(ResultSet rs, int rowNum) throws SQLException{
                        Account account = new Account();
                        account.setAccountid(ts.getString("accountid"));
                        account.setBalance(rs.getDouble("balance"));
                        return account;
                    }
                }
                其次,在回调接口中,作为参数进行传入即可
                    this.getJdbcTemplate().query(sql,new AccountMapper());
        (8)Spring的事务管理器
            * spring事务管理器介绍
                spring没有直接管理事务,而是将管理事务的责任委托给JTA或响应的持久性机制所提供的某个特定平台的事务实现
                org.springframework.jdbc.datasource.DataSourceTransactionManager
                    在单一的JDBC Datasource中的管理事务
                org.springframework.orm.hibernate3.HibernateTransactionManager
                    当持久化机制是hibernate时,用它来管理事务》
                org.springframework.jdo.JdoTransactionManager
                    当持久化机制是Jdo时,用它来管理事务
                org.springframework.transaction.jta.JtaTransactionManager
                    使用一个JTA实现来管理事务,在一个事务跨越多个资源时必须使用
                org.springframework.orm.ojb.PersistenceBrokerTransactionManager
                    当apache的ojb用作持久化机制时,用它来管理事务.
        (9)spring事务的配置

            * 以xml配置的形式(***号表示需要引入的名称空间)

	<beans xmlns="http://www.springframework.org/schema/beans"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xmlns:context="http://www.springframework.org/schema/context"
	***	xmlns:tx="http://www.springframework.org/schema/tx" 
		xmlns:aop="http://www.springframework.org/schema/aop"
		xsi:schemaLocation="http://www.springframework.org/schema/beans 
							http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
							http://www.springframework.org/schema/context 
							http://www.springframework.org/schema/context/spring-context-3.0.xsd 
				***			http://www.springframework.org/schema/tx 
				***			http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
							http://www.springframework.org/schema/aop 
							http://www.springframework.org/schema/aop/spring-aop-3.0.xsd ">
		<!-- 配置c2p0数据源 -->
		<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
			<property name="driverClass" value="com.mysql.jdbc.Driver" />
			<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db" />
			<property name="user" value="root" />
			<property name="password" value="root" />
			
			<property name="maxPoolSize" value="10" />
			<property name=&qu      
    
[2]spring小结一
    来源: 互联网  发布时间: 2013-11-10
一、概述
    1. Spring是一个开源框架,其目的是为了解决企业应用开发的复杂性.
    2. Spring功能:使用基本的JavaBean代替EJB,并提供更多的企业应用功能.
    3. 简单说,Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架.
二、Spring的jar包和配置文件
    1.Spring的jar包
        (1)spring的核心类库在spring文档的dist下.
        (2)引入的第三方类库在spring文档的lib下.
        (3)常用第三方类库
            * 如果使用了切面编程(AOP),需要    lib/aspectj/aspectjweaver.jar和aspectjrt.jar
                                    lib/cglib/cglib-nodep-2.1_3.jar
            * 如果使用了@Resource/@PostConstruct/@PreDestroy等注解,需要
                    lib/j2ee/common-annotations.jar
    2.Spring的配置文件
        默认是applicationContext.xml文件.
        但实际工程中,一般建立多个xml文件,在applicationContext.xml中引入.
三、Spring的基本功能
    1.SpringIOC
        * spring的控制反转:把对象的创建、初始化、销毁等工作交给spring容器来做,由spring容器控制对象的生命周期.                
        * spring容器的启动:
            (1)在类路径下寻找配置文件来实例化容器(常用):
                ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"beans.xml"});
                这种方式需要将spring配置文件放到当前项目的classpath路径下.
            (2)在文件系统路径下寻找配置文件来实例化容器:
                ApplicationContext ac = new FileSystemXmlApplicationContext(new String[]{"d:\\beans.xml"});
            * 配置文件可以有多个,通过String数组传入.
    2.别名
        * 使用别名可以达到,在一个地方命名,多个地方使用不同名字的效果.
        <beans>
            <alias name="person" alias="p"/>
            <bean name="person" class="com.liu.domain.Person"/>
        </beans>
    3.Spring容器内部对象的创建
        (1)使用类构造器实例化(默认是无参数的)    
            <bean id="personService" class="com.liu.bean.impl.PersonServiceImpl"/>
        (2)使用静态工厂方法实例化(简单工厂模式)
            <bean id="personService" class="com.liu.factory.PersonServiceFactory" factory-method="createPersonService"/>
            工厂类:
                public  class PersonServiceFactory {
                    public static PersonService createPersonService(){
                        return new PersonServiceImpl();
                    }
                }
        (3)注意,初始化bean时机
            * Spring默认在启动时将所有singleton bean提前进行实例化.即作为初始化的一部分.
            * ApplicationContext会自动创建并配置所有的singleton bean.
            * Lazy-init="false"时,spring容器将在启动的时候报错(可以及时发现错误)
            * Lazy-init="true"时,spring容器将在调用该类的时候出错.
    4.Bean的作用域(scope属性)
        (1)singleton(默认值)
            * 在每个spring IoC容器中,一个bean定义只有一个对象实例,即是单例的.
            * 默认情况下Bean节点的lazy-init为false,即容器启动就初始化bean,如果想延迟,可改为true
            * 如果相对所有bean都延迟初始化,可以在根节点Beans设置default-lazy-init="true"
                例如:<beans default-lazy-init="true"..>
        (2)prototype
            * 允许bean可以被多次实例化(使用一次就创建一个实例).
            * spring不能对prototype bean的整个生命周期负责,这就意味着清楚prototype作用域的对象
                并释放任何prototype bean所持有的昂贵资源都是客户端的责任        
        (3)Request
            在一次Http请求中,一个bean定义对应一个实例;
            即每次Http请求将会有各自的bean实例,它们依据某个bean定义创建而成.
            该作用域仅在基于web的Spring ApplicationContext情形下有效.
        (4)Session
            在一个Http Session中,一个bean定义对应一个实例,该作用域仅在基于web的Spring ApplicationContext情形下有效.
        (5)Global session
            再一个全局的Http Session中,一个bean定义对应一个实例.
            典型情况下,仅在使用portlet context的时候有效.
            该作用域仅在基于web的Spring ApplicationContext情形下有效.
        (6)指定Bean的初始化方法和销毁方法
             * Spring初始化bean或销毁bean时,有时需要作一些处理工作,因此spring可以在创建和拆卸bean的时候调用bean的两个生命周期方.
                  <bean id=“foo” class=“...Foo”
                        init-method=“setup”
                        destory-method=“teardown”/>
            * 当foo被载入到Spring容器中时调用init-method方法.当foo从容器中删除时调用destory-method(scope = singleton有效)
    5.依赖注入(DI)
        (1)使用构造器注入
            * 通过xml的方式注入:
                A:通过参数的顺序:
                    <constructor-arg index="0">
                        <value>张三</value>
                    </constructor-arg>
                    <constructor-arg index="1">
                        <value>56</value>
            
    
[3]SQL Server Error Log 管理
    来源: 互联网  发布时间: 2013-11-10

SQL Server除了每个数据库有Log文件,即LDF文件外,SQL Server自己本身也有一个Error Log,位置存在安装目录下,Widows系统中log文件位于C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log。

Error log的文件数目可以配置,最多99个,默认6个,文件编号为ERRORLOG.1,2,3,4.....,还有一个文件没有编号,就叫ERRORLOG,这个文件是SQL Server当前的活动日志文件(active log),这个文件无法删除,其他的都可以删除。也就是说,ERRORLOG文件里是最新的日志信息,其他的文件都是以前的信息。

 

每次SQL Server重启动,所有的ERRORLOG文件要做一次切换,拿6个log文件来说,具体如下:

删除ERRORLOG.6中的所有数据

ERRORLOG.5的数据写入到ERRORLOG.6中

ERRORLOG.4的数据写入到ERRORLOG.5中

ERRORLOG.3的数据写入到ERRORLOG.4中

ERRORLOG.2的数据写入到ERRORLOG.3中

ERRORLOG.2的数据写入到ERRORLOG.1中

ERRORLOG的数据写入到ERRORLOG.1中

重新创建ERRORLOG文件

 

所以,如果SQL Server不重启,ERRORLOG文件就会变得很大,解决办法如下:

1. 如果需要保存就得Error log文件,则先把当前的所有ERRORLOG文件copy到其他存储介质

2. 运行命令:  EXEC sp_cycle_errorlog, 这个命令强制SQL Server做一次Error Log文件的切换

3. 把最大的log 文件删除

 

如果需定期切换error log,一般可使用DBCC errorlog命令在一个sql server的agent job 来完成。

 

create procedure sp_cycle_errorlog 
if (not (is_srvrolemember('sysadmin') = 1))  -- Make sure that it is the sysadmin role to execute the code.
    begin
        raiserror(15247,-1,-1)
 return(1)
    end

dbcc errorlog
return (0)

GO

 

作者:footpath 发表于2013-1-9 12:49:19 原文链接
阅读:29 评论:0 查看评论

    
最新技术文章:
▪error while loading shared libraries的解決方法    ▪版本控制的极佳实践    ▪安装多个jdk,多个tomcat版本的冲突问题
▪简单选择排序算法    ▪国外 Android资源大集合 和个人学习android收藏    ▪.NET MVC 给loading数据加 ajax 等待loading效果
▪http代理工作原理(3)    ▪关注细节-TWaver Android    ▪Spring怎样把Bean实例暴露出来?
▪java写入excel2007的操作    ▪http代理工作原理(1)    ▪浅谈三层架构
▪http代理工作原理(2)    ▪解析三层架构……如何分层?    ▪linux PS命令
▪secureMRT Linux命令汉字出现乱码    ▪把C++类成员方法直接作为线程回调函数    ▪weak-and算法原理演示(wand)
▪53个要点提高PHP编程效率    ▪linux僵尸进程    ▪java 序列化到mysql数据库中
▪利用ndk编译ffmpeg    ▪活用CSS巧妙解决超长文本内容显示问题    ▪通过DBMS_RANDOM得到随机
▪CodeSmith 使用教程(8): CodeTemplate对象    ▪android4.0 进程回收机制    ▪仿天猫首页-产品分类
▪从Samples中入门IOS开发(四)------ 基于socket的...    ▪工作趣事 之 重装服务器后的网站不能正常访...    ▪java序列化学习笔记
▪Office 2010下VBA Addressof的应用    ▪一起来学ASP.NET Ajax(二)之初识ASP.NET Ajax    ▪更改CentOS yum 源为163的源
▪ORACLE 常用表达式    ▪记录一下,AS3反射功能的实现方法    ▪u盘文件系统问题
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一)
▪Perl 正则表达式 记忆方法    ▪.NET MVC 给loading数据加 ajax 等待laoding效果    ▪java 类之访问权限
▪extjs在myeclipse提示    ▪xml不提示问题    ▪Android应用程序运行的性能设计
▪sharepoint 2010 自定义列表启用版本记录控制 如...    ▪解决UIScrollView截获touch事件的一个极其简单有...    ▪Chain of Responsibility -- 责任链模式
▪运行skyeye缺少libbfd-2.18.50.0.2.20071001.so问题    ▪sharepoint 2010 使用sharepoint脚本STSNavigate方法实...    ▪让javascript显原型!
▪kohana基本安装配置    ▪MVVM开发模式实例解析    ▪sharepoint 2010 设置pdf文件在浏览器中访问
▪spring+hibernate+事务    ▪MyEclipse中文乱码,编码格式设置,文件编码格...    ▪struts+spring+hibernate用jquery实现数据分页异步加...
▪windows平台c++开发"麻烦"总结    ▪Android Wifi几点    ▪Myeclipse中JDBC连接池的配置
▪优化后的冒泡排序算法    ▪elasticsearch RESTful搜索引擎-(java jest 使用[入门])...    ▪MyEclipse下安装SVN插件SubEclipse的方法
▪100个windows平台C++开发错误之七编程    ▪串口转以太网模块WIZ140SR/WIZ145SR 数据手册(版...    ▪初识XML(三)Schema
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程
▪C++程序的内存布局    ▪将不确定变为确定系列~Linq的批量操作靠的住...    ▪DIV始终保持在浏览器中央,兼容各浏览器版本
▪Activity生命周期管理之三——Stopping或者Restarti...    ▪《C语言参悟之旅》-读书笔记(八)    ▪C++函数参数小结
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing.
▪c++编程风格----读书笔记(1)    ▪codeforces round 160    ▪【Visual C++】游戏开发笔记四十 浅墨DirectX教程...
▪【D3D11游戏编程】学习笔记十八:模板缓冲区...    ▪codeforces 70D 动态凸包    ▪c++编程风格----读书笔记(2)
▪Android窗口管理服务WindowManagerService计算Activity...    ▪keytool 错误: java.io.FileNotFoundException: MyAndroidKey....    ▪《HTTP权威指南》读书笔记---缓存
▪markdown    ▪[设计模式]总结    ▪网站用户行为分析在用户市场领域的应用
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号