1.什么是JDBC
JDBC 为Java Data Base Connectivity. 即Java数据库链接。
为实现Java访问数据库的统一接口。
2.JDBC连接mysql
点击打开链接 下载。
解压后把jar导入到JDBC的项目中。
如果导入成功,则
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
不会报错。
3. Code
package JDBC_test;
import com.mysql.jdbc.Connection;
//import com.mysql.jdbc.PreparedStatement;
import java.sql.*;
/**
*
* @author ooc
* PreparedStatement 接口在java.sql.包中,
* 由com.mysql.jdbc. 包中的同名类具体实现。
* 继承自Statement,区别为PS会预处理,多次查询时速度更快。
*
*
*/
public class JDBC_init {
private static Connection conn;
private static Connection getConn() {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/zc";
// zc 是连接的数据库的名称。
// 对mysql数据库的zc database进行操作
String username = "root";
String password = "******"; // 已修改
Connection conn = null;
try {
Class.forName(driver); //classLoader,加载对应驱动
conn = (Connection) DriverManager.getConnection(url, username, password);
// 创建连接
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
private static Integer getAll() {
// conn = getConn(); //连接
String sql = "select * from Jdbc"; //显示数据库中的所有内容
PreparedStatement pstmt; // 预处理语句
try {
pstmt = (PreparedStatement)conn.prepareStatement(sql);
//构建PS对象时传递sql语句,返回该语句的PreparedStatement对象
ResultSet rs = pstmt.executeQuery(); // 执行询问
// pstmt.executeUpdate();
/**
* executeQuery(); 执行询问,返回的为一个结果集。
* executeUpdate(); 为执行insert update delete, 创建数据库、table等语句。 此类语句返回值一般为整数。
* execute(); 返回多个结果集,多个更新计数,一般不使用。
*/
int col = rs.getMetaData().getColumnCount();
// 获得结果集的列数。
System.out.println(col);
while (rs.next()) {
for (int i = 1; i <= col; i++) {
System.out.print(rs.getString(i) + "\t");
/*
* rs.next(); //是否还有下一行
* rs.getString(i); // 返回当前行第i列,并读取成String
*/
}
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static void insert(Integer age){
String sql="insert into Jdbc values('ooc',";
sql+=age.toString()+",'men','1999-02-28');";
PreparedStatement ps;
try{
ps=conn.prepareStatement(sql);
ps.executeUpdate();
ps.close();
}catch(SQLException e){
e.printStackTrace();
}
}
public static void main(String[] args){
// Connection conn=getConn();
// System.out.println(conn);
conn=getConn();
getAll();
System.out.println("first Query is quit");
for(int i=1;i<=10;i++){
insert(new Integer(i));
}
getAll();
try{
conn.close(); // 关闭与数据库的连接
}catch(SQLException e){
e.printStackTrace();
}
}
}
输出的结果为
4
zcdzc 233 wome 1990-01-02
first Query is quit
4
zcdzc 233 wome 1990-01-02
ooc 1 men 1999-02-28
ooc 2 men 1999-02-28
ooc 3 men 1999-02-28
ooc 4 men 1999-02-28
ooc 5 men 1999-02-28
ooc 6 men 1999-02-28
ooc 7 men 1999-02-28
ooc 8 men 1999-02-28
ooc 9 men 1999-02-28
ooc 10 men 1999-02-28
附录:
linux命令
netstat -antp | grep mysql //所有网络连接中筛选mysql文本
echo "options asus_nb_wmi wapt=4" |sudo tee /etc/modprobe.d/asus_nb_wmi.conf
/*** tee 命令
功能说明:读取标准输入的数据,并将其内容输出成文件。
-a或--append 附加到既有文件的后面,而非覆盖它.
-i-i或--ignore-interrupts 忽略中断信号。
--help 在线帮助。
--version 显示版本信息。
*/
ps 命令 查看当前进程 -A 显示所有
Mysql 命令:
mysql -u root -p 登录
//Mysql里的命令一定要有分号
create database zc; //创造数据库zc
use zc; // 进入zc数据库。
show tables; //显示当前数据库中所有数据类型。
create table tablename( id datatype ....); //创造tablename类型的table,类似于结构体。
insert into tablename values('idiszc','32'); //向当前数据库中的tablename类型插入(‘idiszc’,‘32’);
select * from tablename; // 显示当前数据库tablename类型中所有内容。
select * from tablename where id='zc'; // 显示所有tablename中id为'zc'的项。
desc tablename; //显示tablename的结构
drop tablename; //删除tablename类型。
drop database zc; // 删除zc数据库。