JDBC连接MySQL

        通过使用JDBC,就可以使用同一种API访问不同的数据库系统,开发人员面向JDBC API编写应用程序,然后根据不同的数据库使用不同的数据库驱动程序即可。JDBC可以完成以下基本操作:建立与数据库的连接,执行SQL语句,获得SQL语句的执行结果。

   

         数据库驱动程序是JDBC程序和数据库之间的转换层,数据库驱动程序将负责将JDBC调用映射成特定的数据库调用。当需要连接某个特定的数据库时,必须有相应的数据库驱动程序。

                                                  


导入mysql-connector-java-5.1.30-bin.jar包。        

查询:   

package com.song.jdbc.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * <p>
 * Title: JDBC_[子系统统名]_[Connection]
 * </p>
 * <p>
 * Description: [JDBC连接MySQL]
 * </p>
 * 
 * @author SOYU
 * @version $Revision$ 2016年5月25日
 * @author (lastest modification by $Author$)
 * @since 20100901
 */
public class JDBCQuery {

	public static void jdbcConnectionMySQL(String tableName) {
		
		Connection conn = null;//数据库连接
		ResultSet rs = null;//结果集
		
		try {	
			/**
			 * 1.加载数据库驱动
			 */
			Class.forName("com.mysql.jdbc.Driver");
			
			/**
			 * 2.通过DriverManager获取数据库连接
			 */
			
			// MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值
			// 避免中文乱码要指定useUnicode和characterEncoding
			// 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定
			// 常见参数:
			// user 用户名
			// password 密码
			// autoReconnect 联机失败,是否重新联机(true/false)
			// maxReconnect 尝试重新联机次数
			// initialTimeout 尝试重新联机间隔
			// maxRows 传回最大行数
			// useUnicode 是否使用Unicode字体编码(true/false)
			// characterEncoding 何种编码(GB2312/UTF-8/…)
			// relaxAutocommit 是否自动提交(true/false)
			// capitalizeTypeNames 数据定义的名称以大写表示
			
			String url = "jdbc:mysql://localhost:3306/cloudhospital?user=root&password=admin&useUnicode=true&characterEncoding=UTF8";

			// 一个Connection代表一个数据库连接
			conn = DriverManager.getConnection(url);

			/**
			 * 3.通过connection对象创建statement对象,Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
			 */
			Statement stmt = conn.createStatement();
			
			/**
			 * 4.使用statement执行SQL语句,executeQuery会返回结果的集合,否则返回空值
			 */
			String sql = "SELECT * FROM " + tableName;
			rs = stmt.executeQuery(sql);
			
			/**
			 * 5.操作结果集
			 */
			while(rs.next()){
				int id = rs.getInt(1);
				String username = rs.getString(3);
				String name = rs.getString(4);
				String mobile = rs.getString(5);
				String idcard = rs.getString(6);
				String sscard = rs.getString(7);
				String passwd = rs.getString(11);
				
				System.out.println("id: " + id + ",username: " + username + ",name: " + name
						+ ",mobile: " + mobile + ",idcard: " + idcard
						+ ",sscard: " + sscard + ",passwd: " + passwd);
			}
			
			} catch (SQLException e) {
				e.printStackTrace();
			} catch (Exception e) {
				e.printStackTrace();
			}finally{
				
				/**
				 * 6.回收数据库资源,包括关闭ResultSet,Statement和Connection等资源
				 */
				if(null != rs){
					try {
						rs.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
				
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
	}
	
	public static void main(String[] args) {
		jdbcConnectionMySQL("tb_user");
	}
}


更新:

package com.song.jdbc.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class JDBCUpdate {

	public static void JDBCConnectionMySQLUpdate(){
		Connection conn = null;
		PreparedStatement prsmt = null;
		try {
			/**
			 * 1.加载数据库驱动
			 */
			Class.forName("com.mysql.jdbc.Driver");
			
			/**
			 * 2.通过DriverManager获取数据库连接
			 */
			
			// MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值
			// 避免中文乱码要指定useUnicode和characterEncoding
			// 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定
			// 常见参数:
			// user 用户名
			// password 密码
			// autoReconnect 联机失败,是否重新联机(true/false)
			// maxReconnect 尝试重新联机次数
			// initialTimeout 尝试重新联机间隔
			// maxRows 传回最大行数
			// useUnicode 是否使用Unicode字体编码(true/false)
			// characterEncoding 何种编码(GB2312/UTF-8/…)
			// relaxAutocommit 是否自动提交(true/false)
			// capitalizeTypeNames 数据定义的名称以大写表示
			String url = "jdbc:mysql://localhost:3306/cloudhospital?user=root&password=admin&useUnicode=true&characterEncoding=UTF-8";
			
			// 一个Connection代表一个数据库连接
			conn = DriverManager.getConnection(url);
			
			/**
			 * 3.通过connection对象创建statement对象,Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
			 */
			String sql = "UPDATE tb_user SET EMAIL = ? WHERE ID < 10";
			
			//prepareStatement方法返回预编译的Statement对象,即将SQL语句提交到数据库进行预编译
			prsmt = conn.prepareStatement(sql);
			
			/**
			 * 4.使用statement执行SQL语句,executeQuery会返回结果的集合,否则返回空值 
			 */
			//PreparedStatement同样有executeUpdate(),executeQuery(),execute()三个方法
			prsmt.setString(1, "liverpool@lfc.com");
			prsmt.executeUpdate();
			System.out.println("修改成功");
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(null != prsmt){
				try {
					prsmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	public static void main(String[] args) {
		JDBCConnectionMySQLUpdate();
	}
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值