一、直接连接,不封装到工具类中,主要步骤:
先导包: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"; 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/
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); } |
希望本文可以对需要的朋友有帮助
原文链接:http://www.2cto.com/kf/201702/596389.html