Javaweb连接Mysql数据库
【摘要】 大家介绍Javaweb连接Mysql数据库步骤方法及其实例,主要包括Javaweb中mysql数据库连接步骤方法及其实例使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,如有不妥之处请大佬指正!先来说说jdbc的概念JDBCJava数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序...
大家介绍Javaweb连接Mysql数据库步骤方法及其实例,主要包括Javaweb中mysql数据库连接步骤方法及其实例使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,如有不妥之处请大佬指正!
先来说说jdbc的概念
JDBC
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法
准备工作
IntelliJ IDEA
mysql-connector-java-5.0.8-bin(不是最新版本)
建立数据库
建表
下面说说具体的实现方法
一、直接连接
主要步骤:
先导包: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.关闭连接,释放资源
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
/*协议:子协议://主机:端口/数据库名*/
Stringurl= "jdbc:mysql://localhost:3306/jdbctest" ;
//mysql数据库的用户名与密码,安装时自己设置,一般默认为root
Stringuser= "root" ;
Strin**word= "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/
1
2
3
4
|
url=jdbc:mysql://localhost:3306/jdbctest
username=root
password =root
driver=com.mysql.jdbc.Driver
|
2.工具类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
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.使用实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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);
}
|
每行代码都有注释,欢迎大佬提出问题哈!
书山有路勤为径,学海无涯苦作舟!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)