jdbc:
java data base connectivity数据库连接技术,主要任务是获取数据库层的数据库连接并使用该数据库连接发送相关的sql指令做数据库数据的操作。 用到的接口主要在java se的java sql.*,javax.sql.*两个包中:
,由上图可以了解到,mysql jdbc driver层主要有数据库厂商根据sun提供的接口进行实现,开发者需要在操作数据库数据之前将该层需要的jar包直接引入。
数据库连接:
即:使用相关的客户端程序和数据库服务实例进行连接,在整个连接的过程中发送sql指令进行数据的操作。
方式一:使用命令行客户端窗口连接。
方式二:使用myeclipse进行连接:
1) 准备测试数据:
mysql> create table day03(
-> id int ;
ERROR 1046 (3D000): No database selected
mysql> create database day03
-> character set utf8
-> collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> use day03;
Database changed
mysql> create tabel users(
-> id int primary key auto_increment,
-> name varchar(20),
-> password varchar(50)
-> )character set utf8
-> collate utf8_general_ci;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tabel users(
id int primary key auto_increment,
name varchar(20),
password varch' at line 1
mysql> create table users(
-> id int primary key auto_increment,
-> name varchar(20),
-> password varchar(50)
-> )character set utf8
-> collate utf8_general_ci;
Query OK, 0 rows affected (0.13 sec)
mysql> insert into users(name,password)
-> values('cai',password('cai'));
Query OK, 1 row affected (0.05 sec)
mysql> insert into users(name,password)
-> values('niao',password('niao'));
Query OK, 1 row affected (0.07 sec)
mysql> select * from users;
+----+------+-------------------------------------------+
| id | name | password |
+----+------+-------------------------------------------+
| 1 | cai | *0576945B87B58FCAEC83302BF28521A5C9A6CC16 |
| 2 | niao | *E15E4C490D1A8909E01239537A0A54935329D201 |
+----+------+-------------------------------------------+
2 rows in set (0.00 sec)
2)引入项目的jar包:如上myeclipse连接时使用的jar包。
3)程序中使用。
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");//通过反射创建指定类的class对象
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/day03", "root", "root");//使用drivermanager类获取数据库的连接
Statement state=conn.createStatement();//获取执行sql语句的statement对象
String sql="select * from users";
ResultSet set=state.executeQuery(sql);//使用语句对象执行指定的sql指令,并返回结果集
while(set.next()){
int id=set.getInt(1);
String name=set.getString(2);
String password=set.getString(3);
System.out.println("id:"+id+","+"name:"+name+","+"password:"+password);
}
conn.close();
}
结果如下:
id:1,name:cai,password:*0576945B87B58FCAEC83302BF28521A5C9A6CC16
id:2,name:niao,password:*E15E4C490D1A8909E01239537A0A54935329D201