JDBC 连接数据库

前言

JDBC是一种数据库连接,是一种用于执行sql语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

连接的几种数据库

1.连接DB2

jdbc.driverClassName=com.ibm.db2.jcc.DB2Driver
jdbc.url=jdbc:db2://10.25.77.143:50001/efmpx
#jdbc.url=jdbc:db2://10.25.33.150:50001/dsoa
#jdbc.url=jdbc:db2://10.12.200.23:50001/dsoa
#jdbc.url=jdbc:db2://127.0.0.1:50000/LOCAL1
jdbc.username=spesdba
jdbc.password=password
jdbc.maxActive=50
jdbc.validationQuery=SELECT 1 FROM iplat.TED10

2.连接ORACLE

#jdbc.driver   = oracle.jdbc.driver.OracleDriver
#jdbc.url      = jdbc:oracle:thin:@localhost:1521:yfbceg
#jdbc.username = ecan
#jdbc.password = ecan
#jdbc.maxActive= 50

3.连接SQL Server

#jdbc.driver   = com.inet.tds.TdsDriver
#jdbc.url      = jdbc:inetdae7:localhost:1433?charset=GBK
#jdbc.username = ecan
#jdbc.password = ecan
#jdbc.maxActive= 50

4.连接mysql

#jdbc.driver   = com.mysql.jdbc.Driver
#jdbc.url      = jdbc:mysql://localhost/ecan?useUnicode=true&characterEncoding=gbk
#jdbc.username = ecan
#jdbc.password = ecan
#jdbc.maxActive= 50

5.连接HSQL

#jdbc.driver   = org.hsqldb.jdbcDriver
#jdbc.url      = jdbc:hsqldb:hsql://localhost
#jdbc.username = ecan
#jdbc.password = ecan
#jdbc.maxActive= 50

6.连接postgresql

#jdbc.driver   = org.postgresql.Driver
#jdbc.url      = jdbc:postgresql://localhost/acl?charSet=ISO-8859-1
#jdbc.username = ecan
#jdbc.password = ecan
#jdbc.maxActive= 50

参考两位博主:
http://blog.youkuaiyun.com/huahuagongzi99999/article/details/8244259
http://blog.youkuaiyun.com/daxiang12092205/article/details/27561503

个人添加(jdbc连接数据库的代码和步骤):

1、加载JDBC驱动程序:
    Class.forName("com.mysql.jdbc.Driver") ; 

2、提供JDBC连接的URL
1
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

2
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"

3、创建数据库的连接
Connection con =DriverManager.getConnection(url , username , password ) ;

4、创建一个Statement
要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3

种类型:

1、执行静态SQL语句。通常通过Statement实例实现。

2、执行动态SQL语句。通常通过PreparedStatement实例实现。

3、执行数据库存储过程。通常通过CallableStatement实例实现。
1   
Statement stmt = con.createStatement() ; 

2   
PreparedStatement pstmt = con.prepareStatement(sql) ; 

3   
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ; 

5、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate

和execute

1ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句

,返回一个结果集(ResultSet)对象。

2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或

DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等

3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的

语句。

具体实现的代码:

1   
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ; 

2   
int rows = stmt.executeUpdate("INSERT INTO ...") ; 

3   
boolean flag = stmt.execute(String sql) ; 

6、处理结果

两种情况:

1、执行更新返回的是本次操作影响到的记录数。

2、执行查询返回的结果是一个ResultSet对象。

• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些

行中数据的访问。

• 使用结果集(ResultSet)对象的访问方法获取数据:

while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比较高效
}

(列是从左到右编号的,并且从列1开始)

7、关闭JDBC对象

操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声

明顺序相反:

1、关闭记录集

2、关闭声明

3、关闭连接对象

if(rs != null){ // 关闭记录集
try{
     rs.close() ;
}catch(SQLException e){
     e.printStackTrace() ;
}  
}

if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}     
}
if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}    
}

spring中jdbc用法

jdbc.properties代码:

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@10.10.1.1:1521:ORCL
jdbc.username=test
jdbc.password=test

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:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-2.5.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-2.5.xsd ">

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
           <list>
                 <value>/WEB-INF/jdbc.properties</value>
           </list>
        </property>
    </bean>

    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"
            value="${jdbc.driverClassName}">
        </property>
        <property name="url"
            value="${jdbc.url}">
        </property>
        <property name="username" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">
                    org.hibernate.dialect.OracleDialect
                </prop>
            </props>
        </property>
        <property name="mappingResources">
            <list>
                <value>com/xy6/form/LoginForm.hbm.xml</value>
            </list>
        </property>
    </bean>
    <!-- 指定事务管理器类,将sessionFactory注入,让该事务管理器具有打开和关闭事务的能力 -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 为事务管理器类指定匹配器,通过用name指定的匹配字符串进行对对应的方法进行打开和关闭事务 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
       <tx:attributes>
           <tx:method name="save*" propagation="REQUIRED" />
           <tx:method name="delete*" propagation="REQUIRED" />
           <tx:method name="modify*" propagation="REQUIRED" />
           <tx:method name="deploy*" propagation="REQUIRED" />
           <tx:method name="*" read-only="true" />
       </tx:attributes>
    </tx:advice>

    <!-- 为事务管理器类指定进行匹配的范围,到指定的地方通过匹配器字符串进行筛选,对应上后为该方法打开和关闭事务 -->
    <aop:config proxy-target-class="true">
       <aop:pointcut id="managerOperation" expression="execution(* com.xy6.dao.*.*(..))" />
       <aop:advisor advice-ref="txAdvice" pointcut-ref="managerOperation" />
    </aop:config>

     <!-- 该 BeanPostProcessor 将自动对标注 @Autowired 的 Bean 进行注入 -->
    <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

    <!-- 使用annotation 自动注册bean,并检查@Required,@Autowired的属性已被注入 -->
    <context:component-scan base-package="com.xy6"/>

    <!-- spring转发 -->
    <bean name="/login" class="com.xy6.action.LoginAction">
    </bean>

    <bean id="loginAction" class="com.xy6.action.LoginAction"></bean>
    <bean id="loginService" class="com.xy6.service.impl.LoginServiceImpl"></bean>
    <bean id="loginDAO" class="com.xy6.dao.impl.LoginDaoImpl">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
</beans>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值