欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javaweb中mysql数据库连接步骤方法及其实例

程序员文章站 2024-03-01 16:01:16
一、直接连接,不封装到工具类中,主要步骤: 先导包:mysql-connector-java-5.0.8-bin.jar(点击跳转到下载界面),放在webroot/web...

一、直接连接,不封装到工具类中,主要步骤:

先导包:mysql-connector-java-5.0.8-bin.jar(点击跳转到下载界面),放在webroot/web-inf/lib/下

1.加载驱动//com.mysql.jdbc.driver

2.获取连接 connection对象

3.获取用于向数据库发送sql的statement对象

4.执行sql,获取数据,解析数据

5.关闭连接,释放资源

/*协议:子协议://主机:端口/数据库名*/
stringurl="jdbc:mysql://localhost:3306/jdbctest";
//mysql数据库的用户名与密码,安装时自己设置,一般默认为root
stringuser="root";
stringpassword="root";
connectionconnection=null;
statementstatement=null;
resultsetresultset=null;
try{
//1.加载驱动//com.mysql.jdbc.driver
/*
*drivermanager.registerdriver(new
*driver());用这种方法会加载两次驱动,也就是说会创建两个drive对象
*/
class.forname("com.mysql.jdbc.driver");
//2.获取连接
connection=drivermanager.getconnection(url,user,password);
//3.获取用于向数据库发送sql的statement对象
statement=connection.createstatement();
//4.执行sql,获取数据
resultset=statement.executequery("select*fromusers;");
//解析数据
while(resultset.next()){
intid=resultset.getint("id");
stringname=resultset.getstring("name");
stringpsd=resultset.getstring("password");
stringemail=resultset.getstring("email");
stringbirthday=resultset.getstring("birthday");
system.out.println(id+""+name+""+psd+""+email
+""+birthday);
}
}catch(classnotfoundexceptione){
e.printstacktrace();
}catch(sqlexceptione){
e.printstacktrace();
}finally{
//5.关闭连接,释放资源
if(resultset!=null){
try{
resultset.close();
}catch(sqlexceptione){
//todoauto-generatedcatchblock
e.printstacktrace();
}
resultset=null;
}
if(statement!=null){
try{
statement.close();
}catch(sqlexceptione){
//todoauto-generatedcatchblock
e.printstacktrace();
}
statement=null;
}
if(connection!=null){
try{
connection.close();
}catch(sqlexceptione){
//todoauto-generatedcatchblock
e.printstacktrace();
}
connection=null;
}
/* 协议:子协议://主机:端口/数据库名 */
string url = "jdbc:mysql://localhost:3306/jdbctest";
// mysql数据库的用户名与密码,安装时自己设置,一般默认为root
string user = "root";
string password = "root";
connection connection = null;
statement statement = null;
resultset resultset = null;
try {
  // 1.加载驱动//com.mysql.jdbc.driver
  /*
   * drivermanager.registerdriver(new
   * driver());用这种方法会加载两次驱动,也就是说会创建两个drive对象
   */
  class.forname("com.mysql.jdbc.driver");
  // 2.获取连接
  connection = drivermanager.getconnection(url, user, password);
  // 3.获取用于向数据库发送sql的statement对象
  statement = connection.createstatement();
  // 4.执行sql,获取数据
  resultset = statement.executequery("select * from users;");
  // 解析数据
  while (resultset.next()) {
int id = resultset.getint("id");
string name = resultset.getstring("name");
string psd = resultset.getstring("password");
string email = resultset.getstring("email");
string birthday = resultset.getstring("birthday");
system.out.println(id + " " + name + " " + psd + " " + email
+ " " + birthday);
  }
} catch (classnotfoundexception e) {
  e.printstacktrace();
} catch (sqlexception e) {
  e.printstacktrace();
} finally { 
    //5.关闭连接,释放资源
  if (resultset != null) {
try {
  resultset.close();
} catch (sqlexception e) {
  // todo auto-generated catch block
  e.printstacktrace();
}
resultset = null;
  }
  if (statement != null) {
try {
  statement.close();
} catch (sqlexception e) {
  // todo auto-generated catch block
  e.printstacktrace();
}
statement = null;
  }
  if (connection != null) {
try {
  connection.close();
} catch (sqlexception e) {
  // todo auto-generated catch block
  e.printstacktrace();
}
connection = null;
  }
}

二、将数据库连接封装成一个工具类

这样做的好处是,在实际开发中,就能做到,改一处即可修改全局。

1.建一个名为db.properties的配置文件,放于src/

url=jdbc:mysql://localhost:3306/jdbctest
username=root
password=root
driver=com.mysql.jdbc.driver

2.工具类:

importjava.io.ioexception;
importjava.sql.connection;
importjava.sql.drivermanager;
importjava.sql.resultset;
importjava.sql.sqlexception;
importjava.sql.statement;
importjava.util.properties; 
publicclassjdbcutil{
//私有静态变量,用以读取配置文件
privatestaticpropertiesconfig=newproperties();
static{
try{
//配置资源文件
config.load(jdbcutil.class.getclassloader().getresourceasstream("db.properties"));
//加载驱动
class.forname(config.getproperty("driver"));
}catch(ioexceptione){
e.printstacktrace();
}catch(classnotfoundexceptione){
e.printstacktrace();
}
}
publicstaticconnectiongetconnection(){
connectionconnection=null;
try{
connection=drivermanager.getconnection(config.getproperty("url"),config.getproperty("username"),config.getproperty("password"));
}catch(sqlexceptione){
e.printstacktrace();
}
returnconnection;
}
//用以关闭连接,释放资源
publicstaticvoidreleaseconn(connectionconnection,statementstatement,
resultsetresultset){
if(resultset!=null){
try{
resultset.close();
}catch(sqlexceptione){
e.printstacktrace();
}
resultset=null;
}
if(statement!=null){
try{
statement.close();
}catch(sqlexceptione){
e.printstacktrace();
}
statement=null;
}
if(connection!=null){
try{
connection.close();
}catch(sqlexceptione){
e.printstacktrace();
}
connection=null;
}
} 
}

3.使用实例:

connectionconnection=null;
statementstatement=null;
resultsetresultset=null;
try{
//调用工具类中的静态方法来获取连接
connection=jdbcutil.getconnection();
statement=connection.createstatement();
resultset=statement.executequery("select*fromusers");
while(resultset.next()){
intid=resultset.getint("id");
stringname=resultset.getstring("name");
stringpsd=resultset.getstring("password");
stringemail=resultset.getstring("email");
stringbirthday=resultset.getstring("birthday");
system.out.println(id+""+name+""+psd+""+email
+""+birthday); 
}
}catch(exceptione){
e.printstacktrace();
}finally{
//调用工具类中的静态方法来关闭连接,释放资源
jdbcutil.releaseconn(connection,statement,resultset);
}

希望本文可以对需要的朋友有帮助