一、JDBC 概念
Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标[1]。JDBC是面向关系型数据库的。(来自wiki)
二、Java程序连接Mysql
准备工作:安装Mysql,并且新建数据库和数据表。
建库语句:
create database dep
建表语句:
create table person(
id int primary key,
name varchar(10),
sex char
);
连接Mysql代码:
public static Connection getConnection(String driverName, String url, String userName,
String password) {
Connection conn = null;
try {
Class.forName(driverName);
conn = DriverManager.getConnection(url, userName, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
String driverName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/dep";
String userName = "root";
String password = "";
Connection conn = getConnection(driverName, url, userName, password);
try {
Statement stat = conn.createStatement();
String sql = "select * from person";
<span style="white-space:pre"> </span><p style="margin-top: 0px; margin-bottom: 0px; font-size: 14px; font-family: Helvetica; color: rgb(57, 51, 255);"><span style="color: #000000"><span style="white-space:pre"> </span> // String sql = </span>"select * from person where name = ?"<span style="color: #000000">;</span></p><p style="margin-top: 0px; margin-bottom: 0px; font-size: 14px; font-family: Helvetica;"><span style="white-space:pre"> </span> // PreparedStatement ps = conn.prepareStatement(sql);</p><p style="margin-top: 0px; margin-bottom: 0px; font-size: 14px; font-family: Helvetica;"><span style="white-space:pre"> </span> // ps.setString(1, <span style="color: #3933ff">"jim"</span>);</p><p style="margin-top: 0px; margin-bottom: 0px; font-size: 14px; font-family: Helvetica;"><span style="white-space:pre"> </span> // ResultSet rs = ps.executeQuery(sql);</p>
ResultSet rs = stat.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getInt("id") + " " + rs.getString("name")
+ " " + rs.getString("sex"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
三、 SQL 数据类型与Java类型的映射关系表
SQL类型 | Java类型 |
---|---|
CHAR | java.lang.String |
VARCHAR | java.lang.String |
LONGVARCHAR | java.lang.String |
NUMERIC | java.math.BigDecimal |
DECIMAL | java.math.BigDecimal |
BIT | boolean |
TINYINT | byte |
SMALLINT | short |
INTEGER | int |
BIGINT | long |
REAL | float |
FLOAT | double |
DOUBLE | double |
BINARY | byte[] |
VARBINARY | byte[] |
LONGVARBINARY | byte[] |
DATE | java.sql.Date |
TIME | java.sql.Time |
TIMESTAMP | java.sql.Timestamp |
BLOB | java.sql.Blob |
CLOB | java.sql.Clob |
Array | java.sql.Array |
REF | java.sql.Ref |
Struct | java.sql.Struct |
注:这种类型匹配不是强制性标准,特定的JDBC厂商可能会改变这种类型匹配。例如Oracle中的DATE类型是包含时分秒,而java.sql.Date仅仅支持年月日。