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

作者:wbb 时间:2024-01-29 08:06:45 

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

先导包: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);
}

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

来源:http://www.2cto.com/kf/201702/596389.html

标签:java,javaweb,mysql数据库
0
投稿

猜你喜欢

  • python里面单双下划线的区别详解

    2023-03-22 12:39:22
  • python发送邮件的实例代码(支持html、图片、附件)

    2023-08-31 00:39:50
  • mysql自定义函数原理与用法实例分析

    2024-01-28 01:48:20
  • Javascript的闭包

    2024-04-19 09:48:38
  • js仿支付宝多方框输入支付密码效果

    2024-04-26 17:12:49
  • Python3如何对urllib和urllib2进行重构

    2022-05-18 08:48:52
  • mysql 查询表中平均分最低的班级

    2024-01-22 05:23:45
  • Python实现利用163邮箱远程关电脑脚本

    2023-08-29 10:08:08
  • Python用 KNN 进行验证码识别的实现方法

    2021-03-29 06:58:08
  • python读写删除复制文件操作方法详细实例总结

    2022-07-29 05:58:56
  • 如何改良你的CSS代码编写结构

    2008-09-29 16:03:00
  • python对象及面向对象技术详解

    2023-05-14 00:04:16
  • python判断字符串是否包含子字符串的方法

    2021-01-04 12:48:03
  • 详解重置Django migration的常见方式

    2022-10-30 13:21:17
  • mysql多表join时候update更新数据的方法

    2024-01-15 12:56:37
  • python实现从pdf文件中提取文本,并自动翻译的方法

    2021-06-08 18:55:56
  • 整合ckeditor+ckfinder,解决上传文件路径问题

    2022-12-10 09:25:39
  • vue基本使用--refs获取组件或元素的实例

    2024-05-02 16:35:20
  • Python爬虫之正则表达式基本用法实例分析

    2022-12-20 17:02:16
  • win10系统中安装scrapy-1.1

    2021-07-28 07:41:28
  • asp之家 网络编程 m.aspxhome.com