十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
首先,你要明白,什么是数据源,数据源跟数据连接池有什么区别。
为上街等地区用户提供了全套网页设计制作服务,及上街网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、外贸网站建设、上街网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
一般我们在程序里面配置的,最多都是数据连接源,而不是数据连接池。
其次,在tomcate里面配置有个什么好处呢,’
如果一个服务器,里面有多个独立的应用,
那么,我们配置一个数据源,只需要在程序里面配置一下JNDI,就可以了,每个程序都
指向这个数据源就好了。
可是有一天我们要换数据库了,如果我们赔的数据源,那么,我们就可以直接改数据源就好了。
如果是在数据库里面配置的,那么我们就需要再每个工程里面都改一遍。
数据源是要配置到中间件服务器中的(比如:Tomcat,JBoss,WebLogic一类的),配置后可以提高数据库查询性能,避免重复的打开和关闭数据库。因此开发java的B/S项目时(就是J2EE的项目,通过浏览器访问的项目),都会配置数据源连接。如果你写的管理软件是B/S结构,那么只需要在搭建环境的服务器上配置数据源就可以了,用户访问时是通过浏览器访问,不需要做其他设置。如果是C/S(就是用户需要单独安装客户端程序,比如QQ),也不需要在用户那里设置数据源,只需要在你的服务器端程序上手工配置好数据源即可。
用JDBC的话就是
Class.forName("com.mysql.jdbc.Driver"); //加载驱动
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/表空间名",
"用户名", "密码"); //获取连接
Statement stmt = con.createStatement();
stmt.executeUpdate("操作数据库");
导入java.sql包
一、加载要连接数据库的驱动程序
//Jdbc-Odbc桥 和 Microsoft Access 数据库
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// SQL Server 驱动程序:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
注:Class.forName()方法将给定的类加载到JVM,如果系统中不存在给定的类,则会引发异常
二、通过驱动程序管理器得到连接实例
Connection conn=null;
//1.
//1.1建立数据源
conn=DriverManager.getConnection("jdbc:odbc:MyDataSource"); //MyDataSource是数据源名称
//1-2、不建立数据源
conn=DriverManager.getConnection("jdbc:odbc:;Driver=Microsoft Access Driver (*.mdb);DBQ=C:\\VBTest.mdb");
//2.SQL Server
conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=mydb","sa","");
注:DriverManager类跟踪已注册的驱动程序,通过getConnection(URL)方法, 找到一个能够连接至URL中指定的数据库驱动程序
它接收三个参数, 分别表示1 数据源的名称、类型 2 用户名(可选) 3 密码(可选)
三、基于连接对象建立处理器对象
Statement stmt=conn.createStatement();
四、准备sql命令
String sql="select * from Student";
五、执行命令返回结果集
ResultSet rs=stmt.executeQuery(sql);
六、显示结果集
while(rs.next())//只要后面有记录
{
//对当前行的所有字段遍历
for(int i=1;i=rs.getMetaData().getColumnCount();i++)
{
System.out.print(rs.getMetaData().getColumnName(i)+": ");//显示字段名
System.out.println(rs.getString(i));//显示字段当前值
}
System.out.println();
}
七、关闭资源
rs.close(); //关闭记录集
stmt.close(); //关闭处理器对象
conn.close(); //关闭连接对象
预处理器的应用:
//3.基于连接对象建立预处理器对象
PreparedStatement pstmt=conn.prepareStatement("insert into student values(?,?,?,?)");
//4.给预处理对象的参数赋值
pstmt.setString(1,"8888");
pstmt.setString(2,"nemo");
pstmt.setString(3,"accp");
pstmt.setString(4,"sanxianglu");
//5.执行预处理命令
int i=pstmt.executeUpdate();
System.out.println(i+"条记录已成功插入!");
你好,我来先回答你的第一个问题:
通常多数据源,在spring中配置如下,如果你想切换环境ENV 的值,在property中
bean id="placeholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
property name="ignoreResourceNotFound" value="true"/property
property name="ignoreUnresolvablePlaceholders" value="true"/property
property name="nullValue" value="NULL"/property
property name="locations"
list
valuejdbc.properties/value
/list
/property
/bean
bean id="dataSource" class="com.spring.dao.JDBCConfig"
property name="driverClassName" value="${${Env}.jdbc.driverClassName}"/property
property name="url" value="${${Env}.jdbc.url}"/property
property name="username" value="${${Env}.jdbc.username1}"/property
property name="password" value="${${Env}.jdbc.password}"/property
/bean
jdbc.properties
*****************************
Env=PROD
jdbc.driverClassName=${${Env}.jdbc.driverClassName}
jdbc.url=${${Env}.jdbc.url}
jdbc.username=${${Env}.jdbc.username}
jdbc.password=${${Env}.jdbc.password}
######### JDBC Configuration for DEV Environment ###############
DEV.jdbc.driverClassName=com.mysql.jdbc.Driver
DEV.jdbc.url=jdbc:mysql://localhost:3306/devportal
DEV.jdbc.username=DEVuser
DEV.jdbc.password=DEVpwd
######### JDBC Configuration for UAT Environment ############
UAT.jdbc.driverClassName=com.mysql.jdbc.Driver
UAT.jdbc.url=jdbc:mysql://localhost:3306/UATportal
UAT.jdbc.username=UATuser
UAT.jdbc.password=UATpwd
########## JDBC Configuration for PROD Environment ############
PROD.jdbc.driverClassName=com.mysql.jdbc.Driver
PROD.jdbc.url=jdbc:mysql://localhost:3306/portal
PROD.jdbc.username=root
PROD.jdbc.password=admin,
我这里有三套环境,分别是DEV,UAT和PROD,这种方式可以灵活切换的。
我再回答你的第二个问题:
还请你去这里看下,很详细,不过是英文的哦
package com.bin.struts.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConn2000 {
public static Connection getConn(){
String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=//数据库名字";
String user = "sa";
String password = "123";
try {
Class.forName(driver);
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
return DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public static Connection close(){
return null;
}
}
这是2000的连接方法
这是2005的连接串
jdbc:sqlserver://localhost:1433;databasename=//数据库
com.microsoft.sqlserver.jdbc.SQLServerDriver
2000数据库需要打SP4补丁.
并且两个都需要专门的JDBC驱动的