javaweb连接mysql的两种方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36367789/article/details/54881614



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

先导包: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.关闭连接,释放资源

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1.               /* 协议:子协议://主机:端口/数据库名 */  
  2. String url = "jdbc:mysql://localhost:3306/jdbctest";  
  3.   
  4. // mysql数据库的用户名与密码,安装时自己设置,一般默认为root  
  5. String user = "root";  
  6. String password = "root";  
  7.   
  8. Connection connection = null;  
  9. Statement statement = null;  
  10. ResultSet resultSet = null;  
  11. try {  
  12.     // 1.加载驱动//com.mysql.jdbc.Driver  
  13.     /* 
  14.      * DriverManager.registerDriver(new 
  15.      * Driver());用这种方法会加载两次驱动,也就是说会创建两个drive对象 
  16.      */  
  17.     Class.forName("com.mysql.jdbc.Driver");  
  18.     // 2.获取连接  
  19.     connection = DriverManager.getConnection(url, user, password);  
  20.   
  21.     // 3.获取用于向数据库发送SQL的Statement对象  
  22.     statement = connection.createStatement();  
  23.   
  24.     // 4.执行sql,获取数据  
  25.     resultSet = statement.executeQuery("SELECT * FROM users;");  
  26.   
  27.     // 解析数据  
  28.     while (resultSet.next()) {  
  29.         int id = resultSet.getInt("id");  
  30.         String name = resultSet.getString("name");  
  31.         String psd = resultSet.getString("password");  
  32.         String email = resultSet.getString("email");  
  33.         String birthday = resultSet.getString("birthday");  
  34.   
  35.         System.out.println(id + " " + name + " " + psd + " " + email  
  36.                 + " " + birthday);  
  37.     }  
  38. catch (ClassNotFoundException e) {  
  39.     e.printStackTrace();  
  40. catch (SQLException e) {  
  41.     e.printStackTrace();  
  42. finally {    
  43.   
  44.                       //5.关闭连接,释放资源  
  45.     if (resultSet != null) {  
  46.         try {  
  47.             resultSet.close();  
  48.         } catch (SQLException e) {  
  49.             // TODO Auto-generated catch block  
  50.             e.printStackTrace();  
  51.         }  
  52.         resultSet = null;  
  53.     }  
  54.   
  55.     if (statement != null) {  
  56.         try {  
  57.             statement.close();  
  58.         } catch (SQLException e) {  
  59.             // TODO Auto-generated catch block  
  60.             e.printStackTrace();  
  61.         }  
  62.         statement = null;  
  63.     }  
  64.   
  65.     if (connection != null) {  
  66.         try {  
  67.             connection.close();  
  68.         } catch (SQLException e) {  
  69.             // TODO Auto-generated catch block  
  70.             e.printStackTrace();  
  71.         }  
  72.         connection = null;  
  73.     }  

  1. }  

二、使用连接池连接
 ·在tomcat的config目录下,编辑context.xml,添加
<Resource name="jdbc/mysqlds"
		auth="Container"
		type="javax.sql.DataSource"
		maxActive="100"
		maxIdle="30"
		maxWait="10000"
		username="root"
		password=""
		driverClassName="com.mysql.jdbc.Driver"
		url="jdbc:mysql://localhost/数据库名?useUnicode=true&characterEncoding=utf-8"	/>

·在项目中创建一个类,我的类名是DbHelper.java

package com.tyut;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

import org.apache.commons.dbutils.QueryRunner;

public class DbHelper {
	public static QueryRunner getQueryRunner() {
		DataSource ds = null;
		try {
			// 获取数据源对象
			Context context = new InitialContext();
			ds = (DataSource) context.lookup("java:/comp/env/jdbc/mysqlds");
		} catch (Exception e) {
			e.printStackTrace();
		}
		QueryRunner qr = new QueryRunner(ds);
		return qr;
	}
}
·在servlet中调用类方法

QueryRunner qr = DbHelper.getQueryRunner();

qr.query(sql,new BeanListHandler(封装类.class)); //查询sql并封装类

qr.update(sql); //更新sql

展开阅读全文

没有更多推荐了,返回首页