JAVA连接数据库操作java.sql.Connection

  • JDBC(Java DataBase Connectivitys是由sun microsystem提供的api)
    java.sql包是java内置的包,其中包含了一系列用于与数据库进行通信的类和接口 使用方法:
  • ODBC(Open DataBase Connectivity,开放式数据库连接,是由microsoft公司提供的api):它负责来了解不同厂商和类型的DBMS,为各种不同的编程语言提供查插改删的功能。
import java.sql.*;
接口名称 说明
connection 连接对象,用于与数据库取得连接
import java.sql.connection;

JAVA连接数据库操作java.sql.Connection_第1张图片

连接mysql数据库具体操作

(如果有写好的.sql文件预先导入mysql中)

  1. 使用纯java驱动连接mysql数据库,加载驱动程序到java解释器中:
Class.forName("com.mysql.jdbc.Driver");
  1. 连接字符串格式(后面的参数视情况而定),getConnection来获得连接对象
    JAVA连接数据库操作java.sql.Connection_第2张图片
private static String url = "jdbc:mysql://localhost:3306/bankmanagersystem?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8";
Connection conn = DriverManager.getConnection(url, "username", "password");

实例:

public class DBConnection {

	private static String url = "jdbc:mysql://localhost:3306/bankmanagersystem?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8";
	//private static String url = "jdbc:mysql://localhost:3306/bankmanagersystem";
	public static Connection getDBC() throws SQLException, Exception {
		Class.forName("com.mysql.jdbc.Driver");//Java DataBase Connectivitys是由sun microsystem提供的api
		Connection conn = DriverManager.getConnection(url, "username", "password");
		return conn;
	}
}

连接mysql之后的应用

  1. Connection对象的createStatement方法来创建语句对象
Connection conn = null;
conn = DBConnection.getDBC();
  1. 执行SQL语句

情况1: 执行DELETE,UPDATE和INSERT之类的数据库操作语句(DML),没有数据返回

Statement st = null;
sta。executeUpdate("INSERT INTO userInfo VALUES('*','*') ");

情况2:执行SELECT这样的数据查询语句(DQL)

JAVA连接数据库操作java.sql.Connection_第3张图片

String sql = "select userNO from userInfo where userNO='" + userNO+ "' and  password = '" + password + "'";
ResultSet rs = st.executeQuery(sql);

  1. 对数据库的操作全部结束之后,应当将所有已经打开的资源关闭,否则将会导致资源泄露
rs.close();//关闭ResultSet对象
sta.close();//关闭Statement对象
con.close();//关闭Connection对象

实例:

	//查询个人帐户信息业务
	public UserInfo selectUser(String userNO) throws SQLException {
		ResultSet rs = null;
		UserInfo userInfo = null;
		String sql = "select * from userInfo where userNO = '" + userNO + "'";
		try {
			conn = DBConnection.getDBC();
			st = conn.createStatement();
			userInfo = new UserInfo();
			rs = st.executeQuery(sql);
			if (rs.next()) {
				userInfo.setUserName(rs.getString("userName"));
				userInfo.setUserNO(rs.getString("userNO"));
				userInfo.setUserAge(rs.getInt("userAge"));
				userInfo.setIdCard(rs.getString("idCard"));
				userInfo.setTel(rs.getString("tel"));
				userInfo.setCity(rs.getString("city"));
				userInfo.setBalance(rs.getInt("balance"));
				userInfo.setAddress(rs.getString("userAddress"));
				userInfo.setUserSex(rs.getString("userSex"));
				userInfo.setUserflag(rs.getInt("userflag"));
				return userInfo;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			rs.close();
			st.close();
			conn.close();
		}
		return null;
	}

ps:还有预编译语言对象(PreparedStatement),用于多次执行相似的SQL语句。此对象对SQL语句预先编译,比Statement对象执行效率更高,执行sql语句的方法也是executeUpdate()和executeQuery(),可以说基本一样。

参考:百度文库

你可能感兴趣的:(tips)