虽然自己自学 java
也有两个年头了,自己也学过很多乱起八糟的技术
ssh
springmvc
flex
nodejs
js
等,但是感觉自己像只是做足了面上的功夫,单纯的给我电脑给我网络能够开发一些东西,但是让我说出这些东西的底层原理,我就傻眼了,刚刚在
51CTO
上看了一篇“十年总结,一个
Java
人的十年人生路”看完后思索了一下自己感觉自己不应该继续这么漂浮下去,应该找一个山头停驻一下来好好的学习一下基础。这是我的第一篇,给起个名字吧就叫做“停驻脚步回头看,原来我会的都是浮云系列一
-------java
jdbc
操作
mysql
”。

首先说一下
jdbc
操作数据库的步骤:

1、 加载
JDBC
驱动

2、 提供
JDBC url
以供获取
Connection
Connection
对象是
Java
中数据库连接的代表对象,接下来要执行
SQL
的话,必须获得
java.sql.Statement
对象

3、 实例化操作对象(
Statement
或者
PreparedStatemet

3.1
Statement statement=connection.createStatement();
不需要任何参数

3.2
PreparedStatement pstmt = conn.prepareStatement(sql)   ;
这里需要一个
sql
的参数

有了操作对象
**Statement
就可以调用相应的方法来操作数据库,比如 executeUpdate()
负责执行
CREATE TABLE
INSERT
DROP TABLE
ALTER TABLE
等会改变数据库内容的
SQL
,而
executeQuery
()用来“
SELECT
”等查询数据库的
SQL

4、 进行数据库操作

5、 关闭对象
**Statement
关闭链接释放资源

接下来实现一个增删改查操作的例子。我使用的工具是
eclipse+navicate
界面操作数据库。

一、 建立数据库
jdbc_mysql
和表
person
建一个
table
表,
navicate
可以直接手动敲一下就好了,我好像又飘起来了,还是写代码吧。

DROP
TABLE
IF
EXISTS `person`;
CREATE
TABLE `person` (
    `id`
int(11)
NOT
NULL AUTO_INCREMENT,
    `
name`
varchar(20)
DEFAULT
NULL,
    `age`
int(11)
DEFAULT
NULL,
    
PRIMARY
KEY (`id`)
)

插入两条数据

INSERT
into person
VALUES(1,
'小明',10);
INSERT
into person
VALUES(2,
'小强',20);

上面的代码都可以在
的 query
执行,执行完后效果为
二、 java
代码实现增删改查

新建一个 java
工程
JDBC_Mysql
之前使用的连接都是JDK本身提供的(JDBC-ODBC),那么现在使用mysql数据库,则数据库的驱动程序只能从网上单独下载。驱动程序下载之后,后缀是 *.jar,那么我们可以直接此jar包设置到classpath路径之中。
 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public
class JDBC_Mysql_Test {    
  
/**
    * @param args
    */
  
public
static
void main(String[] args) {
    
try{
        Connection conn=
null;
//数据库连接对象
        Statement stmt=
null;
//数据库操作对象    
                    ResultSet rs =
null;
//数据库查询结果集对象    
             String url="";
//jdbc url
                    String userName=
"martin";
             String password=
"123";
             String host=
"localhost";
             String dbName=
"jdbc_mysql";
             Class.forName(
"com.mysql.jdbc.Driver");
//加载驱动
             url =
"jdbc:mysql://"+host+"/"+dbName+"?user="+userName+"&password="+password+"&useUnicode=true&characterEncoding=UTF-8";
             conn= DriverManager.getConnection(url); //获取连接
             stmt=conn.createStatement();//实例化操作对象
            
             //--------------查
             System.out.println("---------------查找操作---------------");
             String query_sql="SELECT * FROM person ";
             System.out.println(query_sql);
             rs= stmt.executeQuery(query_sql);//执行sql,查询所有的person信息
                 while(rs.next()){
                             System.out.println(rs.getInt(1) + "\t" + rs.getString(2) + "\t"
                                             + rs.getString(3) );
                 }
             //-------------增
                System.out.println("---------------增加操作---------------");
                String add_sql="INSERT into person(`name`,`age`) VALUES('你好',24);";
                System.out.println(add_sql);
                stmt.executeUpdate(add_sql);
                rs=stmt.executeQuery(query_sql);
                 while(rs.next()){
                             System.out.println(rs.getInt(1) + "\t" + rs.getString(2) + "\t"
                                             + rs.getString(3) );
                 }
             //-------------删
                System.out.println("---------------删除操作---------------");
                String delete_sql="DELETE FROM person WHERE id=1";
                System.out.println(delete_sql);
                stmt.executeUpdate(delete_sql);
                rs=stmt.executeQuery(query_sql);
                 while(rs.next()){
                             System.out.println(rs.getInt(1) + "\t" + rs.getString(2) + "\t"
                                             + rs.getString(3) );
                 }
             //------------改
                 System.out.println("---------------修改操作---------------");
            String update_sql="UPDATE person SET name='你懂的',age=25 WHERE id=2";
            System.out.println(update_sql);
            stmt.executeUpdate(update_sql);
            rs=stmt.executeQuery(query_sql);
            while(rs.next()){
                         System.out.println(rs.getInt(1) + "\t" + rs.getString(2) + "\t"
                                                + rs.getString(3) );
            }    
                        
            stmt.close();        
                        conn.close();        
        } catch (SQLException e) {        
                            e.printStackTrace();        
        }catch(Exception e){
         e.printStackTrace();
        }
  }        
}
执行完后结果为