1、初学者常见的方式,使用JDBC直连数据库,加载一下驱动就可以。比较直观,但是项目中没人这样用,因为对于昂贵的数据库连接没有管理。
2、项目常见的方式,使用数据库连接池,DBCP,C3P0,proxool 等等,有统一有效的数据库连接管理,比较方便。
3、希望对你有帮助。
JDBC是java数据库连接技术的简称,它提供了连接各种数据库的能力,这便使程序的可维护性和可扩展性大大的提高了JDBC连接数据库常见的驱动方式有两种,一种是jdbc-odbc即桥连另外一种是纯java驱动一般在做java开发的时候用第二种so前一种我就不说了,纯java驱动方式连接步骤如下:
1先把一个jdbc的jar包导入到项目(用MyEclipse开发)的lib中
2代码如下:
[c-sharp] view plain copy
import javasql;
/
连接数据库帮助类
@author Administrator
/
public class BaseDao {
private static final String DRIVER="commicrosoftsqlserverjdbcSQLServerDriver";
private static final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=LibraryManageSystem";
private static final String USERNAME="sa";
private static final String PASSWORD="sa";
/
连接数据库
@return 数据库连接对象
@throws ClassNotFoundException
@throws SQLException
/
public Connection getConn()throws ClassNotFoundException,SQLException{
ClassforName(DRIVER);
Connection conn = DriverManagergetConnection(URL,USERNAME,PASSWORD);
return conn;
}
/
释放资源
@param conn
@param pstmt
@param rs
@throws SQLException
/
public void closeAll(Connection conn,PreparedStatement pstmt,ResultSet rs)throws SQLException{
if(rs!=null){
rsclose();
}
if(pstmt!=null){
pstmtclose();
}
if(conn!=null){
connclose();
}
}
/
执行SQL语句,可以进行增、删、改的 *** 作
@param sql
@return 影响条数
@throws ClassNotFoundException
@throws SQLException
/
public int executeSQL(String sql)throws ClassNotFoundException,SQLException{
Connection conn = thisgetConn();
PreparedStatement pstmt = connprepareStatement(sql);
int number = pstmtexecuteUpdate();
thiscloseAll(conn, pstmt, null);
return number;
}
}
从代码知道首先吧jdbc驱动类装载java虚拟机中,即ClassforName(DRIVER);其次加载驱动并建立于数据库的连接Connection conn = DriverManagergetConnection(URL,USERNAME,PASSWORD);;然后发送SQL语句并的到结果集之后处理结果,最后要关闭数据库的连接,释放资源当然我说的这样连接数据库的方式使用的软件是sql和MyEclipse
使用配置文件来连接数据库,当然这样的连接需要进行一些配置其实这样的连接用专业术语来说就是连接池,连接池是负责分配管理和释放数据库连接它允许用用程序重复使用一个现有的数据库连接不再重复建立连接释放空闲时间超过最大空闲时间的数据库连接以避免因为没有释放数据库而引起的数据库遗漏
连接池的创建分为以下几个步骤:1配置contextxml文件 这个文件是服务器(指tomcat)的一个conf文件夹中,拷贝出来放入项目的lib文件夹中,具体配置如下:
[c-sharp] view plain copy
<Resource name="jdbc/book" auth="Container" type="javaxsqlDataSource"
maxActive="100" maxIdle="20" maxWait="100" username="sa" password="sa"
driverClassName="commicrosoftsqlserverjdbcSQLServerDriver"
url="jdbc:sqlserver://localhost:1433;dataBaseName=book"
/>在configxml文件中加入Resource标签,然后对数据库信息进行配置,当然这个数据库指的也是sqlserver有疑问可以qq757966892联系
之后把数据库的驱动包,这里指的是sql2005的包放入服务器的lib中,这样以后如果在你自己的机子上都不用在重新导入这个包了
然后就是从MyEclipse中取得这样的连接从而对数据库进行一些 *** 作具体代码如下:
[c-sharp] view plain copy
package weblogindao;
import javasqlConnection;
import javasqlPreparedStatement;
import javasqlResultSet;
import javaxnamingContext;
import javaxnamingInitialContext;
import javaxsqlDataSource;
public class BaseDao {
protected Connection conn;
protected PreparedStatement ps;
protected ResultSet rs;
protected String sql;
public Connection getConn(){
try {
Context context=new InitialContext();
DataSource ds=(DataSource)contextlookup("java:comp/env/jdbc/user");
return dsgetConnection();
} catch (Exception e) {
eprintStackTrace();
return null;
}
}
public void closeAll(Connection conn,PreparedStatement ps,ResultSet rs){
try {
if(rs!=null){
rsclose();
rs=null;
}
if(ps!=null){
psclose();
ps=null;
}
if(conn!=null){
connclose();
conn=null;
}
} catch (Exception e) {
eprintStackTrace();
}
}
}
之后便可以建立业务类从而对数据库进行 *** 作JDBC连接数据库
•创建一个以JDBC连接数据库的程序,包含7个步骤:
1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过javalangClass类的静态方法forName(String className)实现。
例如:
try{
//加载MySql的驱动类
ClassforName("commysqljdbcDriver") ;
}catch(ClassNotFoundException e){
Systemoutprintln("找不到驱动程序类 ,加载驱动失败!");
eprintStackTrace() ;
}
成功加载后,会将Driver类的实例注册到DriverManager类中。
2、提供JDBC连接的URL
•连接URL定义了连接数据库时的协议、子协议、数据源标识。
•书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
jdbc:mysql:
//localhost:3306/testuseUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。
3、创建数据库的连接
•要连接数据库,需要向javasqlDriverManager请求并获得Connection对象,
该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和
密码来获得。
例如:
//连接MySql数据库,用户名和密码都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con =
DriverManagergetConnection(url , username , password ) ;
}catch(SQLException se){
Systemoutprintln("数据库连接失败!");
seprintStackTrace() ;
}
4、创建一个Statement
•要执行SQL语句,必须获得javasqlStatement实例,Statement实例分为以下3
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式:
Statement stmt = concreateStatement() ;
PreparedStatement pstmt = conprepareStatement(sql) ;
CallableStatement cstmt =
conprepareCall("{CALL demoSp( , )}") ;
5、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate
和execute
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句
,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的
语句。
具体实现的代码:
ResultSet rs = stmtexecuteQuery("SELECT FROM ") ;
int rows = stmtexecuteUpdate("INSERT INTO ") ;
boolean flag = stmtexecute(String sql) ;
6、处理结果
两种情况:
1、执行更新返回的是本次 *** 作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:
while(rsnext()){
String name = rsgetString("name") ;
String pass = rsgetString(1) ; // 此方法比较高效
}
(列是从左到右编号的,并且从列1开始)
7、关闭JDBC对象
*** 作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
if(rs != null){ // 关闭记录集
try{
rsclose() ;
}catch(SQLException e){
eprintStackTrace() ;
}
}
if(stmt != null){ // 关闭声明
try{
stmtclose() ;
}catch(SQLException e){
eprintStackTrace() ;
}
}
if(conn != null){ // 关闭连接对象
try{
connclose() ;
}catch(SQLException e){
eprintStackTrace() ;
}
}
1、加载驱动程序。
2、创建连接对象。
3、创建sql语句执行对象 。
4、执行sql语句。
5、对执行结果进行处理。
6、关闭相关的连接对象即可(顺序跟声明的顺序相反)。
处理结果两种情况:
1、执行更新返回的是本次 *** 作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些 行中数据的访问。
扩展资料:
Statement
要执行SQL语句,必须获得javasqlStatement实例,Statement实例分为以下3 种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
参考资料:
姑且当楼主的程序用的是JDBC连接数据库吧(不贴代码让人猜是真不好回答啊),楼主全文搜索
"DBManagergetConnection",就会找到下面这样的一句话:
DBManagergetConnection("");
打点的部分也可能是参数写的,反正就是找到了这么句话吧,重点就是这个打点的地方,参数的话,请看参数内容,内容大致如下:
jdbc:[某种数据库]://[IP地址]:[端口号]/[库名]user=[账户]&password=[密码]
举个mysql的例子:
jdbc:mysql://localhost:3306/testuser=root&password=root
这样你就你的代码是连接的什么数据库了,楼主期待代码是SQL Server数据库吧,呵呵。
如果不是,那你就决定是自己装一个,还是改造代码啦?当然你还要根据别人代码去创建数据库。
给个SQL Server的例子
//加载JDBC驱动
ClassforName("commicrosoftjdbcsqlserverSQLServerDriver");
//建立数据库连接,取得Connection对象
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
String user="sa";
String password="";
Connection conn=DriverManagergetConnection(url,user,password);
//后面就可以写 *** 作数据库的代码了
以上就是关于Java中怎么连接数据库全部的内容,包括:Java中怎么连接数据库、java *** 作数据库的方式有哪些、如何实现java与数据库的连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)